s20071041 发表于 2007-12-4 21:25

程序运行后全是NAN,问题出在哪

function =wu(M,K,eps)
D=inv(K)*M;      
n=rank(D);
A0=ones(n,1);
A=D*A0;
c=0;
while c<=n
    if norm(A-A0)>=eps
    A0=A;
    A=D*A0;
    else
    c=c+1;
    w(c,1)=1/A(n,1);
    A0=A*w(c,1);
    B(:,c)=A0(:,1);
    end
end

调用后
>> M=;
>> K=;
>> eps=1e-6;
>> wu(M,K,eps)

ans =

   0   0   0   0
   NaN   NaN   NaN   NaN
   NaN   NaN   NaN   NaN

[ 本帖最后由 eight 于 2007-12-4 22:22 编辑 ]

sigma665 发表于 2007-12-4 21:34

function =wu(M,K,eps)

这个是什么

s20071041 发表于 2007-12-4 21:42

前面是编写的一个函数呀后面调用他

jinqiankun 发表于 2007-12-4 21:59

回复 #3 s20071041 的帖子

NAN 的意思是非数 即0/0 或无穷大/无穷大
你 看看你的程序 是不是 有这种可能?

eight 发表于 2007-12-4 22:22

原帖由 s20071041 于 2007-12-4 21:25 发表 http://www.chinavib.com/forum/images/common/back.gif
function =wu(M,K,eps)
D=inv(K)*M;      
n=rank(D);
A0=ones(n,1);
A=D*A0;
c=0;
while c=eps
    A0=A;
    A=D*A0;
    else
    c=c+1;
    w(c,1)=1/A(n,1);
    A0=A*w(c,1);
    B(:,c)= ...

像这种问题自己设置断点调试一下即可

s20071041 发表于 2007-12-4 22:35

应该有结果我是书上例子   我用程序解他答案没出来应该程序出问题了

eight 发表于 2007-12-5 10:40

原帖由 s20071041 于 2007-12-4 22:35 发表 http://www.chinavib.com/forum/images/common/back.gif
应该有结果我是书上例子   我用程序解他答案没出来应该程序出问题了
估计课本没有问题,你先看看是否打字的时候输入有误

s20071041 发表于 2007-12-5 12:01

课本是手算的结果我们要求编程序计算还好编出来了   是程序问题谢谢你了

花如月 发表于 2007-12-5 12:30

回复 #8 s20071041 的帖子

希望可以分享一下你的程序
页: [1]
查看完整版本: 程序运行后全是NAN,问题出在哪