Fortran Coder

标题: 如何求趋于无穷的值 [打印本页]

作者: FLY    时间: 2014-8-5 17:15
标题: 如何求趋于无穷的值
    如题,如何求解图片公式中的值,其他参数都知道,如何处理m,n的取值?
特别注意J1表示的是贝塞尔柱函数的第一项。

[latex]\alpha=\frac{4}{{\pi}^{2}}\frac{1}{{(\xi\eta)}^{1/2}}\sum_{m=0}^{\infty}\sum_{n=0}^{\infty}{\epsilon}_{mn}\frac{{J}^{2}_{1}(\pi\sqrt{{\left(m\xi\right)}^{2}+{\left(n\eta\right)}^{2}})}{{\left({m}^{2}(h/b)+{n}^{2}(b/h)\right)}^{3/2}} [/latex]

作者: FLY    时间: 2014-8-6 07:30
求大神啊
作者: 瑶远梦想    时间: 2014-8-6 08:12
m,n趋近于无穷时,后面那个趋于0,可以根据你要的精度把后面给省略老!
作者: vvt    时间: 2014-8-6 08:32
这个不好说啊,说不定还没到足够精度的时候,分子分母就已经溢出了。
作者: aliouying    时间: 2014-8-6 16:23
居然有这么弄的? 我倒可以给个建议:
1、转换下公式,比如分子分母同时除以n,这样保证N无穷大的时候,内部的累加可以实现
2、做数值精度判断,可以使用huge函数,若数据超出这个值,直接以这个值代替,可以查看这个函数的帮助
作者: FLY    时间: 2014-8-6 18:16
瑶远梦想 发表于 2014-8-6 08:12
m,n趋近于无穷时,后面那个趋于0,可以根据你要的精度把后面给省略老!

我知道需要省略,但是M、N的取值是相互独立的。如果N取到N1,M取到M1时可以满足精度,那么如何确定M1、N1的值呢?因为这个算法调用很频繁,想写的高效点。
作者: FLY    时间: 2014-8-6 18:17
vvt 发表于 2014-8-6 08:32
这个不好说啊,说不定还没到足够精度的时候,分子分母就已经溢出了。

连你都没有办法么?
作者: FLY    时间: 2014-8-6 18:21
aliouying 发表于 2014-8-6 16:23
居然有这么弄的? 我倒可以给个建议:
1、转换下公式,比如分子分母同时除以n,这样保证N无穷大的时候,内 ...

1、不能同时除以N啊,J1表示的是贝塞尔函数的第一项,fortran把这个函数封装了起来,我自己写效率太低。
2、我也想的是做数值精度判断,关键是如何找到那个M和N的最大值?
作者: FLY    时间: 2014-8-6 18:22
aliouying 发表于 2014-8-6 16:23
居然有这么弄的? 我倒可以给个建议:
1、转换下公式,比如分子分母同时除以n,这样保证N无穷大的时候,内 ...

1、不能同时除以N啊,J1表示的是贝塞尔函数的第一项,fortran把这个函数封装了起来,我自己写效率太低。
2、我也想的是做数值精度判断,关键是如何找到那个M和N的最大值?
作者: 瑶远梦想    时间: 2014-8-7 00:13
我推了下,对误差进行估算,希望对你有用!

temp.pdf

29.54 KB, 下载次数: 14


作者: aliouying    时间: 2014-8-7 15:11
楼上正解,学习了~
作者: 岸边的鱼    时间: 2014-8-12 21:42
瑶远梦想 发表于 2014-8-7 00:13
我推了下,对误差进行估算,希望对你有用!

遥远的梦,你太强悍了,我看了2遍,愣是没看懂




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2