《矩阵分析》代码Ⅲ——Doolittle分解、Crout分解、Cholesky分解求解线性方程组matlab实现

注意:
三种分解方法求解过程都会用到三角矩阵的回代法。小编之前已经写过三角矩阵回代法程序!!关于代码可参考:https://blog.csdn.net/m0_46498899/article/details/109223781

(一)Doolittle分解

1.1 算法思想

n阶线性方程组系数矩阵A可以分解成单位下三角矩阵L和上三角矩阵R,即


1.2 matlab实现

function [L,R,X]=Doolittle(A,B)
%%%输入n*n的方阵A,
%%%通过Doolittle分解;
%%%输出单位下三角矩阵L和上三角矩阵R。
[n,~]=size(A);
L=eye(n);
R=zeros(n);
for k=1:nfor j=k:nR(k,j)=A(k,j)-L(k,1:k-1)*R(1:k-1,j);endfor i=k+1:nL(i,k)=(A(i,k)-L(i,1:k-1)*R(1:k-1,k))/R(k,k);end
end
y=b_Back_subtitution(L,B);   %下三角回代法函数;
X=a_Back_subtitution(R,y);   %上三角回代法函数;

1.3 实例验证

命令行输入:

运行结果:

(二) Crout分解

2.1 算法思想

Doolittle分解是将矩阵A分解为单位下三角矩阵L和上三角矩阵R的乘积;而Crout分解则是将矩阵A分解为下三角矩阵L和单位上三角矩阵的乘积。具体方法与Doolittle分解类似,这里不加赘述,不明白的可以自行百度。下面直接给出matlab代码。

2.2 matlab实现

function [L,R,X]=Crout(A,B)
%%%输入n*n的方阵A,
%%%通过Crout分解;
%%%输出下三角矩阵L和单位上三角矩阵R。
Y=A\B;
[n,~]=size(A);
L=zeros(n);
R=eye(n);
for k=1:nfor i=k:nL(i,k)=A(i,k)-L(i,1:k-1)*R(1:k-1,k);endfor j=k+1:nR(k,j)=(A(k,j)-L(k,1:k-1)*R(1:k-1,j))/L(k,k);endend
y=b_Back_subtitution(L,B);   %%调用下三角回代法;
X=a_Back_subtitution(R,y);   %%调用上三角回代法;

2.3 实例验证

命令行输入:

运行结果:

(三)正定矩阵的平方根(Cholesky)分解

3.1算法思想


3.2 matlab实现

