共轭梯度法解线性方程组(Matlab程序)

原创 2012年03月30日 18:38:38

%-------共轭梯度法解线性方程组-----------
%---Conjugate Gradient method-------
%参考教材《数值分析》李乃成&梅立泉,科学出版社2011
clear;clc;
% A=[10,-1,-2;-1,10,-2;-1,-1,5];
% b=[72,83,42]';
A=[2 0 1;0 1 0;1 0 2];
b=[3 1 3]';
N=length(b);    %解向量的维数
fprintf('库函数计算结果:');
x=inv(A)*b      %库函数计算结果

x=zeros(N,1);%迭代近似向量
eps=0.0000001;%精度
r=b-A*x;d=r;
for k=0:N-1
    fprintf('第%d次迭代:',k+1);
    a=(norm(r)^2)/(d'*A*d)
    x=x+a*d
    rr=b-A*x;    %rr=r(k+1)
    if (norm(rr)<=eps)||(k==N-1)
        break;
    end
    B=(norm(rr)^2)/(norm(r)^2);
    d=rr+B*d;
    r=rr;
end
   
   
   


 

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

相关文章推荐

共轭梯度法求解线性方程组-matlab通用程序

数值分析课程的大作业,教材《数值分析》李乃成.梅立泉 function x=Gongetidu2(A,b,x0,epsa) n=size(A,1); x=x0; r=b-A*x; d=r; ...

Matlab实现FR共轭梯度法

前一段时间学习了无约束最优化方法,今天用Matlab实现了求解无约束最优化问题的FR共轭梯度法。关于共轭梯度法的理论介绍,请参考我的另一篇文章 无约束最优化方法学习笔记。文件testConjungat...

最优化学习笔记(十四)——共轭梯度法

共轭梯度法不需要预先给定Q\boldsymbol{Q}共轭方向,而是随着迭代的进行不断产生Q\boldsymbol{Q}共轭方向。在每次的迭代中,利用上一个搜索方向和目标函数在当前迭代点的梯度向量 之...

Matlab绘图-很详细,很全面

Matlab绘图强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。此外,Ma...

共轭梯度法求解线性方程组

1.1算法原理及程序框图 当线性方程组Ax= b的系数矩阵A是对称正定矩阵时,可以采用共轭梯度法对该方程组进行求解,可以证明,式(1)所示的n元二次函数             ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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