[求助]帮忙看下程序
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编辑过]
错误信息
<P>??? Index exceeds matrix dimensions.</P><P>Error in ==> D:\MATLAB6p5\work\file1.m<BR>On line 24==> y(i)=b(p(i))-L(i,1:i-1)*y(1:i,-1)';</P>
ddddddddddddd
dddddddddddddddddddddddddd y(i)=b(p(i))-L(i,1:i-1)*y(1:i,-1)<FONT color=#ff0000>'</FONT>;<BR><BR>最后这个分号没什么作用啊 你程序里面的y数组,应该是个一维的吧。那你调用y(1:i,<FONT color=#ee3d11>-1</FONT>),我觉得可能有问题,而且为什么是-1列呢?见红色的地方。 矩阵维数不对 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>)'谢谢大家 非常感谢
<FONT face=Verdana color=#61b713><B>nochance同志说对了问题解决了我自己可是检查了N遍都查不出来 那是相当的郁闷 </B></FONT>[此贴子已经被aspen于2006-6-3 13:55:20编辑过]
谢谢大家 非常感谢
nochance同志说对了问题解决了我自己可是检查了N遍都查不出来 那是相当的郁闷
页:
[1]