**

1、LU分解法介绍

**
LU分解在本质上是高斯消元法的一种表达形式。实质上是将A通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵。这正是所谓的杜尔里特算法(Doolittle algorithm):从下至上地对矩阵A做初等行变换,将对角线左下方的元素变成零,然后再证明这些行变换的效果等同于左乘一系列单位下三角矩阵,这一系列单位下三角矩阵的乘积的逆就是L矩阵,它也是一个单位下三角矩阵。这类算法的复杂度一般在(三分之二的n三次方) 左右。

2、示例代码

    import numpy as npa = [[2, 2, 3], [4, 7, 7], [-2, 4, 5]]b = [[3], [1], [-7]]unit_matrix=[[1,0,0],[0,1,0],[0,0,1]]#合并两个矩阵def augmented_matrix(x, y):return [aa + bb for aa, bb in zip(x, y)]def LU_decomposition():a_unit_matrix=augmented_matrix(a,unit_matrix)print(np.array(a_unit_matrix))# 交换主元for j in range(len(a_unit_matrix)):if a_unit_matrix[j][j] == 0:for w in range(len(a_unit_matrix)):if a_unit_matrix[w][j] != 0:l = a_unit_matrix[w]a_unit_matrix[w] = a_unit_matrix[j]a_unit_matrix[j] = lbreak#化为上三角矩阵j = 0while j < len(a_unit_matrix):line = a_unit_matrix[j]lest_0 = []if j==0:for x0 in line:x = x0lest_0.append(x)else:for x0 in line:x = x0/a_unit_matrix[0][0]lest_0.append(x)a_unit_matrix[j] = lest_0flag = j + 1while flag < len(a_unit_matrix):lest_1=[]temp1 = a_unit_matrix[flag][j]/a_unit_matrix[j][j]i = 0for x1 in a_unit_matrix[flag]:x = x1-(temp1 * lest_0[i])lest_1.append(x)i=i+1a_unit_matrix[flag] = lest_1flag = flag + 1j = j + 1print("将A矩阵与单位矩阵合并,然后化为下三角矩阵为:")for i in range(len(a_unit_matrix)):m = 1 / a_unit_matrix[i][i+len(a)]for j in range(len(a_unit_matrix[0])):a_unit_matrix[i][j]=m*a_unit_matrix[i][j]print(np.array(a_unit_matrix))# 分解为L的逆矩阵和U矩阵L=[]U=[]for i in range(len(a_unit_matrix)):L.append([])U.append([])for i in range(len(a_unit_matrix)):for j in range(len(a_unit_matrix[i])):if j<len(a_unit_matrix[i])/2:U[i].append(a_unit_matrix[i][j])else:L[i].append(a_unit_matrix[i][j])print("L矩阵为:")print(np.linalg.inv(np.array(L)))print("U矩阵为:")print(np.array(U))# 求D矩阵D=np.dot(L,b)print("D矩阵为:")print(D)# 通过U的逆矩阵求X矩阵U_inverse = np.linalg.inv(np.array(U))X = np.dot(U_inverse, D)print("X矩阵为:")print(X)LU_decomposition()

