数学建模社区-数学中国

标题: 为什么命令subs计算后得到NAN [打印本页]

作者: 、后知后觉り.    时间: 2013-7-17 14:28
标题: 为什么命令subs计算后得到NAN

本帖最后由 neuras 于 2013-7-16 15:27 编辑


先附上程序:

clc;
clear all;
R=32;
c=0.5;
r=2.5;%影响大
syms x;
syms z;
syms t;
f=int(4*c/gamma(r)*(c*x)^(r)*besselk(r-1,2*c*x));%k分布
fx=subs(f,x,100000)-subs(f,x,t*z);
m=1;
fz=0;
y=2*c*z;
tao=c*pi^(0.5)/(2^(m)*gamma(r));
i=1;
beta1=(factorial(m+i)*(m+1-i))/(2^i*factorial(i));
i=0;
beta0=(factorial(m+i)*(m+1-i))/(2^i*factorial(i));
for j0=0:R
    tt=2*R+j0;
    fz=fz+tao^(R)*exp(-y)*nchoosek(R,j0)*beta1^(R-j0)*beta0^(j0)/gamma(tt)*......
        y^(tt-1);
end
Fz=int(fz);
复制代码
计算后用命令subs计算符号表达式在特定点的值,再用梯形积分做运算。但是现在遇到了问题。
命令int运算前,fz,用命令subs(fz,z,4),能计算出特定值出来。但是subs(Fz,z,4)计算出来就是NAN,此时若修改为double(subs(Fz,z,'4'))才能计算出正确值。但是我需要计算梯形积分因此必须计算出,Fz在0~10000上的取值。取个小区间举例:fz就用subs(fz,z,0:0.1:10)就可以了,但是由于Fz中替换的数字必须打引号,再用double(subs(Fz,z,'0:0.1:10'))就不能计算出来了。这究竟是什么原因造成的。

而且这个错误还跟上面的R的取值有关,如果R=8就不会出现这种问题了。

照理说:

syms x;
y=x^2;
z=int(y);
subs(y,x,4)
subs(z,x,4)
复制代码
都能正常使用subs命令,为什么我的上一段程序就出现问题了。先感谢各位大神解答了。

作者: gt93    时间: 2013-8-23 22:37
楼主你的问题我也遇到了,但是我跑出来的结果是

ans =

  1.0e-040 *

  Columns 1 through 11

         0    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

  Columns 12 through 22

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

  Columns 23 through 33

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

  Columns 34 through 44

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

  Columns 45 through 55

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

  Columns 56 through 66

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

  Columns 67 through 77

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000

  Columns 78 through 88

    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0001    0.0001

  Columns 89 through 99

    0.0002    0.0004    0.0009    0.0017    0.0033    0.0064    0.0122    0.0230    0.0433    0.0808    0.1497

  Columns 100 through 101

    0.2756    0.5041

作者: 净心、精心    时间: 2013-8-26 01:10
不知道 楼主现在的问题是否有解决呢  ?  




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5