所以我应该创建一个输入矩阵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是一个未定义的变量,但我不知道如何定义它除了为它指定一个特定的数字。我错过了整个功能部分还是我的代码?