MATLAB_数值计算_用平方根法解线性方程组—(Cholesky分解)

article/2025/10/8 21:41:45
  • 利用对称正定矩阵的乔累斯基分解求解对称正定方程组的方法称为平方根法
  • 对称正定矩阵A的对角元为正
  • 实对称矩阵A正定的充要条件是A的所有特征值为正
  • 对称正定矩阵非奇异,其逆亦为对称正定矩阵
  • 实对称矩阵A正定的充要条件是A的所有顺序主子式为正
  • 正定矩阵的顺序主子阵是正定的
  • Cholesky分解较一般的LU分解乘除法计算量小得多。它所需要的乘除次数约为(n^3)/6数量级,差不多比LU分解节省一半的工作量,但要进行n次开方运算
  • (比高斯法更稳定,不需要选主元)
%% 0.平方根法解线性方程组,输出L矩阵和根
%% 1.对称正定矩阵的Cholesky分解
%对称正定矩阵A存在唯一的对角元素均为正数的下三角矩阵L,使得A=L*L(转置)
%这种分解叫做Cholesky分解
A=[3,3,5;3,5,9;5,9,17];
b=[0;-2;-4];
%判断矩阵A是否对称正定,对称+所有顺序主子式为正
L=zeros(3);
%求下三角矩阵L
L(1,1)=sqrt(A(1,1));%L11
L(2,1)=A(2,1)/L(1,1);%L21
L(3,1)=A(3,1)/L(1,1);%L31
L(2,2)=sqrt(A(2,2)-L(2,1)*L(2,1));%L22
L(3,2)=(A(3,2)-L(3,1)*L(2,1))/L(2,2);%L32
L(3,3)=sqrt(A(3,3)-L(3,1)*L(3,1)-L(3,2)*L(3,2));%L33
L%输出L矩阵
%% 2.由Ly=b得到y
y=L\b;
%% 3.由L_转置*x=y得到方程组的解x
x=L'\y%输出线性方程组的根

运行结果:
在这里插入图片描述
其中y矩阵:
在这里插入图片描述
利用MATLAB内置函数chol

%% 0.平方根法解线性方程组,输出L矩阵和根
%% 1.对称正定矩阵的Cholesky分解
%对称正定矩阵A存在唯一的对角元素均为正数的下三角矩阵L,使得A=L*L'
%这种分解叫做Cholesky分解
A=[3,3,5;3,5,9;5,9,17];
b=[0;-2;-4];
%L=chol(A,'lower')基于矩阵A的对角线和下三角形生成下三角矩阵L,满足方程L*L'=A
L=chol(A,'lower')
%% 2.由Ly=b得到y
y=L\b;
%% 3.由L_转置*x=y得到方程组的解x
x=L'\y%输出线性方程组的根

如果矩阵A不是对称的,则 chol 使用上三角的(复共轭)转置作为下三角。


http://chatgpt.dhexx.cn/article/DKiJd3qg.shtml

相关文章

正定与半正定矩阵,判别的方法不能混用,否则出错

坑:特征值有0可以知道该矩阵不可能正定,那可以用顺序主子式判断是否为半正定吗? 答案:不能 例子:A,特征值为一个0,两个正数>那就是半正定啦呀 但是,主子式二阶小于0那就不正定了呀两种方法…

线性代数【11】二次型

前言: 矩阵表达的是线性关系的方程组,但是,客官世界,是包括稍微复杂的,二次方程。 尤其几何中,有二次曲线,二次型,就是一个多元函数,是多个变量的二次,齐次…

Lyapunov稳定性分析1(正定函数、二次型正定判定)

