matlab 线性方程 lu分解法_数值计算笔记-LU分解
补充:
- 矩阵算子范数:设
,对于某种给定的向量范数.矩阵的算子范数为
- 矩阵1-范数:
- 矩阵2-范数:
- 矩阵
-范数:
1.问题条件数:解方程组
(1)
(2)A右扰动,变成
(3)定理:上述条件数统称为矩阵的条件数,记为cond(A),可证
(4)条件数有如下性质
- 若A为非奇异矩阵
- 若D为对角矩阵:
- 采用2-范数:
- 若Q为正交矩阵
2.基本高斯消元(行变换不能交换两行)
(1)算法:消去过程
输入:A,
输出:上三角矩阵A,改变后的
for k = 1 to n-1for i = k + 1 to nc = - a_ik / a_kkfor j = k + 1 to n //该循环即为初等行变换,a_ij = a_ij + c * a_kj //将矩阵的一行乘c,加到另一行上endb_i = b_i = c * b_kend
end
注:这里采用原地工作的方式,上三角矩阵U = 计算得到的A
(2)带回过程(解方程
输入:
输出:
for i = n to 1x_i = b_ifor j = n to i + 1x_i = x_i - u_ij * x_jendx_i = x_i / u_ii
end
注:
- 其中计算
的公式为
- 上面两个算法要求A在高斯化简得过程中不会出现主元
的现象
3.高斯-若当消元法
思路:高斯若当消元法其实没有什么改变,仅仅是将
输入:A,B = I
输出:
for k = 1 to nfor j = k + 1 to n //对矩阵A的行归一化a_kj = a_kj / a_kkendfor j = 1 to k //对矩阵B进行相同的操作b_kj = b_kj / a_kkendfor i = 1 to n (i != k)for j = k + 1 to n // 对A进行行变化a_ij = a_ij - a_ik * a_kjendfor j = 1 to k //对B进行相同的行变化b_ij = b_ij - a_ik * b_kjendend
end
注:同样要求在高斯消元过程中
4.消去矩阵:
性质:
- ,可以看作初等矩阵经过n - k次行变换的结果
- 可以看作A在进行高斯消元时,到第k行的行变换过程
- 消去矩阵为单位下三角矩阵,且为非奇异矩阵
- 消去矩阵
的逆
- 也为单位下三角矩阵,他们的乘积为每个矩阵元素的”并“
5.LU分解
推导:经过行列变化
定理:
算法:高斯消去过程进行LU分解
输入:A
输出:A(其中包含了L,U矩阵)
for k = 1 to n - 1for i = k + 1 to na_ik = a_ik / a_kk //计算L中元素并储存在A中for j = k + 1 to na_ij = a_ij - a_ik * a_kjendend
end
直接LU分解推导:
(1)A第1行:
(2)A第1列:
(3)A第k行:
(4)A第k列:
算法:LU直接分解法
输入:A,n
输出:A(L,U矩阵储存在A中)
for k = 1 to n - 1for i = k + 1 to n //这两个嵌套循环计算L矩阵第k列for j = 1 to na_ik = a_ik - a_jk * a_ijenda_ik = a_ik / a_kkendfor j = k + 1 to n //计算U矩阵的第k + 1列for i = 1 to ka_k+1,j = a_k+1, j - a_k+1,i * a_ijendend
end
5.LU分解用途:
解方程
其中
单位下三角方程组算法求解,
单位下三角方程组求解
输入:单位下三角矩阵L,
输出:
for i = 1 to ny_i = b_ifor j = 1 to i - 1y_i = y_i - l_{ij} * y_jend
end
注:
- 实际计算公式为
- 用LU分解计算多个方程组
时,只用分解一次复杂度为,之后每次计算复杂度都为;但是高斯消元每次计算都有的复杂度
6.基本高斯消元的充要条件:
matlab 线性方程 lu分解法_数值计算笔记-LU分解相关推荐
- 紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法
紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法 标签:计算方法实验 /* 紧凑存储的杜利特尔分解法Doolittle:如果初始矩阵不要求保留的话,可以紧凑存储.因为每 ...
- LU分解法 | matlab
% LU分解法 % M为输入的增广矩阵 % precision为输入的精度要求,如不输入或输入有误,则默认为10位if nargin == 2trydigits(precision);catchdis ...
- Python02 雅克比迭代法 Gauss-Seidel迭代法 列选主元法 LU分解法(附代码)
1. 实验结果 (1)在定义的矩阵类中设置需要求解的方程为: (2)在 test.py 中选择雅克比迭代法求解: 输入:最大容许迭代次数和精度要求: 输出:根据谱半径判断方法是否收敛,收敛时得到满足精 ...
- matlab lu解线性方程,MATLAB报告用LU分解法求解线性方程组.doc
MATLAB报告用LU分解法求解线性方程组 <MATLAB>期末大报告 报告内容:用LU分解法求解线性方程组 学院(系): 专 业: 班 级: 学 号: 学生姓名: 2014 年 6 月 ...
- 数值分析3-解线性方程组的高斯消去法、LU分解法及列主元消去法的matlab程序和调试方法
对于形如Ax=b的线性方程组,在线性代数中是通过求逆的方式求解的,即x=A-1b,而在数值分析中,解线性方程组的方法是通过直接法或者迭代法来实现的,今天写的三个程序都属于直接法,分别为高斯消去法.LU ...
- 计算方法:列主元消去法,LU分解法, 雅可比迭代法,高斯塞德尔迭代法 解线性方程(C++)
Matrix.h包括矩阵类Matrix的定义,Matrix.cpp包括该类成员函数的实现,LinearEqu.h包括线性方程类LinearEqu的定义,继承自Matrix类,其中solve()方法为列 ...
- Matlab | Lab4——用LU 分解法、 Jacobi 迭代、 Gauss-Seidel 迭代 解线性病态方程组(系数矩阵为Hilbert矩阵)
1.要求 考虑线性方程组Hx=b,其中H为n阶Hilbert矩阵,即 通过先给定解(例如取x的各个分量为1),再计算出右端向量b的办法给出一个精确解已知的问题. (1)分别编写Doolittle LU ...
- matlab 电力系统分析 毕设,基于MATLAB的P-Q分解法电力系统潮流计算毕业设计
基于MATLAB的P-Q分解法电力系统潮流计算毕业设计 摘 要 电力系统潮流计算是研究电力系统稳定运行情况的一种重要的计算,在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用它来定量地分析比 ...
- 程序阅读_全面详解LTE:MATLAB建模仿真与实现_自学笔记(1)调制与编码_程序阅读
程序阅读_全面详解LTE:MATLAB建模仿真与实现_自学笔记(1)调制与编码_程序阅读 在粗浅地掌握了LTE知识后,从今天开始对<全面详解LTE:MATLAB建模仿真与实现>一书的学习. ...
- Doolittle分解法(LU分解法)的Python实现
在解一般的非奇异矩阵线性方程组的时候,或者在迭代改善算法中,需要使用LU分解法. 对于一个一般的非奇异矩阵A=(a11, a12,-,a1n,a21,-ann),可分解为一个下三角矩阵L和一个上三角矩 ...
最新文章
- linux longlong大小,Linux基本数据类型大小——int,char,long int,long long int
- 什么叫组网_5G中,啥是独立组网(SA)与非独立组网(NSA)
- eclipse搭建安卓开发环境
- MES管理端介绍,ebr二次开发产品—SIMATIC IT EBR(Opcenter Execution Pharma)
- 戴尔台式计算机没声音,戴尔电脑重装系统后没有声音怎么办
- 任泽平:中国收入分配报告2021最新白皮书
- C#图形窗口的几种边框样式,固定大小,及可调节大小等样式
- 梆梆加固的Android P版本预兼容之路
- 我的世界梦之边缘5服务器在维护吗,我的世界梦之边缘V 第一个包含动漫CG剧情的RPG服务器...
- 【显著目标检测论文】Pyramid Feature Attention Network for Saliency detection
- 关于android 手机硬件加速问题
- 题目:我立志成为一名好销售,万万没想到,我还是走了程序员的路,原因竟然是....
- c语言写层次分析法,基于C语言的层次分析法在医院工作质量评价中的设计与实现...
- 聚合图床_sojson_v6
- JS setInterval(延时器)设置停止重启操作
- 阿里巴巴常考面试题目
- C++语言基础:计算圆的周长与面积
- dcs系统服务器配置,DCS系统中动态数据服务器设置方法
- [SVN技巧]代码提交中遇到的两个问题及其解决方案
- ANALYZE 的用法