请问怎么用“matlab”软件算定积分?

请问怎么用“matlab”软件算定积分?,第1张

以f(x)=e^2x+sin(x+π/3) ,积分下限:a=0,积分上限:b=π/4 为例。

1.首先,建立被积函数M文件。

点击New,选择Function.

2.在编辑器中输入指令:

functionf=f(x)

f=exp(2*x).*sin(x+pi/3)

(注意,用 .*)

3.保存函数文件到自己的工作路径,比如G:\matlab\work。

输入指令:

cdG:\matlab\work

是该路径成为当前路径。

4.调用积分函数squad进行计算。输入指令:

F=quad('f(x)',0,pi/4)

如图,回车后可得到计算结果1.8612。

其他函数,只要修改函数文件中的表达式即可。

Matlab计算定积分的具体步骤如下:

1、以f(x)=e^2x+sin(x+π/3)  ,积分下限:a=0,积分上限:b=π/4  为例。首先,建立被积函数M文件;点击New,选择Function;

2、在编辑器中输入指令:function f=f(x);f=exp(2*x).*sin(x+pi/3)(注意,用  .* )

3、保存函数文件到自己的工作路径,比如G:\matlab\work。

输入指令:cd G:\matlab\work,是该路径成为当前路径。

4、matlab中计算积分的两种指令:

1.F=quad('fname',a,b,tol,trace)        Simpson数值积分法

2.F=quad8('fname',a,b,tol,trace)     Newton-Cotes数值积分法

其中: fname是被积函数表达式或函数名,a,b分别是上下限,tol可以控制积分精度,省略则取0.001;trace=1则用图形表示积分过程,trace=0,没有图形。

两者 比较,quad8精度更高。

5、调用积分函数squad进行计算。输入指令: F=quad('f(x)',0,pi/4),如图,回车后可得到计算结果1.8612。其他函数,只要修改函数文件中的表达式即可。

题主给出的积分方程,可以用数值的方法来求出其数值解,然后绘出其图形。

现用辛普森法(Simpson numerical integration)和矩形法(Trapezoidal numerical integration)求出其数值解,然后进行比较。实现过程如下:

1、首先建立自定义函数

a=10.^(0.1*x)

fun=@(t,a)qfunc(sqrt(t))./a.*exp(-t./a)

2、利用for循环语句和quad积分函数,求出yi(xi)值。

for i=1:length(xdB)

。。。

y1(i)=quad(@(t)fun(t,a),0,100000)%辛普森法,用100000代替inf

。。。

t=linspace(0,100000,100000)

。。。

y2(i)=trapz(t,y) %矩形法

end

3、利用semilogy函数绘制图形

semilogy(x,y1,'r*-',x,y2,'k-')

4、求匹配度

5、按上述方法,编程程序,运行可得到如下结果

6、从图形可以看到,其匹配度为0.85043,XdB从0到30,其两条曲线愈来愈接近,其数值愈趋向于一致。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12123422.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存