带奇点(无法得到准确奇点值)的数值积分如何求?
mathematica吧
全部回复
仅看楼主
level 3
筇殇love 楼主
F1[s_] = V[s, Gx]*s*BesselJ[1, s*r];
NIntegrate[F1[s], {s, 0, \[Infinity]}]
2018年05月17日 05点05分 1
level 3
筇殇love 楼主
之前发的帖子秒删了,我也不知道是怎么了?可能是不符合规范,希望这个不要被删掉。
F1[s]为一个很复杂的函数形式,A2[s]中含有奇点。
尝试过在系统提示奇点分段,将积分分段求和。
希望得到的帮助:
1:MMA能否通过预判得到奇点的准确值,然后通过指定奇点来求解数值积分。
2:是否可以Exclusions来排除掉小部分的积分区域从而得到准确性较高的解【帮助文件中Exclusions只看到排除点或者定义的区域。(小白对MMA还不太了解)】
3:改变定义的参数值,奇点的位置会改变,可以直接程序直接找到奇点值或范围然后通过1,2来计算吗?
2018年05月17日 05点05分 2
吧务
level 15
0. 秒删基本上都是系统吞的,仔细看看删帖回收站的说明,该申诉的申诉。
1. “MMA能否通过预判得到奇点的准确值,然后通过指定奇点来求解数值积分。”截止目前NIntegrate没有这种功能。【当然了,Plot等函数在版本11(11点几来着?)之后具备了自动判断奇点的能力,让这一问题的解决看到了希望。】
2. 版本10以后NIntegrate加了镇对区域积分的语法,不过它能否处理半无限大区域上的积分我就不知道了……
3. 一个可能的变通方法是在“外面”把奇点算出来。一个简例:Solve[Denominator[Together[1/(1 + x) + 1/(2 + x)]] == 0, x] 当然了,对于比较复杂的被积函数这个方法可能不好使。
2018年06月02日 05点06分 5
1