高斯消元法求解matlab中的线性系统

时间:2016-10-22 23:29:44

标签: matlab numerical-methods

所以我应该创建一个输入矩阵A和右侧矢量b的函数。它应该执行高斯消元法并输出Ax = b的解x。以下是我到目前为止所提供的内容,其中一些是在课堂上提供的。

function [x] = myLU(A,b)
%Gaussian elimination first
for i=1:n-1
%ith step
    for k=i+1:n
    %kth row
        multiplier = A(k,i)/A(i,i);
        for j=i+1:n
            A(k,j)=A(k,j)-multiplier*A(i,j)
        end

        for j=i+1:n
            b(j)=b(j)-multiplier*b(i);
        end
    end
end
%upper triangular
for i=n:-1:1
    %solve for x(i), assume x(i+1)...x(n) are known
    x(i)=b(i);
    for k=i+1:n
        x(i)=x(i)-A(i,k)*x(k);
    end
    x(i)=x(i)/A(i,i);
end

问题在于它为向量x中的每个值返回NaN。我还注意到,当在函数中间返回矩阵A时,它不返回上三角矩阵。此外,它告诉我n是一个未定义的变量,但我不知道如何定义它除了为它指定一个特定的数字。我错过了整个功能部分还是我的代码?

0 个答案:

没有答案