您好,欢迎来到东饰资讯网。
搜索
您的当前位置:首页三角分解法的应用

三角分解法的应用

来源:东饰资讯网


三角分解法的应用

1. 问题背景

在很多工程问题的时候,可能有很多的变量,建立了线性方程组。对于线性方程组的求解,人工计算很废时间,也很废精力。但是我们可以采用三角分解法来完成这种运算。

2. 数学模型

设N个未知数的线性方程组为:

a11x1a12x2a1nxnb1axaxaxb2112222nn2an1x1an2x2annxnbn

3. 算法及流程

三角分解法的流程:

AXb,ALUAXbLUXb(1)LYb,UXYX

将矩阵分解为A=LU,L为下三角矩阵,U为上三角矩阵。L和U是唯一的。如下式:

1m21Lm31mn1(1)a11U1m32mn2(1)a12(2)a2211a1(1)n(2)a2n(n)ann

对于三角矩阵的求解是非常简单,进行简单的回代即可以求解。

matlab程序

clc;

clear;

A=input('请输入线性方程组的系数矩阵A=');

b=input('请输入线性方程组右边的值b=');

n=length(A);

A=[A b];

L=eye(n);

U=zeros(n);

for i=1:n-1

for j=i:n-1

L(j+1,i)=A(j+1,i)/A(i,i);

A(j+1,:)=A(j+1,:)-L(j+1,i)*A(i,:);

end

end

U=A(:,1:n);

a1=[L b]

n=length(a1)-1;

y=zeros(n,1);

s=0;

for i=1:1:n

if i==1

y(1)=a1(1,n+1)/a1(1,1);

else

for j=1:1:i-1

s=s+a1(i,j)*y(j);

end

y(i)=(a1(i,n+1)-s)/a1(i,i);

s=0;

end

end

a2=[U y]

n=length(a2)-1;

for i=n:-1:1

s=0;

if i==n

x(i)=(a2(n,n+1)-s)/a2(n,n);

else

for j=n:-1:i

s=s+a2(i,j)*x(j);

end

x(i)=(a2(i,n+1)-s)/a2(i,i);

end

end

x

4. 计算结果及分析

请输入线性方程组的系数矩阵A=[2 2 3;4 7 7;-2 4 5]

请输入线性方程组右边的值b=[3;1;-7]

[L b]=

1 0 0 3

2 1 0 1

-1 2 1 -7

[U y ]=

2 2 3 3

0 3 1 -5

0 0 6 6

x =

2 -2 1

通过输入线性方程组的系数矩阵和右边的数值一列。通过程序的运算,将矩阵分解为L和U,一个下三角矩阵和一个上三角矩阵,然后通过三角矩阵的计算方法,通过回代最终得计算结果。编写的程序是合理的。采用此种方法可以计算线性方程组,但是变量非常多线性方程组,输入数据难,而且计算次数过多,效率不是很高。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuoyibo.cn 版权所有 湘ICP备2023022426号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务