gui951 发表于 2006-6-2 13:55

[求助]帮忙看下程序

function x=gauss_eli(A,b)<br>A=;<br>b='; <br>n=length(b);p=1:n;LU=A;<br>for k=1:n<br>    =max(abs(LU(k:n,k)));<br>    ik=i+k-1;<br>    if ik~=k<br>      m=p(k);p(k)=p(ik);p(ik)=m;<br>      ck=LU(k,:);LU(k,:)=LU(ik,:);LU(ik,:)=ck;<br>    end<br>    if k==n break;end<br>       LU(k+1:n,k)=LU(k+1:n,k)/LU(k,k);<br>       LU(k+1:n,k+1:n)=LU(k+1:n,k+1:n)-LU(k+1:n,k)*LU(k,k+1:n);<br>    end<br>    L=diag(ones(n,1))+tril(LU,-1);<br>    U=triu(LU);<br>    p;<br>    y(1)=b(p(1));<br>    for i=2:n<br>      y(i)=b(p(i))-L(i,1:i-1)*y(1:i,-1)';<br>    end<br>    x(n)=y(n)/U(n,n);<br>    for i=n-1:-1:1<br>      x(i)=(y(i)-U(i,i+1:n)*x(i+1:n)')/U(i,i);<br>    end   <br>
[此贴子已经被cdwxg于2006-6-2 23:51:40编辑过]

gui951 发表于 2006-6-2 14:00

错误信息

<P>??? Index exceeds matrix dimensions.</P>
<P>Error in ==&gt; D:\MATLAB6p5\work\file1.m<BR>On line 24==&gt;         y(i)=b(p(i))-L(i,1:i-1)*y(1:i,-1)';</P>

gui951 发表于 2006-6-2 15:23

ddddddddddddd

dddddddddddddddddddddddddd

lxq 发表于 2006-6-2 18:10

y(i)=b(p(i))-L(i,1:i-1)*y(1:i,-1)<FONT color=#ff0000>'</FONT>;<BR><BR>最后这个分号没什么作用啊

nochance 发表于 2006-6-2 21:00

你程序里面的y数组,应该是个一维的吧。那你调用y(1:i,<FONT color=#ee3d11>-1</FONT>),我觉得可能有问题,而且为什么是-1列呢?见红色的地方。

assist 发表于 2006-6-2 23:45

矩阵维数不对

nochance 发表于 2006-6-3 08:36

y(i)=b(p(i))-L(i,1:i-1)*y(<FONT color=#f70909>1:i,-1</FONT>)';<BR>当时敲错了吧,你的意思可能是y(<FONT color=#f70909>1:i-1</FONT>)'

gui951 发表于 2006-6-3 13:06

谢谢大家 非常感谢

<FONT face=Verdana color=#61b713><B>nochance同志说对了问题解决了我自己可是检查了N遍都查不出来 那是相当的郁闷 </B></FONT>
[此贴子已经被aspen于2006-6-3 13:55:20编辑过]

gui951 发表于 2006-6-3 13:08

谢谢大家 非常感谢

nochance同志说对了问题解决了我自己可是检查了N遍都查不出来 那是相当的郁闷
页: [1]
查看完整版本: [求助]帮忙看下程序