Matlab code to perform a loop
1 回表示 (過去 30 日間)
古いコメントを表示
Please I need matlab code to transform a matrix A(nxn) to another matrix B following the steps shown
function [x]=semitn(A,b,n)
n = size(A,1);
%splitting matrix A into the three matrices L, U and E
L=tril(A,-1);
U = triu(A,1);
D = diag(diag(A));
%obtaining a new matrix Ex= C(1)
P=L+D;
C(1)=P\b;
M(1) =P\U;
I=eye(n,n);
E= I+M(1);
E*x= C(1)
% partitioning matrix Ex= C(1)
A1=E(1,1);
A2=E(1,2:n);
A3=E(2:n,1);
A4=E(2:n,2:n);
x(1)=x(2:n)
b(1)= C(1)(2:n)
F=[A1 A2;A3 A4];
G=[x(1),x(1)]’;
H=[C(1)(1),b(1)]’;
F*G=H;
A1* x(1)+A2* x(1)= C(1)(1) eqn (1a)
A3* x(1)+A4* x(1)= b(1) eqn (1b)
From equation 1b we have
A4* x(1)= b(1)
A4 =A(1)
A(1)* x(1)= b(1)
L(1)=tril(A(1),-1);
U(1) = triu(A(1),1);
D(1) = diag(diag(A(1)));
%obtaining a new matrix E(1) x(1)= C(2)
P(1)= L(1)+ D(1);
C(2)= P(1)\ b(1);
M(2) = P(1)\ U(1);
I=eye(n-1,n-1);
E(1)= I+M(2);
E(1)* x(1)= C(2)
% partitioning matrix E(1)* x(1)= C(2)
A1(1)= E(1) (1,1);
A2(1)= E(1)(1,2:n);
A3(1)= E(1)(2:n,1);
A4(1)= E(1)(2:n,2:n);
x(2)= x(1)(2:n)
b(2)= C(2)(2:n)
F(1)=[ A1(1) A2(1); A3(1) A4(1)];
G(1)=[x(2),x(3)]’;
H(1)=[C(2)(1),b(2)]’;
F(1)* G(1)= H(1);
A1(1) * x(2)+ A2(1)* x(2)= C(2)(1) eqn (2a)
A3(1) * x(2)+ A4(1)* x(2)= b(2) eqn (2b)
From equation 2b we have
A4(1)* x(2)= b(2)
A4(1) =A(2)
A(2)* x(2)= b(2)
.
.
.
A(n −2) x(n −2) = b(n −2)
A(n-2)* x(n-2)= b(n-2)
L(n-2)=tril(A(n-2),-1);
U(n-2)= triu(A(n-2),1);
D(n-2)= diag(diag(A(n-2)));
%obtaining a new matrix E(n-2)x(n-2)= C(n-1)
P(n-2)= L(n-2)+ D(n-2);
C(n-1)= P(n-2)\ b(n-2);
M(n-1)= P(n-2)\ U(n-2);
I=eye(2,2);
E(n-2)= I+M(n-1);
E(n-2)* x(n-2)= C(n-1)
A1(n-2)= E(n-2)(1,1);
A2(n-2)= E(n-2)(1,2);
A3(n-2)= E(n-2)(2,1);
A4(n-2)= E(n-2)(2,2);
x(2)= x(1)(2:n)
b(2)= C(2)(2:n)
F(n-2)=[ A1(n-2) A2(n-2); A3(n-2) A4(n-2)];
G(n-2)=[x(n-1),x(n)]’;
H(n-2)=[C(n-1)(1), C(n-1)(2)]’;
F(n-2)* G(n-2)= H(n-2);
A1(n-2) * x(n-1)+ A2(n-2)* x(n)= C(n-1)(1)eqn ((n-1)a)
A3(n-2) * x(n-1)+ A4(n-2)* x(n)= C(n-1)(2)eqn ((n-1)b)
From equation ((n-1)b) we have
A4(n-2)* x(n)= C(n-1)(2)
x(n)= C(n-1)(2)/ A4(n-2)
perform a back substitution to obtain
x(n-1),…,x(1)
0 件のコメント
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Mathematics and Optimization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!