完全に機能するCramerのルールには次のコードがありますが、3次の線形方程式のシステムではx3の値、x4、x5などは同じです(私が使用した質問からのフォールトではありませんが、コードからのものだと思います)。誰かが私を助けてくれますか?例えばMATLAB:Cramerのルールコードのx3、x4、x5などの出力値が同じ理由
function x=cramer_rule(A,b)
A=input('matrix A =');
b=input('vector b =');
n=size(A,1);
m=size(A,2);
if n~=m
fprintf(1, '\n The matrix is not square! \n');
x=[];
else
detA=det(A);
if det(A)~=0
x=zeros(n,1);
for j=1:n
if j~=1 && j~=n
Ab=[A(:,1:j-1) b A(:,j+1:n)];
elseif j==1
Ab=[b A(:,2:n)];
end
x(j)=det(Ab)/detA;
end %for j=1:n
else
fprintf(1, '\n The matrix A has a zero determinant \n');
x=[];
end % if det(A)~=0
end % if n~=m
、行列A = [2,5、-9,3、5,6、-4,2; 3、-4,2,7、11,7,4、-8 ]とb = [151; 103; 16; -32]は、x1 = 3、x2 = 5、x3 = -11、x4 = 7の出力を与えると仮定しますが、x3とx4は-11になります。
あなたの提案や投稿は高く評価されます。
ありがとうございました。それは完全に動作します。私は高次のためにそれを使うとき、私のX3、X4などは同じです。それは注文3のためだけに働くという意味ですか?例えば、行列A = [2,5、-9,3; 5,6、-4,2; 3,4,2,7; 11,7,4、-8]およびベクトルb = [151; 103 ; 16; -31] x1 = 3、x2 = 5、x3 = -11、x4 = 7の値を与えると仮定しますが、3.1172,4.9892、-11.0670、-11.0670(なぜ-11.0670が2回間違っているか) この異常の原因は何ですか? – babs