文档章节

矩阵的LU分解

千面人
 千面人
发布于 2016/12/08 22:27
字数 322
阅读 52
收藏 0

矩阵的高斯消元法,通过行变换化成上三角阵。

可以表示为...E32E31E21A = U, 其中E表示行变换初等矩阵或消元矩阵,系数ij代表让A的ij位置变成0(暂不考虑行交换)

于是A = LU 其中L等于(...E32E31E21)的逆 编辑器不能用上下标写公式真是费劲 

而(...E32E31E21)取逆后,行变换互不干扰,计算L只需要把消元矩阵中的值取反放到相应位置上即可。(Eij的逆就是ij位置上的数取负号)

于是分解的计算过程伪代码如下:(只表达计算思路,不优化存储,返回结果等):

#从第一行到最后一行循环
for k from 1 to n:
    for i from k+1 to n:
        L[i][k] = A[i][k]/A[k][k]
        #对应的行相减
        row[i] -= L[i][k]*row[k]

#最后L下三角的数据(不包括对角线,对角线上都是1),A的上三角数据为U 为最终分解结果。

网上很多直接套公式,求单个位置上的数的算法,但必须要知道公式怎么来的,否则不好记忆。

公式如下图【1】:

 

【1】LU分解 - 百度百科

http://baike.baidu.com/link?url=FgR_JLQXZpkS1CPtC-ChvnRh_RtS7H-8Kktev5YEjS9TuEitEE6ZyivQVF8ntTkHx_CdkJpAmAj6xfNlmwPv_nDfKAPnpr5W2KN2YhIkb13

© 著作权归作者所有

共有 人打赏支持
千面人
粉丝 16
博文 47
码字总数 24904
作品 0
杭州
高级程序员
Armadillo之LU分解(LU factorisation/LU decomposition)

在armadillo库中,矩阵的LU分解(LU factorisation or LU decomposition)使用lu函数,lu函数有两个版本 1 lu(L,U,P,X) 其中X是欲进行分解的矩阵,分解生成L,U,P满足 1)P是一个置换矩阵(p...

桑梓狼狼
2014/08/01
0
0
基于javascript的矩阵LU分解的实现

在线性代数中,LU分解是将一个矩阵分解为 L(单位下三角矩阵)和 U(上三角矩阵),可用于求解线性方程组、反矩阵和计算行列式。本文结合LU分解,用javascript实现线性方程组的求解; 假设存...

qq_37338983
04/12
0
0
你知道MATLAB ,但你知道 NMATH吗?

NMath是一个.NET的数学库,包含了NET平台上的面向对象数字计算的基础类。 产品特点如下: 单精度和双精度复数类 为以下四种数据类型提供全功能的向量和矩阵类:单精度浮点数,双精度浮点数,...

愤怒的小吉
2014/10/24
360
0
Eigen 3.2.0-beta1 发布,线性算术的C++模板库

这个beta版本引入了内置的稀疏矩阵,和真正的QZ分解和广义特征求解稠密矩阵的LU和QR因子分解,以及Ref<>参考类。同时修复了一些bug。 Eigen 是一个线性算术的C++模板库,包括:vectors, matr...

zino
2013/03/08
894
6
SP++3.0已发布,欢迎大家使用(同心协力,共创开源)

SP++ (Signal Processing in C++) 是一个关于信号处理与数值计算的开源C++程序库,该库提供了信号处理与数值计算中常用算法的C++实现。SP++中所有算法都以C++类模板方法实现,以头文件形式组...

张明
2011/02/12
0
55

没有更多内容

加载失败,请刷新页面

加载更多

Bash各类扩展详解

Bash各类扩展详解 Bash中主要包括大括号扩展、波浪号扩展、变量扩展、子命令扩展、文件名扩展和算数扩展。这些扩展组合在一起为Bash带来了极大的易用性。掌握这些扩展的用法和功能,能够为B...

小陶小陶
今天
1
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
5
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
3
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部