Ax = b 型の希望する 'n' 個の連立方程式を解くための MATLAB コードの問題で、解法に上三角行列の方法が含まれ、A と b の値が x の値と共に Aprime と bprime に展開されます。
問題は、上三角行列を使って Ax = b 型の n 個の連立方程式を解くコードを書くことです。A と b の値は、コマンド ウィンドウで行列として指定されます。プログラムが正常に実行されると、コードは応答として Aprime、bprime、および x の値を返す必要があります。コードはまた、特定の方程式に対して「エラー、行列の次元が一致しません」(または何でも!) として出力を与える必要があります! 上記のエラーメッセージとともにエラーが表示されることを除いて、コードは正常に機能します。
私が使用したコードは次のとおりです。
function [x, Aprime, bprime]=solved(A,b)
n = size(A);
% Assign the size of A to n.
if (n(1)~= n(2)) || (det(A) == 0)
% Checking through the determinant method for dimension error.
disp('ERROR!! Matrix dimensions should agree.')
else
for j=1 %:n-1
% Fix the first value of j to 1.
if A(j,j)==0
u=A(j,:);
A(j,:)=A(j+1,:);
A(j+1,:)=u;
%using u as a temperary value "u", to save the row,to swap the positions of two rows.
v=b(j);
b(j)=b(j+1);
b(j+1)=v;
%using u as a temperary variable "v", to save the row,to interchange the positions of two rows in b matrix.
end
for i=j+1:n
if A(i,j)~=0
%If the first number of the particular row be zero.
b(i)=b(j)+(b(i)*(-A(j,j)/A(i,j)));
A(i,:) = A(j,:)+(A(i,:)*(-A(j,j)/A(i,j)));
end
%After this 'for'loop, the matrix becomes a upper triangle matrix.
end
Aprime=A;
bprime=b;
x=A\b;
% Using this command the values of x,y,z can be found.
end
end
end
適切な修正を提供してください....
コマンド ウィンドウで得られた結果、
A = [1 1 0;2 1 1;1 2 3]
A =
1 1 0
2 1 1
1 2 3
b= [3;7;14]
b =
3
7
14
[x, Aprime, bprime] = 解決済み(A, b)
×=
1
2
3
アプリメ=
1.0000 1.0000 0
0 0.5000 -0.5000
0 -1.0000 -3.0000
bprime =
3.0000
-0.5000 -11.0000
2番目のタイプは、
A = [1 2 3; 4 5 6]
A =
1 2 3
4 5 6
b = [7;8;9;10]
b =
7
8
9
10
[x, Aprime, bprime] = solve(A, b) エラー!! 行列の次元は一致する必要があります。解決済みのエラー (2 行目) n = size(A); "C:\Users\Hari\Documents\solved.m>solved" への呼び出し中に、出力引数 "x" (およびおそらくその他) が割り当てられません。