平方根法和改进的平方根法解线性方程组(Matlab程序)

原创 2012年03月30日 18:39:52


%定理2.2.3:对阵正定矩阵的楚列斯基(Cholesky)分解
%设A为n阶对阵正定矩阵,则存在一个可逆的下三角矩阵G,使得
%A=GG’,当限定G的对角元为正时,这种分解是唯一的

%--------A=GG’的分解算法-------
%参考教材:《数值分析》李乃成,梅立泉,科学出版社
clear;clc;
A=[9,18,9,-27;
  18,45,0,-45;
  9,0,126,9;
  -27,-45,9,135];
b=[1 2 16 8]';
n=length(b);%方程个数n
G=zeros(n,n);
G(1,1)=sqrt(A(1,1));
G(2:n,1)=A(2:n,1)/G(1,1);
for j=2:n-1
    G(j,j)=sqrt(A(j,j)-sum(G(j,1:j-1).^2));
    for i=j+1:n
        G(i,j)=(A(i,j)-sum(G(i,1:j-1).*G(j,1:j-1)))/G(j,j);
    end
end
G(n,n)=sqrt(A(n,n)-sum((G(n,1:n-1)).^2));
G
%--------用A=GG’分解求解方程组Ax=b(平方根法)----
%Gy=b,G'x=y;
x=zeros(n,1);%未知向量
y=zeros(n,1);%中间向量
y(1)=b(1)/G(1,1);
for i=2:n
    y(i)=(b(i)-sum(G(i,1:i-1)'.*y(1:i-1)))/G(i,i);
end
y
%---------由G'x=y求出x----------
%方法类似于U由x=y解出x
G=G';
x(n)=y(n)/G(n,n);
for i=n-1:-1:1
    x(i)=(y(i)-sum(G(i,i+1:n)'.*x(i+1)))/G(i,i);
end
x

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

平方根法求解线性方程组(C++实现)

背景:应用有限元法求解结构力学问题时,最后归结为求解线性方程组,该系数矩阵大多具有对称正定性质。平方根法就是利用对称正定的三角分解求解对称正定方程组的一种有效方法。 前提:系数矩阵A为对称矩阵,且A...

改进平方根法matlab

  • 2010-11-24 18:53
  • 456B
  • 下载

Guass列主元、平方根法、追赶法求解方程组的C++实现

一,要解决的问题选用合适的算法,求解三种线性方程组:一般线性方程组,对称正定方程组,三对角线性方程组。 方程略。二,数值方法1,使用Guass列主元消去法求解一般线性方程组。Guass列主元是为了防...

数值分析 2.2 平方根法

///对于系数矩阵是正定矩阵的方程组可以用平方根法 #include #include #include using namespace std; const int MAXN = 1000; ...

数值分析 Gauss-Seidel迭代法求解线性方程组 MATLAB程序实现

Gauss-Seidel迭代法 参考数值分析第四版 颜庆津著 P39 运行输入 运行结果 函数内容(保存为gauss.m文件,在MATLAB中运行) %Gauss-Seidel迭代法求解线性方程组。迭...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)