标签:
																				
                            杂谈 | 
					
| 
 用matlab实现高斯列主元消去法解线性方程及LU分解   function x=gaussLinearEquation(A,b)   %高斯法解线性方程Ax=b   disp('原方程为AX=b:')   A   b   disp('------------------------')   n=length(b);   eps=10^-2;   for k=1:n-1                                                                           end   disp('消元后所得到的上三角阵是')   A   %回代   b(n)=b(n)/A(n,n);   for i=n-1:-1:1           end   clear x;   x=b;   disp('AX=b的解x是')   x   用法:   在控制台输入:   A=[1.003 0.333 1.504 -0.333;               b=[ 3.005,5.407,0.136,3.772 ]';   执行gaussLinearEquation(A,b);即可得到结果。 
  使用matlab实现矩阵的LU分解 function [L,U]=myLU(A) %实现对矩阵A的LU分解,L为下三角矩阵 A [n,n]=size(A); L=zeros(n,n); U=zeros(n,n); for i=1:n   end for k=1:n                 end 用法,在控制台输入 A=[1 2 3 -4;-3 -4 -12 13;2 10 0 -3;4 14 9 -13]; 然后执行[l,u]=myLU(A); 这样得到l和u,可以通过l*u与A比较来验证LU分解的正确性。   注意: [L1,U1]=lu(x) [L2,U2,P]=lu(x) [L3,U3,P,Q] = lu(X) MATLAB中[L1,U1]=lu(x)的结果:L是下三角的置换矩阵即L1=p*L2,U是上三角阵。Matlab中LU分解采用高斯消元法,结果是不唯一的,只要[L1,U1]=lu(x)满足L1*U1=x, [L2,U2,P]=lu(x)满足L2*U2=p*x,[L3,U3,P,Q] = lu(X)满足 L3*U3= P*X*Q就行了。  | 

加载中…