Cholesky分解法 | matlab

本文介绍了一种使用Cholesky分解法求解线性方程组的方法,通过矩阵分解和前代法计算未知数。文章详细展示了如何利用Cholesky分解将正定矩阵分解为下三角矩阵及其转置,并通过具体实例演示了求解过程。
function [X]=Mchol(A,b) 
%Cholesky分解法
[N, N] = size(A); 
X = zeros(N, 1); 
Y = zeros(N, 1); 
for i = 1:N 
    A(i, i) = sqrt(A(i, i)-A(i, 1:i-1) * A(i, 1:i-1)'); 
    if A(i, i) == 0 
        fprintf('矩阵是奇异的')
        break 
    end 
    for j = i+1:N
        A(j, i) = (A(j, i) - A(j, 1:i-1) * A(i, 1:i-1)') / A(i, i); 
    end 
end 
A 
b 
%前代法
for j = 1:N 
    Y(j) = (b(j) - A(j, 1:j-1) * Y(1:j-1)) / A(j, j); 
end 
Y 
% 
A=A' 
for k = N:-1:1 
    X(k) = (Y(k) - A(k, k+1:N) * X(k+1:N)) / A(k, k); 
end 
A = [4, 2, 4; 2, 10, -1; 4, -1, 6]
b = [4; 17; 0]
m_chol(A, b)

%=> x = [-1, 2, 1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值