1、报告内容:用LU分解法求解线性方程组 一、 报告目的学会用LU分解法解线性方程组,并且为了保证乘子的绝对值小于1,需要对主元数值很小的时候进行方程变换。二、 报告内容1:测试基本线性方程:可见程序运行结果正确。2:测试主元有接近于0的线性方程:可见程序运行结果正确。3:测试矩阵维度大于5情况:可见程序运行结果正确。三、 源程序function X=LU1(A,B)B=B;A=A;B,n=length(B);X=zeros(n,1);y=zeros(n,1);U=zeros(n);L=eye(n);for k=1:n U(1,k)=A(1,k); L(k,1)=A(k,1)/U(1,1);end
2、for i=2:n for k=i:n lu=0; lu1=0; for j=1:i-1 lu=lu+L(i,j)*U(j,k); lu1=lu1+L(k,j)*U(j,i); end U(i,k)=A(i,k)-lu; L(k,i)=(A(k,i)-lu1)/U(i,i); endendLUfor i=1:n ly=0; for j=1:i ly=ly+L(i,j)*y(j); end y(i)=B(i)-ly;endfor i=n:-1:1 ly1=0; for j=i+1:n ly1=ly1+U(i,j)*X(j); end X(i)=(y(i)-ly1)/U(i,i);end 四、报告分析与心得MATLAB编程和C编程一样需要仔细的逻辑和十分的细心,自己还有很多需要学习的地方。