数值计算线性方程组求解实现

本文主要介绍了在数值计算中解线性方程组的两种方法:高斯消元法和LU分解法。详细阐述了这两种方法的步骤,包括矩阵的化简过程和特殊情况的处理。程序设计考虑了行翻转优化和不同情况下的解的存在性判断,确保了程序的健壮性。
摘要由CSDN通过智能技术生成

一、引言

在自然科学和工程技术中很多问题的解决常常归结为解线性代数方程组,从而获得问题的解决方案,在解方程组的过程中从大的方面来讲有直接法和迭代法。而以下我们的程序通过高斯消去法和三角分解法解线性方程组中,主要是运用了迭代法。

二、算法描述(Linear equation

1Guass elimination

1n,m分别表示线性方程组的个数和所要求解未知量的个数,函数中设置变量root_number,监视方程组解的个数,具体对应关系如下表所示(斜杠表示不存在的情况)

 root_number

n>m

n=m

n<m

0

线性方程组无解

1

方程组个数大于未知数个数,但有些项可以消去,有唯一一组解

方程组个数等于未知数个数,有唯一一组解

IF(表示无穷大)

方程组个数大于未知数个数,但有些项可以消去,有无穷多组解

方程组个数等于未知数个数,但有些项可以消去,有无穷多组解

方程组个数小于未知数个数,有无穷多组解

这里具体以n=m讨论且没有可以消去的项,

具体如下矩阵,设有n元矩阵m个未知量

a11  · · ·   a1m         x1  b1    

· ·        ·    ·     ·

·    ·     ·    ·  = ·

·      ·   ·    ·     ·

an1  · · ·      anm        xn              bn

已知矩阵中m+1列存放方程结果b1,b2,…bn

第一步:选取第一列中ai1绝对值最大的作为主元,即主元所在行与第一行交换,

然后 令

li1= ai1/a11,i= 2,3,……,m+1

用(-li1)乘第一个方程加到第i个方程上,得同解方程组:

a11(1)   a11(1)  ·   a1m(1)          x1        b1(1)

0     a22(2)   ·   a2m(2)      x2         b2(2)

  ·    ·     ·   ·        ·   =    ·

  0      an-12(1)  ·  an-1m(1)        xn-1           bn-1(2)

0     an2(1)   ·    anm (1)        xn             bn(2)

简记为A(2)*X=b(2),其中

aij(2) = aij(1) – li1 * a1j(1) ,  i=2,3….n,   j = 2,3,..,m+1

第二步:如果a22(2) != 0,令 li2= ai2(2/a22(2, I= 3,……,n 依据同样的原理,对矩阵进行化间(省略),依次下去,直到完成!

最后得到矩阵方程

1   a12(1) ·  ·   a1m(1)          x1        b1(1)

0   1    ·  ·   a2m(2)      x2        b2(2)

  0   0    ·  ·   ·       ·   =   ·

               1      an-1m (n-1)      xn-1          bn-1(n-1)

0   0    0    ·      1             xn             bn(n)

简记为 A(n)*x=b(n)

线性方程组的结果(即b值)存储在数组最后一列,

则求解过程如下:

Xn=an,n+1

Xn-1=a n-1,n+1-an-1,n*xn

Xn-2=an-2,n+1-an-2,n-1*xn-1-an-2,n*xn

X1=a1,n+1-a1,2*x2-a1,3*x3-…-a1,n*xn

2LU  factorisation

输入线性方程组的个数n和未知量m的个数,若n不等于m。则不满足分解条件,无法分解。下面只讨论n等于

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值