追赶法求解三对角矩阵线性方程组的Python实现

本文介绍了使用追赶法解决大型稀疏三对角矩阵线性方程组的方法,详细阐述了Crout分解过程,并通过Python代码展示了如何将Ax=b转化为LUx=b,最终求解得到x的解。
摘要由CSDN通过智能技术生成

追赶法是求大型稀疏方程之三对角线性方程组的三角分解方法,即求解方程组Ax=b,其中A为三对角矩阵,主对角线上的元素记为(a1, a2, …, an) ,紧贴主对角线上方的一根对角线上的元素记为(c1,…c(n-1) ),紧贴主对角线下方的一根对角线上的元素记为(d2, d3, …, dn),b=(b1,…bn)
对三对角矩阵A进行Crout分解,有

A=[[α1  0  0  0 .......      [[1  β1  0  0 ......
	γ1  α2 0  0  ......    *   0   1  β2 0 ......    = LU
	0   γ1 α3 0 ......]]       0   0  1  β3......]]

依次求取αi,βi,其中
α1=a1,β1=c1/α1,γi=di
αi=ai-di*βi
βi=ci/αi

下面是一个例子

A=[[ 3  2  0
	-1  3  2
	 0 -1  3...
	 ..........]]的n阶三对角矩阵
b=(7,11,15,9)'
求解x

首先进行crout分解,将AX=b转化为LUx=b
令Ux=y,仿照平方根解法,利用Ly=b和Ux=y,解出x
代码如下

# -*- coding: utf-8 -*-
"""
Created on Mon Feb 11 20:19:00 2019

@author: 鹰皇
"""

#追赶法
import numpy as np
A=[[3.00000,2.00000,0.0000
  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值