MATLAB 代码中的问题,用于求解所需的“n”个 Ax = b 类型的联立方程,前提是求解涉及上三角矩阵的方法,并且 A 和 b 的值与 x 值一起演变为 Aprime 和 bprime。
问题是编写一个代码,可以使用上三角矩阵求解“n”个 Ax = b 类型的联立方程。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]
一个=
1 1 0
2 1 1
1 2 3
b= [3;7;14]
b =
3
7
14
[x, Aprime, bprime] = 已解决(A, b)
x =
1
2
3
素=
1.0000 1.0000 0
0 0.5000 -0.5000
0 -1.0000 -3.0000
bprim =
3.0000
-0.5000 -11.0000
第二种是,
A = [1 2 3; 4 5 6]
一个=
1 2 3
4 5 6
b = [7;8;9;10]
b =
7
8
9
10
[x, Aprime, bprime] = 已解决(A, b) 错误!!矩阵尺寸应该一致。已解决的错误(第 2 行) n = size(A); 在调用“C:\Users\Hari\Documents\solved.m>solved”期间未分配输出参数“x”(可能还有其他参数)。