0
ガウスの前方と後方の消去を使用して、最後にはバックスラッシュを行う必要はありません。間違って、毎回私は隅にすべてゼロを得ることはありません私のコードを試してみたが、私は別々にのみ前進消去の作品とあまりにだけ後方排除私のコードを.....しようとした場合ガウスの前方と後方の除去
clc, close all, clear *
%Input Matrix
A = input('Enter a matrix: ');
b = input('Enter the result vector: ');
% for example this two:
% A= [1 2 3; 2 1 1; 6 -7 5];
% b= [3; 2; 5];
Ab= [A, b];
%%%%%%%%%% gauss elimination forward & backward elimination%%%%%%%%%%%%%%%
%Forward elimination
% A(1,1) is pivot
factor = A(2,1)/A(1,1);
Ab(2,:) = Ab(2,:) - factor*Ab(1,:);
factor = A(3,1)/A(1,1);
Ab(3,:) = Ab(3,:) - factor*Ab(1,:);
% A(2,2) is pivot
factor = Ab(3,2)/Ab(2,2);
Ab(3,:) = Ab(3,:) - factor*Ab(2,:);
%Backward elimination
% A(3,3) is pivot
factor = A(2,3)/A(3,3);
Ab(2,:) = Ab(2,:) - factor*Ab(3,:);
factor = A(1,3)/A(3,3);
Ab(1,:) = Ab(1,:) - factor*Ab(3,:);
% A(2,2) is pivot
factor = Ab(1,2)/Ab(2,2);
Ab(1,:) = Ab(1,:) - factor*Ab(2,:);
ありがとうございました。 – ECasio
Yep!将来、このような短いコードのトラブルシューティングを行う良い方法は、行単位で歩き回り、どのステップで出力が発生していると思われるかが異なることを確認することです。この場合、4番目の要素が予期せず-5になったときに気付くでしょう。 [どのように私はそれをトラブルシューティングです] –