| 查看: 932 | 回复: 1 | ||
crackpotop银虫 (小有名气)
|
[求助]
matlab 求解积分问题
|
» 本主题相关价值贴推荐,对您同样有帮助:
求助MATLAB中程序看不懂的简单问题!谢谢!
已经有3人回复
关于matlab求导和积分的两个问题
已经有5人回复
MATLAB计算编程请教
已经有15人回复
用含有定积分的隐函数拟合数据,matlab或者origin
已经有18人回复
求助matlab一段代码问题
已经有3人回复
matlab可以求解差分方程系统的解吗?
已经有6人回复
高斯方程积分编程matlab或C语言
已经有15人回复
matlab求函数积分出错
已经有12人回复
matlab不定积分的问题
已经有10人回复
请教MATLAB中的LMI求解问题,急!!!
已经有7人回复
Matlab数值积分结果是虚数
已经有6人回复
求高手解答Matlab求解微分方程的初始值和边界值问题
已经有5人回复
matlab 积分求助
已经有8人回复
matlab 积分计算 算不出结果,求帮助!!!
已经有10人回复
关于Matlab算符号积分
已经有6人回复
matlab求积分,出现奇点怎么办?
已经有8人回复
【求助】积分微分方程matlab求解
已经有6人回复
crackpotop
银虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 409.5
- 散金: 50
- 帖子: 51
- 在线: 27.8小时
- 虫号: 3294178
- 注册: 2014-06-26
- 专业: 微/纳机械系统
|
看推荐的帖子,积分用 quadgk,出结果了~~ 【http://blog.sina.com.cn/s/blog_8138d87601013wrk.html】 四、[q,errbnd] = quadgk(fun,a,b,param1,val1,param2,val2,...) 自适应Gauss-Kronrod数值积分,适用于高精度和震荡数值积分,支持无穷区间,并且能够处理端点包含奇点的情况,同时还支持沿着不连续函数积分,复数域线性路径的围道积分法。 注意事项: 1.积分限[a,b]可以是[-inf,inf],但必须快速衰减; 2.被积函数在端点可以有奇点,如果区间内部有奇点,将以奇点区间划分成多个,也就是说奇点只能出现在端点上; 3.被积函数可以剧烈震荡; 4.可以计算不连续积分,此时需要用到'Waypoints'参数,'Waypoints'中的点必须严格单调; 5.可以计算围道积分,此时需要用到'Waypoints'参数,并且为复数,各点之间使用直线连接; 6.param,val为函数的其它控制参数,比如上面的'waypoints'就是,具体看帮助。 出现错误: 1.'Reached the limit on the maximum number of intervals in use' 2.'Infinite or Not-a-Number function value encountered' 例4 计算有奇点积分int(exp(x)*log(x),0,1)。 >>F=@(x)exp(x).*log(x);%奇点必须在端点上,否则请先进行区间划分。 >>Q = quadgk(F,0,1) Q = -1.3179 例5 计算半无限震荡积分int(x^5*exp(-x)*sin(x),0,inf)。 >>F=@(x)x.^5.*exp(-x).*sin(x); >>fplot(F,[0,100])%绘图,看看函数的图形 >>[q,errbnd] = quadgk(F,0,inf,'RelTol',1e-8,'AbsTol',1e-12)%积分限中可以有inf,但必须快速收敛 q = -15.0000 errbnd = 9.4386e-009 例6 计算不连续积分,积分函数为f(x)=x^5*exp(-x)*sin(x),但是人为定义f(2)=1000,f(5)=-100,积分区间为[1 10]。 >>F=@(x)x.^5.*exp(-x).*sin(x); >>[q,errbnd] = quadgk(F,1,10,'Waypoints',[2 5])%显然2,5为间断点 q = -10.9408 errbnd = 3.2296e-014 例7 计算围道积分,在复数域内,积分函数1/(2*z-1),积分路径为由[-1-i 1-i 1+i -1+i -1-i]围成的矩形边框。 >>Waypoints=[-1-i 1-i 1+i -1+i -1-i]; >>plot(Waypoints);%绘制积分路径 >>xlabel('Real axis');ylabel('Image axis');axis([-1.5 1.5 -1.5 1.5]);grid on; >>Q = quadgk(@(z)1./(2*z - 1),-1-i,-1-i,'Waypoints',[1-i,1+i,-1+i])%注意各点间使用直线连接 ans = 0.0000 + 3.1416i >> quadgk(@(z)1./(2*z - 1),-1-i,-1-i,'Waypoints',Waypoints)%使用这个的效果也是一样的,就是说始末点可以随便包不包含在Waypoints中。 ans = 0.0000 + 3.1416i |
2楼2015-06-12 18:50:30













回复此楼