LU法求解线性方程组,matlab编程如何在matlab里面求解一下线性方程组:A=[1 4 0 1

发布时间:2021-02-25 09:43:54

LU法求解线性方程组,matlab编程如何在matlab里面求解一下线性方程组:A=[1 4 0 1;1 5 1 0;-3 2 0 3;-4 0 1 4]b=[11 12 7 5],x=[X1 X2 X3 X4]如何求Ax=b中的L、U还有X的值,请给出详细程序步骤!谢谢!

网友回答

线性方程组的三角分解求法其实和常用的高斯消去法等效.
如果要直接利用Matlab内置的三角分解算法,可在命令窗口直接执行以下命令:
A=[1 4 0 1;1 5 1 0;-3 2 0 3;-4 0 1 4];
b=[11; 12; 7; 5];
[L,U]=lu(A); %L为下三角,U为上三角
x=U\(L\b)
若要自己编程实现以上算法,可建立以下函数文件:
function x=GaussMethod(A,b)
%高斯消去法求解线性代数方程组Ax=b
n=size(A,1);
m=zeros(n-1,n-1);
x=zeros(n,1);
for k=1:n-1
for i=k+1:n
m(i,k)=-A(i,k)/A(k,k);
A(i,k:n)=A(i,k:n)+A(k,k:n)*m(i,k);
b(i)=b(i)+b(k)*m(i,k);
endendx(n)=b(n)/A(n,n);
for i=n-1:-1:1
p=0;for j=i+1:n
p=p+A(i,j)*x(j);
endx(i)=(b(i)-p)/A(i,i);
end 编写函数后保存.在命令窗口输入:
A=[1 4 0 1;1 5 1 0;-3 2 0 3;-4 0 1 4];
b=[11; 12; 7; 5];
x=GaussMethod(A,b)
运行后可得到
x =1.0000
2.0000
1.0000
2.0000
======以下答案可供参考======
供参考答案1:
A=[1 4 0 1;1 5 1 0;-3 2 0 3;-4 0 1 4];
b=[11 12 7 5]'; %
[L,U]=lu(A); %计算上三角和下三角
x=U\(L\b)
%求解x
以上问题属网友观点,不代表本站立场,仅供参考!