想了想还是发篇文章吧这样子阅读量会比发资源多一点(bushi

首先参考了https://jingyan.baidu.com/article/bea41d437cbfb8b4c51be6bf.html的文章,但是这篇经验由于已经有些年头了,我发现其中比如mfun函数已经被matlab移除了,还是先按照这个思路来一遍:

使用matlab求极限:

>> syms t x positive  % 定义t是正的
gt = 1/log(t);
gt_0 = limit(gt,t,0,'right')  % 求 gt 在 t=0+ 处的极限gt_0 =0

利用图形观察在[0,1)区间的被积函数。(这一步也是出于谨慎考虑,有利于判断积分的可行性,便于粗略估计积分结果。

>> ezplot(gt,[0,1])
title('1/log(t)')
grid on
legend('gt')


关于被积函数的原函数的求解,如下:

>> fx = subs(int(gt,t),t,'x')fx =logint(x)

(注意这里出现的两个函数subs和int都很重要,待会儿会用到)

关于logint函数:(谁能想到它的定义就是对数积分呢

logint Integral logarithm.
Y = logint(X) is the integral logarithm of X.
It is defined as:
logint(x) = integral from 0 to x of 1/log(t) dt.
logint对数积分。 Y = logint(X)是对X的对数积分。 定义为: logint(x) =∫1/log(t) dt,从0到x。

对于积分:

int(S,v) is the indefinite integral of S with respect to v. v is a scalar SYM.
int(S,a,b) is the definite integral of S with respect to its symbolic variable from a to b. a and b are each double or symbolic scalars. The integration interval can also be specified using a row or a column vector with two elements, i.e., valid calls are also int(S,[a,b]) or int(S,[a b]) and int(S,[a;b]).
int(S,v,a,b) is the definite integral of S with respect to v from a to b. The integration interval can also be specified using a row or a column vector with two elements, i.e., valid calls are also int(S,v,[a,b]) or int(S,v,[a b]) and int(S,v,[a;b]).

int(S,v)是S对v的不定积分,v是标量SYM。
int(S,a,b)是S关于它的符号变量从a到b的定积分。a和b都是双重或符号标量。也可以使用包含两个元素的行或列向量来指定积分区间,也就是说,有效的调用也可以是int(S,[a,b])或int(S,[a b])和int(S,[a;b])。
int(S,v,a,b)是S对v从a到b的定积分。积分区间也可以用包含两个元素的行或列向量指定,也可以是int(S,v,[a,b])或int(S,v,[a b])和int(S,v,[a;b])。

这个时候我们已经通过上面那步知道gt的原函数(积分函数)是什么了,可以直接求:

>> x = [0:0.05:0.9];
>> p = logint(x)p =列 1 至 70   -0.0131   -0.0324   -0.0564   -0.0851   -0.1187   -0.1574列 8 至 14-0.2019   -0.2529   -0.3114   -0.3787   -0.4564   -0.5469   -0.6534列 15 至 19-0.7809   -0.9369   -1.1340   -1.3959   -1.7758

绘图验证一下是否正确:

hold on
ezplot(gt,[0,1]);
plot(x,p,'--r');
legend('gt','p','Location','Best')
hold off

和开头经验中的绘制结果一样。

但是要把这个功能写成一整个函数的话,这样子中间插一步显示原函数,还得再自己写入原函数啥啥啥的肯定是不行的,用户体验感太差了(这么个小小的程序扯啥用户体验感呢?就是你自己嫌麻烦罢了)

改进之后的代码:

syms t;
gt = 1/log(t);
fx = subs(int(gt,t),t,'x');
x = [0:0.05:0.9];
p=subs(fx,x);
hold on
ezplot(gt,[0,1]);
plot(x,p,'--r');
legend('gt','p','Location','Best')
hold off

使用到我自己需要绘制的指数函数的积分上来说,只需要把上面这个代码稍微改一下就行:

syms t;
gt = 0.1^t;
fx = subs(int(gt,t),t,'x');
x = [-4:0.2:4];
p=subs(fx,x);
hold on
ezplot(gt,[-4,4]);
plot(x,p,'--r');
legend('负指数函数','积分','Location','Best')
hold off

绘制之后发现积分是负值,这就有些问题了,我要求的是指数函数在某个区域内的面积积分,指数函数又没有负值区域,怎么会面积是负数呢?
经过问题排查之后我确定我的具体代码没有问题,原来是算法有大差错——没有指定积分的下限,人家直接积出原函数之后就给赋值了,正常是需要指定积分下限之后上限赋值减下限的来着。

我这里就直接指定0为下限了:

syms t;
gt = 0.1^t;
fx = subs(int(gt,t),t,'x');
x = [-4:0.2:4];
p=subs(fx,x)-subs(fx,0);
hold on
ezplot(gt,[-4,4]);
plot(x,p,'--r');
legend('负指数函数','积分','Location','Best')
hold off

可以看到,结果图中积分最后是趋于一个极限的,非常合理的结果啊铁铁们(hhhhhh今天一天学疯了不要理会我的胡言乱语)。

整个函数稍微改一下就能套到其他的东西上,内容还算是相对完整吧。

(就这么点东西我研究了一个下午我可真是个代码菜鸡((哦当然下午也不只是只写了这个函数

MATLAB中求某个函数的积分并绘图相关推荐

  1. matlab中求包络线函数,matlab包络线函数

    的包络 解调方法 一直 是机 械故 障诊 线 ,只 需要经 过大 脑 的取舍 ,...(c )可 以看 出,经过 MATLAB 中的 Hilbert 函数 后也 出现 了皱 纹 ,...... yma ...

  2. matlab中求分段函数的分段点,matlab求解分段函数问题是如何用下面的算法求解下面的分段函数 爱问知识人...

    问题是如何用下面的算法求解下面的分段函数,目前出现的问题是:??? Error using ==> at 11Function 'gt' is not implemented for MuPAD ...

  3. matlab函数积分怎么写,Matlab求分段函数的积分

    (一)前言 本文介绍一个使用Matlab进行求分段函数积分值的方法. 首先介绍如何使用int()对连续函数进行积分的求解,然后介绍一个对分段函数进行求积分的例子. (二)使用Matlab求定积分 Ma ...

  4. Matlab求分段函数的积分

    (一)前言 本文介绍一个使用Matlab进行求分段函数积分值的方法. 首先介绍如何使用int()对连续函数进行积分的求解,然后介绍一个对分段函数进行求积分的例子. (二)使用Matlab求定积分 Ma ...

  5. matlab输出的特征向量,关于matlab中的eig函数(求特征值和特征向量)(最新整理)

    <关于matlab中的eig函数(求特征值和特征向量)(最新整理)>由会员分享,可在线阅读,更多相关<关于matlab中的eig函数(求特征值和特征向量)(最新整理)(3页珍藏版)& ...

  6. QT/C++/Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差

    QT / C++ / Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差 //定义一个按列求标准差的函数,其中A为被求列标准差的矩阵,OutputMatrix为求出的列标准差 v ...

  7. matlab优化问题约束不取等号6,matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么...

    导航:网站首页 > matlab中fmincon函数中不含等号的边界值怎么设置?,matlab中的fmincon函数一直求不出为什么 matlab中fmincon函数中不含等号的边界值怎么设置? ...

  8. matlab里inline定义矩阵,Matlab中的inline函数_matlab中inline函数

    Matlab中的inline函数 1.有时为了描述某个数学函数的方便,可以用inline()函数来直接编写该函数,形式相当于M-函数,但无编写一个真正的MATLAB文件,就可以描述出某种数学关系.其调 ...

  9. matlab 极限积分,实验二MATLAB中的极限和微分积分运算

    <实验二MATLAB中的极限和微分积分运算>由会员分享,可在线阅读,更多相关<实验二MATLAB中的极限和微分积分运算(28页珍藏版)>请在人人文库网上搜索. 1.实验二 MA ...

  10. matlab 极限积分,实验二matlab中的极限和微分积分运算.ppt

    实验二matlab中的极限和微分积分运算实验二matlab中的极限和微分积分运算 实验二 MATLAB中的极限.微分和积分运算 一.实验目的 熟悉MATLAB软件中关于极限.微分运算和不定积分.定积分 ...

最新文章

  1. Linux下redis安装部署
  2. 手机连接服务器传文件在哪里,手机云服务器传文件在哪里
  3. 算法分析中递推式的一般代数解法
  4. Java 集合框架,看这篇真的够了!
  5. [转]Angular2 Material2 封装组件 —— confirmDialog确定框
  6. libsvm在matlab中使用的常见错误及libsvm的使用
  7. Linux内核小笔记:spin_lock锁内不能使用sleep休眠
  8. SQL中一种类似GUID值的函数实现
  9. php smarty安装,Smarty安装
  10. 微信下单小程序怎么做(下单小程序功能介绍)
  11. [Excel]vlookup的内在逻辑以及模糊检索
  12. 从底特律的覆灭,反思“珠三角”未来
  13. 基础C语言知识串串香10☞数组字符串结构体联合体枚举
  14. 电脑打印准考证图片显示不出来
  15. 在线音视频加速器终于实现了
  16. 教你编写第一个生成式对抗网络GAN
  17. 【学习笔记】dij 费用流 + 势能函数
  18. 使用Netty实现一个小型服务器(作为数据中转站)
  19. 小新air15为啥没人买_联想小新潮7000和小新air15对比 哪个更值得买
  20. jvm系列(十一):JVM演讲PPT分享

热门文章

  1. wordpress php教程 pdf,wordpress
  2. 【coq】函数语言设计 练习题tatcislogics 总结
  3. 想改变Facebook? 先改变扎克伯格!
  4. 治疗骨髓增殖性肿瘤的一种新型高选择性酪氨酸激酶抑制剂ZT55的研究
  5. lisp 左手钢筋_CAD左手键及使用方法
  6. java随机生成26个大写字母
  7. 数据解读:在上海,创业者真的不受待见吗?
  8. PLC有几种编程语言?各有什么特点?
  9. 计算机的文件夹打不开了,文件夹打不开,详细教您文件夹打不开怎么办
  10. 【地理空间】初识OpenStreetMap