我正在按照书中的理论代码求解特定的矩阵。
我的问题很简单,我将一个列矩阵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