guass法matlab

guass法求解AX=B

matlab程序如下

function gauss2
A = [4,6,0;-3,-5,0;-3,-6,1];
B = [-1,-2,6;-1,0,3;-1,-1,4];
X = gauss(A,B)
D = eye(3)/A;
D = D*B
end
%guass法求解AX=B
function x = gauss(A,B);
%消元过程
n = size(A,2);
m = size(B,2);
for i = 1:m
    b = B(:,i);
    for k=1:n-1
        A(k+1:n,k)=A(k+1:n,k)/A(k,k);         %算子
        A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);
        b(k+1:n)=b(k+1:n)-b(k)*A(k+1:n,k); 
    end  
    %回代过程
    U=A;
    b=b;
    for j =n:-1:2
        b(j)=b(j)/U(j,j);
        b(1:j-1)=b(1:j-1)-b(j)*U(1:j-1,j);
    end
    b(1)=b(1)/U(1,1);
    B(:,i)=b;    %这个就是线性方程组的解了  
end
x = B;
end

猜你喜欢

转载自blog.csdn.net/mw_1422102031/article/details/107535762