一、 正定函数 1.1 定义: 令V(x)是向量x的标量函数,S是x空间包含原点的封闭有限区域。如果对于S中的所有x,都有: 则V(x)是正定的(半正定)。正定函数更直观的描述如下图所示: 如果条件(3&a…

牛顿法为什么要保证Hessian矩阵正定

牛顿法为什么要保证Hessian矩阵正定: 实际中,需要求出Hessian的逆矩阵,只有正定矩阵,才可以求出逆矩阵。 正定矩阵:特征值全大于0;各阶主子式全大于0.

正定矩阵的相关知识

一、正定矩阵的定义:若矩阵A是n阶方阵,并且它的二次型大于0,即 则矩阵A是正定矩阵。 二、正定矩阵的性质: 1.正定矩阵的所有特征值都为正数。 2.正定矩阵行列式为正数 3.两个正定矩阵的和为正定矩阵(两个正定矩阵的乘…

顺序主子式的英文翻译(定义)

顺序主子式的英文翻译(定义) 为了查明顺序主子式的英文翻译,我在国内知网翻译助手、金山词霸等诸多翻译系统查了一下,给出的答案不外乎以下几个答案。 (知网翻译助手的答案) 我喜欢刨根问底,很明…

030 正定二次型及判别法之定义法、特征值法、顺序主子式法

030 正定二次型及判别法之定义法、特征值法、顺序主子式法

matlab-线性代数 det 各阶主子式、余子式、代数余子式

2019独角兽企业重金招聘Python工程师标准>>> matlab : R2018a 64bit     OS : Windows 10 x64typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu 各阶主子式 code clear clca=[1 2 3;4 5 6;6 7 8…

主子式、顺序主子式、余子式、代数余子式

K阶子式 [ 1 ] ^{[1]} [1] (Minor) 以3阶行列式为例: ∣ a 1 a 2 a 3 b 1 b 2 b 3 c 1 c 2 c 3 ∣ \left| \begin{array} {ccc} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3\\ c_1 & c_2 & c_3 \end{array} \right| ∣∣∣∣∣∣​a1​b1​c1​​…

简单推导:关于矩阵主子式的几点性质

1.名词介绍: 特征多项式:在数域P上的某个方阵A,则行列式即为其特征多项式,简记为; 逆序数:1,2,...n的某个排序相对自然序列相反的个数;记为: 主子式:某个行列式的部分列和部分行:行号和列号一…

Zlib库的安装与使用

在实际应用中经常会遇到要压缩数据的问题,常见的压缩格式有zip和rar,而Linux下那就更多了,bz2,gz,xz什么的都有,单单Linux下的解压和压缩命令就有好多呢?没有什么好不好的。查了资料,应该是zlib这个比较简单好用。应用也广&#x…

zlib安装和使用 linux

zlib的安装与使用 zlib是一个很好的压缩解压缩库,今天我们分别介绍如何在Linux与Windows上安装与使用: 一:Linux平台 首先看看自己的机器上是不是已经安装好zlib了: whereis zlib 如果安装好了,会输出zlib的路径&…

zlib开发笔记(一):zlib库介绍、编译和工程模板

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/111877005 长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808 红胖子(红模仿)的博文大全&#x…

zlib包的下载

zlib包下载地址:http://www.zlib.net/ 这里注意很多帖子都是直接给了具体的连接,比如: wget http://www.zlib.net/zlib-1.2.8.tar.gz 然后... 所以,这里不宜生搬硬套,直接去官网上看,源码地址 ... 然后&am…

安装最新版本zlib

官方网址:http://www.zlib.net/ 进入官网看到,如图所示,最新版本为zlib 1.2.11 然后你用wget http://www.zlib.net/zlib 1.2.11或者wget http://www.zlib.net/zlib-1.2.11下载,那你永远下载不了. 嘿嘿,正确的下载方式是wget http://www.zlib.net/zlib-1.2.11.tar.gz 进入…

C++封装zlib库

C封装zlib库 1、zlib简介2、如何下载zlib库源代码3、如何安装zlib库4、zlib代码封装步骤4.1、编写初始化函数4.2、编写压缩、解压函数4.3、编写刷新数据函数 5、结论并附上源代码 1、zlib简介 zlib是提供数据压缩用的函式库,最早是由Jean-loup Gailly与Mark Adler所…

使用zlib库解压文件

下载zlib库源码:http://www.zlib.net/ 编译lib库 选择对应的Visual Studio工程目录打开zlibvc.sln文件,工程设置为Release模式,选中zlibstat项,将预处理器中的ASMINF宏删除(重要否则会产生 L_get_length_code_mmx 的崩…

zlib的使用

测试项目目录结构如图 其中zlib源文件放置在libz目录下。 将ZLib源文件编译成静态库 1.在libz-cmake目录下的CMakeLists.txt中编写如下命令,生成静态库。 cmake_minimum_required (VERSION 3.3)project (z)file (GLOB_RECURSE SOURCES ${CMAKE_SOURCE_DIR}/libz/…

【zlib】linux安装zlib

一、zlib zlib适用于数据压缩的函式库,由Jean-oup Gailly(负责compression)和 MarkAdler(负责decompression)开发。 zlib被设计成一个免费的、通用的、法律上不受阻碍(即没有被任何专利覆盖)的无损数据压缩库。zib几乎适用于任何计算器硬件和操作系统。…

linux下Zlib的安装与使用

1. zlib简介 zlib 适用于数据压缩的函式库,由Jean-loup Gailly (负责compression)和 Mark Adler (负责decompression)开发。    zlib被设计成一个免费的、通用的、法律上不受阻碍(即没有被任何专利覆盖) 的无损数据压缩库。zlib几乎适用于任何计算器硬件和操作系统。…