0
我想使用高斯向前和向后消除,因此最终我不需要做背部置换,因为除了我的对角线外,我的矩阵中都有零。走错了,每次我尝试我的代码,我没有得到在角落里的所有零,但如果我尝试我的代码seperately唯一的前锋消除作品,唯一的淘汰落后太多.....高斯向前和向后消除
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
是的!将来,解决这种短代码问题的一种好方法就是试着逐行浏览它,并查看输出与您认为应该发生的不同之处。在这种情况下,你会注意到你的第四个因素意外等于-5。 [我怎么麻烦它] –