未定义jm matlab,math – 使用Jm 1 = 2mj(m)-j(m-1)公式在MATLAB中计算bessel函数

这种递归关系在数学上很好,但在使用浮点数的有限精度表示来实现算法时数值不稳定.

考虑以下比较:

x = 0:20;

y1 = arrayfun(@(n)besselj(n,1), x); %# builtin function

y2 = arrayfun(@Bessel, x); %# your function

semilogy(x,y1, x,y2), grid on

legend('besselj','Bessel')

title('J_\nu(z)'), xlabel('\nu'), ylabel('log scale')

因此,您可以看到计算值在9之后开始显着不同.

根据MATLAB:

BESSELJ uses a MEX interface to a Fortran library by D. E. Amos.

并提供以下作为其实现的参考:

D. E. Amos, “A subroutine package for Bessel functions of a complex

argument and nonnegative order”, Sandia National Laboratory Report,

SAND85-1018, May, 1985.

D. E. Amos, “A portable package for Bessel functions of a complex argument and nonnegative order”, Trans. Math. Software, 1986.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值