Matlab求积分方程?

Matlab求积分方程?,第1张

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

现用辛普森法(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,其两条曲线愈来愈接近,其数值愈趋向于一致。

怎么用MATLAB编程求解双重积分方程的根?这个问题可以来考虑:

1、需知道这些已知值,如A、B、C、D、E、F、L、a、ap、flm、τf、δ

2、自定义被积函数,func=@(x)expr %含二重积分

3、用fsolve函数求解方程的数值根,

x= fsolve(func,x0)

用fsolve求一个含有积分的方程组,可以这样来写:

第一步:建立自定义函数 func()

第二步:用fsolve求解其近似值

[k,fval] =fsolve(@(k)func(k),k0)  %k为系数a、b,即a=k(1),b=k(2),fval是每个等式的值

第三步:编程运行

运行结果:a=9.01704582797954;b =25.897553850857

执行代码及运行过程。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存