数值分析--python--LU分解法相关推荐

  1. 计算机数值方法——LU分解法(C++\Python代码实现)

    算法流程 首先,LU分解法就是在高斯消元法的基础上,把矩阵AAA分解为一个上三角矩阵UUU与一个单位下三角矩阵LLL的乘积. 懒得敲LaTeX公式了,书上由具体的推导过程,这里我们重点介绍代码吧 主要 ...

  2. 数值分析3-解线性方程组的高斯消去法、LU分解法及列主元消去法的matlab程序和调试方法

    对于形如Ax=b的线性方程组,在线性代数中是通过求逆的方式求解的,即x=A-1b,而在数值分析中,解线性方程组的方法是通过直接法或者迭代法来实现的,今天写的三个程序都属于直接法,分别为高斯消去法.LU ...

  3. Doolittle分解法(LU分解法)的Python实现

    在解一般的非奇异矩阵线性方程组的时候,或者在迭代改善算法中,需要使用LU分解法. 对于一个一般的非奇异矩阵A=(a11, a12,-,a1n,a21,-ann),可分解为一个下三角矩阵L和一个上三角矩 ...

  4. 紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法

    紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法 标签:计算方法实验 /* 紧凑存储的杜利特尔分解法Doolittle:如果初始矩阵不要求保留的话,可以紧凑存储.因为每 ...

  5. 计算方法:列主元消去法,LU分解法, 雅可比迭代法,高斯塞德尔迭代法 解线性方程(C++)

    Matrix.h包括矩阵类Matrix的定义,Matrix.cpp包括该类成员函数的实现,LinearEqu.h包括线性方程类LinearEqu的定义,继承自Matrix类,其中solve()方法为列 ...

  6. LU分解法 | matlab

    % LU分解法 % M为输入的增广矩阵 % precision为输入的精度要求,如不输入或输入有误,则默认为10位if nargin == 2trydigits(precision);catchdis ...

  7. 解线性方程组的直接方法:LU分解法及其C语言算法实现

    在上一篇博客里面,笔者介绍了解线性方程组的列主元Guass消元法,这篇将介绍LU分解法及其算法实现. 什么是LU分解? 对于一个线性方程组Ax=b,其中A是非奇异系数矩阵,b是线性方程组右端项,在列主 ...

  8. Matlab | Lab4——用LU 分解法、 Jacobi 迭代、 Gauss-Seidel 迭代 解线性病态方程组(系数矩阵为Hilbert矩阵)

    1.要求 考虑线性方程组Hx=b,其中H为n阶Hilbert矩阵,即 通过先给定解(例如取x的各个分量为1),再计算出右端向量b的办法给出一个精确解已知的问题. (1)分别编写Doolittle LU ...

  9. Python02 雅克比迭代法 Gauss-Seidel迭代法 列选主元法 LU分解法(附代码)

    1. 实验结果 (1)在定义的矩阵类中设置需要求解的方程为: (2)在 test.py 中选择雅克比迭代法求解: 输入:最大容许迭代次数和精度要求: 输出:根据谱半径判断方法是否收敛,收敛时得到满足精 ...

  10. matlab lu解线性方程,MATLAB报告用LU分解法求解线性方程组.doc

    MATLAB报告用LU分解法求解线性方程组 <MATLAB>期末大报告 报告内容:用LU分解法求解线性方程组 学院(系): 专 业: 班 级: 学 号: 学生姓名: 2014 年 6 月 ...

最新文章

  1. 铁打的Python连续3年第一,PHP跌出前十:IEEE Spectrum 2019编程语言排行榜出炉
  2. CWDM/DWDM是城域网最好的选择吗?
  3. 干货 | 算法工程师入门第三期——黄李超讲物体检测
  4. python 使用mysqldb模块通过ssh隧道连接mysql
  5. 在vue中实现picker样式_基于Vue实现timepicker
  6. Docker4Dev #6 使用 Windows Container 运行.net应用
  7. spark的数三角形算法_数据算法 Hadoop Spark大数据处理技巧 PDF 下载
  8. 广州山地计算机软件公司,山地企业CA安全认证系统
  9. hdoj1176 免费馅饼(dp 数塔)
  10. 解决Ubuntu下VNC客户端无法输入s和m的方法
  11. IDL | 实验四 IDL输入输出
  12. 文件加密新招--WinRAR文件加密(上)
  13. cmd命令查询电脑序列号_WINDOWS 用命令行 找到PC序列号以及计算机名称
  14. 计算机 蓝牙鼠标卡顿,Win10下蓝牙鼠标连接不稳定怎么办 Win10下蓝牙鼠标经常出现卡顿如何解决...
  15. Unity模型与动画
  16. 英特尔 11 代酷睿桌面酷睿 i9-11900K登场
  17. 打开手机这个功能,你的微信、支付宝再也不怕被盗刷,网友:放心了
  18. 校招回顾,大疆校招可内推
  19. 2021年企业十大科技趋势预测
  20. Oracle分析函数大全

热门文章

  1. 语音识别技术基础知识
  2. html语言制作静态网页,html+css制作的漂亮静态网页
  3. 适合小白的word基本操作
  4. 郎文词根mdx_欧陆词典导入mdx_欧路词典导入音频
  5. WordPress主题插件Modown6.1绿色版+Erphpdown11.6等多插件
  6. AutoCAD 百度网盘免费下载
  7. 成功解决生意参谋中transit-id和加密数据date
  8. 2021深圳杯d题数学建模 基于一个微分对策问题的机器学习能力定量评价
  9. 葵花8号卫星数据简介与下载(一)——数据介绍与FTP下载
  10. js动态生成表格实例