精华内容
下载资源
问答
  • 平方根法(Cholesky分解法)解线性方程组 包括程序代码和结果分析 平方根法需要将矩阵做Cholesky分解,化为两个三角方程组求解。 % 平方根法(Cholesky分解法)解线性方程组Ax=b % A为方程组系数矩阵, b是方程组右端向量...
  • 矩阵分解的常用方法如:LU分解法,Cholesky分解法平方根法,追赶法解方程组.
  • 【矩阵论笔记】平方根分解

    千次阅读 2020-05-22 11:38:00
    定义 例子 首先判断顺序主子式。 R矩阵每一行除以对角元 平方根分解推导 因为A的分解是唯一的,可以得到L=RTL=R^{T}L=RT 例题 待定系数

    定义

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述


    在这里插入图片描述

    例子

    首先判断顺序主子式。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    R矩阵每一行除以对角元
    在这里插入图片描述

    平方根分解推导

    因为A的分解是唯一的,可以得到 L = R T L=R^{T} L=RT
    在这里插入图片描述

    例题

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    待定系数法

    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 乔列斯基分解
    • 满足各阶顺序主子式非零的非奇异矩阵 A A A 存在唯一的LU分解,如果矩阵 A A A 的结构再特殊一点,线性方程组 A x = b Ax=b Ax=b 的求解算法是否还可以得到优化呢。
    • 考虑对称矩阵以及对称正定矩阵,这两者在实际科学计算中出现频率是较高的。

    对称阵.

    • A A A n n n 阶对称阵,并且满足各阶顺序主子式非零,那么 A A A 可以唯一分解为 A = L D L T A=LDL^T A=LDLT其中 D D D 是对角阵, L L L 是单位下三角阵。
    • 简证】首先 A A A 可以进行LU分解,即 A = L U A=LU A=LU,由于 D k = ∏ i = 1 k u i i ≠ 0 D_k=\prod^k_{i=1}u_{ii}≠0 Dk=i=1kuii=0,因此 u i i ≠ 0 , i = 1 , 2 , . . . , n u_{ii}≠0,i=1,2,...,n uii=0,i=1,2,...,n,所以可以将 U U U 分解为 U = D U ′ U=DU' U=DU D = d i a g { u 11 , u 22 , . . . , u n n } D=diag\{u_{11},u_{22},...,u_{nn}\} D=diag{u11,u22,...,unn}因此 A = L D U ′ A=LDU' A=LDU
    • 由于 A A A 是对称阵,所以 A = A T = ( L D U ′ ) T = U ′ T D T L T = U ′ T D L T = L D U ′ A=A^T=(LDU')^T=U'^TD^TL^T=U'^TDL^T=LDU' A=AT=(LDU)T=UTDTLT=UTDLT=LDU根据LU分解唯一性,必然有 U ′ = L T U'=L^T U=LT,即 A = L D L T A=LDL^T A=LDLT
    • 上述结论的意义在于,对于对称阵的LU分解,矩阵 L , U L,U L,U 中的元素存在对称性,大约仅需要计算 n ( n + 1 ) 2 \frac{n(n+1)}2 2n(n+1) 个,相较于一般情况下 n 2 n^2 n2 个元素减少了一半。

    正定阵.

    正定阵】狭义定义:对于 n n n实对称矩阵 A A A 而言,当且仅当 ∀ z ∈ R n , z ≠ 0 \forall z\in R^n,z≠0 zRn,z=0,都有 z T A z > 0 z^TAz>0 zTAz>0,那么称 A A A 是正定矩阵。正定矩阵的各阶顺序主子式为正,其逆矩阵也是正定矩阵。

    • 定理】对于正定矩阵 A A A 而言,存在唯一分解 A = L L T A=LL^T A=LLT其中 L L L下三角阵,且主对角线元素都为正数。
    • 简证】根据上部分对称阵的LU分解,此处有 A = L 1 D L 1 T A=L_1DL_1^T A=L1DL1T,其中 L 1 L_1 L1 是单位下三角阵,又因为 u i i = D k D k − 1 > 0 u_{ii}=\frac{D_k}{D_{k-1}}>0 uii=Dk1Dk>0,因此令 D ′ = d i a g { u 11 , u 22 , . . . , u n n } D'=diag\{\sqrt{u_{11}},\sqrt{u_{22}},...,\sqrt{u_{nn}}\} D=diag{u11 ,u22 ,...,unn }则有 L 1 D L 1 T = L 1 D ′ D ′ L 1 T = ( L 1 D ′ ) ( L 1 D ′ ) T = L L T L_1DL_1^T=L_1D'D'L_1^T=(L_1D')(L_1D')^T=LL^T L1DL1T=L1DDL1T=(L1D)(L1D)T=LLT
    • 上述分解称为正定矩阵的乔列斯基分解,矩阵形式表示如下: A = [ l 11 0 ⋯ 0 l 21 l 22 ⋯ 0 ⋮ ⋮ ⋱ ⋮ l n 1 l 2 n ⋯ l n n ] ⋅ [ l 11 l 21 ⋯ l n 1 0 l 22 ⋯ l n 2 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ l n n ] A=\left[ \begin{matrix} l_{11} & 0 & \cdots & 0 \\ l_{21}& l_{22} & \cdots & 0 \\ \vdots& \vdots& \ddots & \vdots\\ l_{n1} & l_{2n} & \cdots&l_{nn}\end{matrix} \right]· \left[ \begin{matrix} l_{11} & l_{21} & \cdots & l_{n1}\\ 0& l_{22} & \cdots & l_{n2}\\ \vdots& \vdots& \ddots & \vdots\\ 0 & 0 & \cdots&l_{nn}\end{matrix} \right] A=l11l21ln10l22l2n00lnnl1100l21l220ln1ln2lnn
    • 考察矩阵 A A A 的原始元素 [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n ⋮ ⋮ ⋱ ⋮ a n 1 a n 2 ⋯ a n n ] \left[ \begin{matrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21}& a_{22} & \cdots & a_{2n} \\ \vdots& \vdots& \ddots & \vdots\\a_{n1} & a_{n2} & \cdots&a_{nn} \end{matrix} \right] a11a21an1a12a22an2a1na2nann可以发现 a i j = l j j l i j + ∑ k = 1 j − 1 l i k l j k a_{ij}=l_{jj}l_{ij}+\sum^{j-1}_{k=1}l_{ik}l_{jk} aij=ljjlij+k=1j1likljk
    • 于是得到Cholesky分解公式: l j j = a j j − ∑ k = 1 j − 1 l j k 2   ,   j = 1 , 2 , . . . , n l_{jj}=\sqrt{a_{jj}-\sum^{j-1}_{k=1}l_{jk}^2}~,~j=1,2,...,n ljj=ajjk=1j1ljk2  , j=1,2,...,n l i j = a i j − ∑ k = 1 j − 1 l i k l j k l j j   ,   i = j + 1 , j + 2 , . . . , n l_{ij}=\frac{a_{ij}-\sum^{j-1}_{k=1}l_{ik}l_{jk}}{l_{jj}}~,~i=j+1,j+2,...,n lij=ljjaijk=1j1likljk , i=j+1,j+2,...,n

    平方根法.

    • 根据上面得出的Cholesky分解参数 l i j l_{ij} lij,可以解出正定线性方程组 A x = b Ax=b Ax=b 的解为 y i = b i − ∑ k = 1 i − 1 l i k y k l i i   ,   i = 1 , 2 , . . . , n y_i=\frac{b_i-\sum^{i-1}_{k=1}l_{ik}y_k}{l_{ii}}~,~i=1,2,...,n yi=liibik=1i1likyk , i=1,2,...,n x i = y i − ∑ k = i + 1 n l k i x k l i i   ,   i = n , n − 1 , . . . , 1 x_i=\frac{y_i-\sum^{n}_{k=i+1}l_{ki}x_k}{l_{ii}}~,~i=n,n-1,...,1 xi=liiyik=i+1nlkixk , i=n,n1,...,1

    • 上述方法得名于Cholesky分解过程中计算 l i i l_{ii} lii 的时候需要进行开方运算,如果为了避免开方运算,也可以不对矩阵 D D D 做分解,而是将其乘入 L L L 中,得到如下表达形式 A = ( L D ) L T = [ d 1 0 ⋯ 0 d 1 ⋅ l 21 d 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ d 1 ⋅ l n 1 d 2 ⋅ l 2 n ⋯ d n ] ⋅ [ 1 l 21 ⋯ l n 1 0 1 ⋯ l n 2 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ 1 ] A=(LD)L^T=\left[ \begin{matrix} d_{1} & 0 & \cdots & 0 \\ d_1·l_{21}& d_{2} & \cdots & 0 \\ \vdots& \vdots& \ddots & \vdots\\ d_1·l_{n1} & d_2·l_{2n} & \cdots&d_{n}\end{matrix} \right]· \left[ \begin{matrix} 1 & l_{21} & \cdots & l_{n1}\\ 0& 1 & \cdots & l_{n2}\\ \vdots& \vdots& \ddots & \vdots\\ 0 & 0 & \cdots& 1\end{matrix} \right] A=(LD)LT=d1d1l21d1ln10d2d2l2n00dn100l2110ln1ln21
    • 在这种表示形式下: a i j = d j ⋅ l i j + ∑ k = 0 j − 1 d k ⋅ l i k ⋅ l j k a_{ij}=d_j·l_{ij}+\sum^{j-1}_{k=0}d_k·l_{ik}·l_{jk} aij=djlij+k=0j1dklikljk l j j = 1 l_{jj}=1 ljj=1
    • 由此可以得到 d j = a j j − d k ⋅ ∑ k = 0 j − 1 l j k 2   ,   j = 1 , 2 , . . . , n d_j=a_{jj}-d_k·\sum^{j-1}_{k=0}l_{jk}^2~,~j=1,2,...,n dj=ajjdkk=0j1ljk2 , j=1,2,...,n l i j = a i j − ∑ k = 0 j − 1 d k ⋅ l i k ⋅ l j k d j m   ,   i = j + 1 , j + 2 , . . . , n l_{ij}=\frac{a_{ij}-\sum^{j-1}_{k=0}d_k·l_{ik}·l_{jk}}{d_j}m~,~i=j+1,j+2,...,n lij=djaijk=0j1dklikljkm , i=j+1,j+2,...,n
    • 于是线性方程组 A x = b Ax=b Ax=b 转化为求解 L y = b , D L T = y Ly=b,DL^T=y Ly=b,DLT=y,方程的解为 { y 1 = b 1 y i = b i − ∑ k = 1 i − 1 l i k y k   ,   i = 2 , 3 , . . . , n \left\{ \begin{aligned} &y_1=b_1\\ &y_i=b_i-\sum^{i-1}_{k=1}l_{ik}y_k~,~i=2,3,...,n\\ \end{aligned} \right. y1=b1yi=bik=1i1likyk , i=2,3,...,n { x n = y n d n x i = y i d i − ∑ k = i + 1 n l k i x k   ,   i = n − 1 , n − 2 , . . . , 1 \left\{ \begin{aligned} &x_n=\frac{y_n}{d_n}\\ &x_i=\frac{y_i}{d_i}-\sum^{n}_{k=i+1}l_{ki}x_k~,~i=n-1,n-2,...,1\\ \end{aligned} \right. xn=dnynxi=diyik=i+1nlkixk , i=n1,n2,...,1
    • 这种方法被称为改进的平方根法,避免了开方运算。
    展开全文
  • 利用对称正定矩阵的乔累斯基分解求解对称正定方程组的方法称为平方根法 对称正定矩阵A的对角元为正 实对称矩阵A正定的充要条件是A的所有特征值为正 对称正定矩阵非奇异,其逆亦为对称正定矩阵 实对称矩阵A正定的充要...
    • 利用对称正定矩阵的乔累斯基分解求解对称正定方程组的方法称为平方根法
    • 对称正定矩阵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 使用上三角的(复共轭)转置作为下三角。

    展开全文
  • matlab平方根法代码

    2011-11-21 21:04:36
    matlab的平方根算法代码简单实用正确的~
  • 平方根法的matlab实现

    2018-01-19 14:14:39
    对正定系数矩阵的特殊求解方程方法。最终结果为矩阵L,并由它以及它的转置矩阵可以求解方程
  • 一:概述 本篇文章介绍解线性方程组的平方根法及改进平方根法,适用范围为系数矩阵为正定Hermite矩阵(下称H阵)的...平方根法中的分解方法: 改进平方根中的分解方法: 然后再大致解释一下 首先是平方根法:根据矩阵

    一:概述

    本篇文章介绍解线性方程组的平方根法及改进平方根法,适用范围为系数矩阵为正定Hermite矩阵(下称H阵)的线性方程组。这个方法的理论依据我觉得是来自Schur引理的H阵结构定理,从这个角度我们就可以理解课程上教授的那些摸不着头脑的机械的计算步骤背后的原理。

    二:具体步骤

    按照惯例,我们先举两个例子介绍一下两种方法是如何进行计算的,方便那些只想知道怎么算的同学。其实这个玩意和LU分解的计算方法完全一样

    平方根法中的分解方法:
    在这里插入图片描述

    改进平方根中的分解方法:
    这张图片第一次编辑好之后鬼使神差地点了差号,气到吐血,第二遍就没了那么多耐心。

    然后再大致解释一下

    首先是平方根法:根据矩阵分析的理论,对于任意的正定H阵A, [公式] 存在唯一的正线下三角矩阵L,使得 [公式] ,把系数矩阵分解为三角矩阵后,我们就可以使用上次文章中的回代公式求解。

    (1)分解系数矩阵得到正线下三角矩阵L

    在这里插入图片描述
    在这里插入图片描述
    (2)使用回代公式得到X

    已知[公式]使用两次回代公式,先求出y,再求出X即可。
    在这里插入图片描述

    然后是改进的平方根法:在平方根法中,对角元素的计算涉及开方,如何避免?我们可以对L做列变化,对 [公式] 做行变化,分别提出对角元素组成对角矩阵,再把两个对角阵相乘,即可避免开方运算。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    直接从A矩阵得到以上两个三角矩阵的公式如下:
    在这里插入图片描述
    然后还是再使用两次回代公式,就可以得到方程组的解。

    三:原理分析

    为什么这么算呢?仔细一想,其实和上一篇的原理完全一样,当系数矩阵是正定H阵时,U矩阵就自然与L矩阵共轭转置。

    四:算法实现(MATLAB)

    改进的平方根法就不用再列出了,因为和上一篇的完全一样。

    function [x]=pingfanggenfa(A,b)
    %平方根法
    n=length(A);
    for k=1:n
        A(k,k)=sqrt(A(k,k));
        A(k+1:n,k)=A(k+1:n,k)/A(k,k);
        for j=k+1:n
            A(j:n,j)=A(j:n,j)-A(j:n,j)*A(j,k);
        end
    end
    for j=1:n-1
        b(j)=b(j)/A(j,j);
        b(j+1:n)=b(j+1:n)-b(j)*A(j+1:n,j);
    end 
    for j=n:-1:2
        b(j)=b(j)/A(j,j);
        b(1:j-1)=b(1:j-1)-b(j)*A(1:j-1,j);
    end 
    x=b
    

    五:总结

    这一篇说的两种方法,都要求系数矩阵是对称正定阵。这两种方法都可以看成是上一篇lu分解的特例,但是不同的是,可以利用矩阵的对称性试编程起来更方便,虽然这么做会损害程序的泛用性。

    展开全文
  • 矩阵的三角分解! 文章目录一、三角分解1.1、内容回顾 一、三角分解 LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积)...
  • 平方根法Python代码

    2018-07-08 19:08:17
    所谓平方根法,就是利用对称正定矩阵的三角分解得到的求解对称正定方程组的一种有效方法。python编写的改进的平方根法代码
  • 这里主要有列主元消元法,LU分解法,改进的平方根法,追赶法和雅可比迭代,高斯—塞德尔迭代 的构造过程及相应的程序。线性方程的解法在数值计算中占有极重要的地位,因此,线性方程组的求解是数值分析课程中最基本的...
  • 数值分析--第二章--平方根法

    千次阅读 2020-03-26 00:19:28
    平方根法(Cholesky分解) 引入:对称正定矩阵 矩阵各元素的各元素沿主对角线对称 矩阵的所有特征值均大于零 平方根法的使用条件 AAA为对称正定矩阵,且Ukk>0U_{kk}>0Ukk​>0。 平方根法的步骤 A=UUTA...
  • 平方根法求解正定矩阵的线性方程组的Python实现 定理:对线性方程组Ax=b,若A唯正定矩阵,则有唯一分解A=LU,且U的对角线元素大于0,而U可以进一步分解为一个对角矩阵D与一个上三角矩阵的乘积,设为U=DM,进而A=LDM...
  • 转自改进的平方根法 做了一些注释和修改了函数 function [L,D,x,y]=improvedSqareRoot(A,b) n=length(A(:,1)); %求A矩阵第一列的长度,即矩阵维数 %% 判断输入的矩阵是不是符合要求 for k=1:n if (det(A(1:k,1:k)))...
  • 7.4.3 矩阵极分解和平方根分解 当矩阵 AAA 是方阵时 A=UΣVT=UVTVΣVT=(UVT)(VΣVT)=QSQ=UVT是正交矩阵,S=VΣVT是对称半正定矩阵,即对任意向量x,有xTSx≥0成立,因为对角阵Σ对角元素非负.又A=UΣVT=UΣUTUVT=(U...
  • 数值分析 2.2 平方根法

    千次阅读 2015-04-05 15:05:27
    ///对于系数矩阵是正定矩阵的方程组可以用平方根法 #include #include #include using namespace std; const int MAXN = 1000; double a[MAXN][MAXN]; double b[MAXN]; double x[MAXN]; double y[MAXN]; int main...
  • 4种解法 - 计算平方根

    千次阅读 2020-01-16 19:08:21
    使用4种逼近解法,计算一个整数的平方根...
  • 平方根法就是利用对称正定的三角分解求解对称正定方程组的一种有效方法。 前提:系数矩阵A为对称矩阵,且A的所有顺序主子式均不为0。算法1:将系数矩阵A分解为L和L的转置。则求解Ax=b的过程,就变为求解Ly=b,(L...
  • 包含三个文件,即doolittle分解、改善的平方根法分解、追赶法分解,可以在matlab中直接调用
  • %定理2.2.3:对阵正定矩阵的楚列斯基(Cholesky)分解 %设A为n阶对阵正定矩阵,则存在一个可逆的下三角矩阵G,使得 %A=GG’,当限定G的对角元为正时,这种分解是唯一的 %--------A=GG’的分解算法------- %参考...
  • 平方根法解方程组

    2018-03-19 09:35:40
    平方根法是数值分析课程里的一个重要内容,也是一个比较方便的算法。
  • 数值分析老师留的程序作业 用平方根法求解方程组 代码简单 很好的实现了平方根法 求解难题
  • 改进的平方根法

    千次阅读 2017-11-28 20:31:20
    %分解A,使A=L*D*L' for  i=1:n  L(i,i)=1; end for  k=1:n  t1=0;   for  j=1:k-1  t1=t1+L(k,j)^2*d(j);   end  d(k)=A(k,k)-t1;   for  i=k+1:n  t2=0;   for ...
  • 改进平方根法解矩阵

    千次阅读 2019-04-05 19:35:41
    改进平方根法求解矩阵
  • 解线性方程组的LDLT分解法 通过本实验加深对LDLT分解法的构造过程的理解; 2.能对上述LDLT分解法提出正确的算法描述编程实现。
  • 基于高斯消去和A的LU分解之间的密切关系,讨论用高 斯消去的约化过程对正定矩阵A实现唯一的cholesky分解,具体给出一个构造性的直接计算分解的证明过程,以及将分解运用到求证正定矩阵某个特征的证明方法.
  • 数值分析C++源码-二分法,迭代法,牛顿法,高斯消元法,高斯先列主元消元法,高斯全主元消元法,标度化列住院消元法,直接三角分解法,道立特分解法,改进的平方根法,平方根法,雅克比法,高斯赛德尔迭代法,牛顿插值法,拉格朗日...
  • Cholesky分解法

    2020-07-30 23:59:48
    Cholesky分解法又叫平方根法,是求解对称正定线性方程组最常用的方法之一。对于一般矩阵,为了消除LU分 解的局限性和误差的过分积累,采用了选主元的方法,但对于对称正定矩阵而言,选主元是不必要的。 代码: #...
  • 每个代码都可以运行哦 运行环境我的是VC6.0
  • 平方根法

    千次阅读 2017-11-28 20:11:21
    //分解公式第二步 } s=0; for(s=0,k=1;k;k++) s+=l[i][k]*l[i][k]; l[i][i]=sqrt(a[i][i]-s);//分解公式第一步 } for(i=1;i;i++) { for(j=1;j;j++) printf("%lf ",l[i][j]); printf("\n"); } for(i=1;i...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,646
精华内容 2,258
关键字:

平方根分解法