function [L,X]=Cholesky(A,B)
%%%输入n*n的正定矩阵A和常数项列向量B,
%%%通过Cholesky分解;
%%%输出下三角矩阵L,和方程的解X。
[n,~]=size(A);
L=zeros(n);
for j=1:nfor i=j:nif i==jL(j,j)=(A(j,j)-L(j,1:j-1)*(L(j,1:j-1))')^(1/2);elseif i>jL(i,j)=(A(i,j)-L(i,1:j-1)*(L(j,1:j-1))')/L(j,j);endendend
y=b_Back_subtitution(L,B);  %%调用下三角回代法函数;
X=a_Back_subtitution(L',y);  %%调用上三角回代法函数。

3.3 实例验证

命令行输入:

运行结果:

(四)正定矩阵的改进平方根分解

4.1算法思想

4.2 matlab实现

function [L,D0,X]=Cholesky_ed(A,B)
%%%输入n*n的正定矩阵A和常数项列向量B,
%%%通过Cholesky分解;
%%%输出下三角矩阵L,和方程的解X。
%%%{diag(A,k)函数:如果A是列向量,就将列向量放在矩阵的第K条对角线上;...如果A是矩阵,则将矩阵的第K条对角线是的元素提取并按列输出,...K=0表示主对角线}
[n,~]=size(A);
L=eye(n);
S=zeros(n);
for j=1:nS(j,j)=A(j,j)-S(j,1:j-1)*L(j,1:j-1)';for i=j+1:nS(i,j)=A(i,j)-S(i,1:j-1)*L(j,1:j-1)';L(i,j)=S(i,j)/S(j,j);end
end
D0=diag(S);
y=b_Back_subtitution(L,B);
y=y./D0;
X=a_Back_subtitution(L',y);

4.3实例验证

命令行输入:

运行结果:

《矩阵分析》代码Ⅲ——Doolittle分解、Crout分解、Cholesky分解求解线性方程组matlab实现相关推荐

  1. 矩阵分解——三角分解(Cholesky 分解)

    (1)一个对角元素都是1的下三角矩阵,称为单位下三角矩阵. (2)上(下)三角矩阵的乘积仍是上(下)三角矩阵: (3)一般来说,矩阵的三角分解不唯一. (4)实对称正定矩阵 AA,Δk>0\De ...

  2. 三十分钟理解:矩阵Cholesky分解,及其在求解线性方程组、矩阵逆的应用

    写一篇关于Cholesky分解的文章,作为学习笔记,尽量一文看懂矩阵Cholesky分解,以及用Cholesky分解来求解对称正定线性方程组,以及求对称正定矩阵的逆的应用. 文章目录 直接Choles ...

  3. 使用 uBLAS 进行实对称正定矩阵的 Cholesky 分解

    Cholesky 分解理论 矩阵分解--三角分解(Cholesky 分解) 矩阵分解--三角分解(二) 注:只有实对称矩阵才有 Cholesky 分解理论. 已知实对称正定矩阵 AA,其 Choles ...

  4. cholesky分解_Time Series Analysis-1.2 LDL分解

    最近考完两个小quiz,停了一段时间,今晚抽空继续来分享这门课的笔记. 1.前言 上一期分享了Cholesky分解的基本步骤和伪代码,本期介绍另外一种矩阵分解的方法--LDL分解. 首先补充一下,近几 ...

  5. 【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)

    线性方程组迭代解法公式类似非线性方程求根的简单迭代法公式, 有Jacobi迭代法. Seidel迭代法及Sor法等. 题目1-Jacobi迭代法和Seidel迭代法 来源:<数值分析>第5 ...

  6. cholesky分解java代码_Cholesky 分解(转)

    Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解. 它要求矩阵的所有特征值必须大于零,故分解的下三角的对角元也是大于零的. Cholesky分解法又称平方根法,是 ...

  7. 【数值分析】Doolittle分解和Cholesky分解的Python实现

    Doolittle 分解 import numpy as np # A=[[1.0,2.0,-3.0], # [2.0,-1.0,3.0], # [3.0,-2.0,2.0]]# A=[ [2, 4, ...

  8. Cholesky分解—概率密度分布及累计概率分布(完整代码分享)

    目录 概述: 分解条件: 代码: 结果: 概述: Cholesky分解是一种分解矩阵的方法, 在线性代数中有重要的应用.Cholesky分解把矩阵分解为一个下三角矩阵以及它的共轭转置矩阵的乘积(那实数 ...

  9. 4.3 Cholesky分解

      柯列斯基分解cholesky decomposition只能用于实对称正定矩阵,实对称正定矩阵一般用于定义内积.柯列斯基分解是将矩阵分解为如下形式: A=GGTA=GG^T A=GGT   其中G ...

  10. C++实现Cholesky分解

    题目: 编制程序求解矩阵 A 的 Cholesky 分解,并用程序求解方程组 Ax=b,其中 代码实现: #include <iostream> #include <math.h&g ...

最新文章

  1. MySQL查询进阶之多表查询
  2. c语言 字母 八进制表示'/1011',C语言C语言第一课:C语言概述为什么学习C语言怎样学习C语言.DOC...
  3. 基于MATLAB的Okumura-Hata模型的仿真
  4. 基于特征选择的局部敏感哈希位选择算法
  5. yum -y list java* 缓存加载不了_Java开发面试宝典:分布式相关篇
  6. 新建word 无法切换输入法_WORD系列-1认识与保存
  7. 最长回文子串--动态规划
  8. 怎么用python统计字数_Python 统计字数的思路详解
  9. ifconfig命令举例
  10. 区块链以太坊开发测试网汇总
  11. 小程序 房租水电费记录管理_智慧物业管理小程序怎么开发?
  12. 缺少计算机所需的介质程序,win10系统UEFi安装提示“缺少计算机所需的介质驱动程序”的图文方案...
  13. what to benefit from the C++14 Standard
  14. [SAP ABAP开发技术总结]搜索帮助Search Help (F4)
  15. java clh_Java多线程编程CLH锁详解
  16. 中台搞了2年,项目叫停,CIO被裁!本以为中台是道送分题,没想到是送命题!...
  17. CF513D Social Circles
  18. 引流,引流脚本,引流软件,微信引流,引流方法交流
  19. thinkphp5+阿里短信发送验证码
  20. 火山引擎徐鑫:工程师如何与云原生共同成长

热门文章

  1. android设计模式之--观察者模式
  2. 手把手教你运用深度学习构建视频人脸识别模型(Python实现)
  3. getvalue参数计数不匹配_数据人:不懂业务,分析就仅仅只是提数
  4. linux 格式化ntfs u盘,手机u盘数据恢复linux格式化为ntfs格式
  5. java热门编程题_java经典50编程题(1-10)
  6. java boolean 大小_Java 中 boolean 类型占用多少个字节 [MD]
  7. 多线程中redistemplate不执行_在 Flink 算子中使用多线程如何保证不丢数据?
  8. python中数据处理的格式,json.csv txt excel
  9. mysql常用功能点
  10. Python爬虫错误重试,超时处理