用于从n-1位置到1

时间:2019-05-25 18:05:39

标签: matlab matrix octave

我正在按照书中的理论代码求解特定的矩阵。

我的问题很简单,我将一个列矩阵X中的最后一个值设置为等于一个列矩阵Z中的最后一个值。

此后,我需要进行循环操作,我需要选择倒数第二个到第一个。

我不知道如何通过代码方式解决这个问题

这本书有“ i = n-1,....,1”

如果它是i = 1,.....,n-1,那很容易。

我尝试了i =(n-1):1 这是i =(n-1):-1:1

不起作用。退货为空

下面是清楚的代码:

i=n-1:1

x(i,1)=z(i,1)-u(i,i+1)*x(i+1,1)

所以,如果n = 4,我已经有x(4)。

所以X(3)= z(3)-u(3,4)* x(4,1)

更多代码:

n=4;
Matrix=[2,-1,0,0,1;-1, 2,-1,0,0;0,-1,2,-1,0;0,0,-1,2,1];
u=eye(4,4);
l(1,1)=Matrix(1,1);
u(1,2)=Matrix(1,2)/l(1,1);
z(1,1)=Matrix(1,n+1)/l(1,1);

for i=2:n-1
  l(i,i-1)=Matrix(i,i-1);
  l(i,i)=Matrix(i,i)-l(i,i-1)*u(i-1,i); 
  u(i,i+1)=Matrix(i,i+1)/l(i,i);    
  z(i,1)=(Matrix(i,n+1)-l(i,i-1)*z(i-1,1))/l(i,i); 
endfor
l(n,n-1)=Matrix(n,n-1);
l(n,n)=Matrix(n,n)-l(n,n-1)*u(n-1,n)
z(n,1)=(Matrix(n,n+1)-l(n,n-1)*z(n-1,1))/l(n,n)
x(n,1)=z(n,1);

for i=(1-n):-1:1
  x(i,1)=z(i,1)-u(i,i+1)*x(i+1,1);
endfor

0 个答案:

没有答案