线性代数 · 矩阵 · Matlab | Cholesky 分解代码实现
(搬运外网的代码,非原创;原网址 )
(其实是专业课作业,但感觉国内博客没有合适的代码实现,所以就搬运到自己博客了)
背景 - Cholesky 分解:
- 若 A 为 n 阶实对称正定矩阵,则存在非奇异下三角矩阵 L,使得 A = LL^T。
- 是特殊的 LU 分解(下三角 上三角分解)。
- 若限定 L 的对角元素为正,则这种分解是唯一的。
- 计算 L 的方法:待定系数,硬算(貌似是这样的)。
Cholesky 分解法的 matlab 函数代码:
% Cholesky 分解法
function [retval] = cholesky_decompose(A)
n = length(A);
L = zeros(n,n);
for i=1:n
L(i,i) = sqrt(A(i,i)-L(i,:)*L(i,:)');
for j=(i+1):n
L(j,i) = (A(j,i)-L(i,:)*L(j,:)')/L(i,i);
end
end
retval = L';
end
matlab 脚本代码:
X = rand(3,3)
A = X*X'
L1 = cholesky_decompose(A)
L2 = chol(A)
运行结果:
octave:5> source("my_script.m")
X =
0.010982 0.924195 0.472230
0.749800 0.704545 0.495176
0.480342 0.828100 0.611450
A =
1.0773 0.8932 1.0593
0.8932 1.3038 1.2464
1.0593 1.2464 1.2903
L1 =
1.0379 0.8606 1.0207
0 0.7505 0.4904
0 0 0.0902
L2 =
1.0379 0.8606 1.0207
0 0.7505 0.4904
0 0 0.0902
与 matlab 的 chol 函数结果一致。
线性代数 · 矩阵 · Matlab | Cholesky 分解代码实现的更多相关文章
- Cholesky分解(Cholesky decomposition / Cholesky )
Cholesky decomposition In linear algebra, the Cholesky decomposition or Cholesky is a decomposition ...
- 线性代数笔记10——矩阵的LU分解
在线性代数中, LU分解(LU Decomposition)是矩阵分解的一种,可以将一个矩阵分解为一个单位下三角矩阵和一个上三角矩阵的乘积(有时是它们和一个置换矩阵的乘积).LU分解主要应用在数值分析 ...
- 矩阵分解----Cholesky分解
矩阵分解是将矩阵拆解成多个矩阵的乘积,常见的分解方法有 三角分解法.QR分解法.奇异值分解法.三角分解法是将原方阵分解成一个上三角矩阵和一个下三角矩阵,这种分解方法叫做LU分解法.进一步,如果待分解的 ...
- MATLAB矩阵的LU分解及在解线性方程组中的应用
作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 三.实验程序 五.解答(按如下顺序提交电子版) 1.(程序) (1)LU分解源程序: function [ ...
- cholesky分解
接着LU分解继续往下,就会发展出很多相关但是并不完全一样的矩阵分解,最后对于对称正定矩阵,我们则可以给出非常有用的cholesky分解.这些分解的来源就在于矩阵本身存在的特殊的 结构.对于矩阵 ...
- Cholesky分解 平方根法
一种矩阵运算方法,又叫Cholesky分解.所谓平方根法,就是利用对称正定矩阵的三角分解得到的求解对称正定方程组的一种有效方法.它是把一个对称正定的矩阵表示成一个下三角矩阵L和其转置的乘积的分解.它要 ...
- 球体的双目视觉定位(matlab,附代码)
球体的双目视觉定位(matlab,附代码) 标签(空格分隔): 机器视觉 引言 双目视觉定位是我们的一个课程设计,最近刚做完,拿出来与大家分享一下,实验的目的是在拍摄的照片中识别球体,并求出该球体到相 ...
- 【线性代数】6-7:SVD分解(Singular Value Decomposition-SVD)
title: [线性代数]6-7:SVD分解(Singular Value Decomposition-SVD) categories: Mathematic Linear Algebra keywo ...
- 矩阵的SVD分解
转自 http://blog.csdn.net/zhongkejingwang/article/details/43053513(实在受不了CSDN的广告) 在网上看到有很多文章介绍SVD的,讲的也都 ...
- k-means算法MATLAB和opencv代码
上一篇博客写了k-means聚类算法和改进的k-means算法.这篇博客就贴出相应的MATLAB和C++代码. 下面是MATLAB代码,实现用k-means进行切割: %%%%%%%%%%%%%%%% ...
随机推荐
- 如何将Swagger接口导入ApiFox
先按照如下图操作 在apifox创建一个新项目,点击项目 点击导入数据(可以选择手动或者自动) 复制刚才的url,然后立即导入,保存
- LR(0)分析法
LR(0)是一种自底向上的语法分析方法.两个基本动作是移进和规约. 具体例子如下 已知文法G[E] (1) E→aА (2) E→bB (3) A→cА (4) A→d (5) B→cB (6) B→ ...
- Javascript Ajax总结——FormData类型
XMLHttpRequest1级只是把已有的XHR对象的实现细节描述出来.XMLHttpRequest2级进一步发展了XHR.FormData类型FormData类型,为序列化表单以及创建以表单格式相 ...
- thymeleaf使用
thymeleaf使用 1.依赖 <parent> <artifactId>spring-boot-starter-parent</artifactId> < ...
- TeeChart 的使用从入门到精通
1.首先nutGet 进行使用 2.如果需要使用管方的Key 进行激活 3.直接上写的Demo代码 1 using System; 2 using System.Collections.Generic ...
- kubernetes之部署nginx+vue前端(一)
kubernetes之部署nginx+vue前端(一) k8s系列项目的部署方式之一使用了kubernetes部署nginx+vue前端. 一.打包前端 将dist与Dockerfile放到同一目录下 ...
- JavaFx css样式(三)
JavaFx css样式(三) JavaFX 从入门入门到入土系列 JavaFx css样式,前面我说过它类似html,他有css控制样式,不过最新的css标准并不支持,同时javafx的css样式都 ...
- 《Span-Based Joint Entity and Relation Extraction with Transformer Pre-Training》阅读笔记
代码 原文地址 预备知识: 1.什么是束搜索算法(beam search)? beam search是一种用于许多自然语言处理和语音识别模型的算法,作为最终决策层,用于在给定目标变量(如最大概 ...
- 新版的Django中的path不能使用正则表达式
新版的path 虽然 取代了 之前的url,但是在写路由的时候不能在路由中直接写正则表达式,不然会找不到页面. 解决方法使用 re_path from django.urls import re_pa ...
- JavaImprove--Lesson04--LocalDateTime,ZoneId,Instant,DateTimeFormatter
一.LocalDateTime LocalDateTime是JDK8的新时间特性,它解决了Date类和Calender类的很多不足,如使用不方便,线程不安全,以及获取时间戳只能拿到毫秒而不能拿到纳秒等 ...