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的值,请给出详细程序步骤!谢谢!

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 22:29:06

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的值,请给出详细程序步骤!谢谢!
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的值,请给出详细程序步骤!谢谢!

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);
end
end
x(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);
end
x(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

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