共轭梯度法(conjugate gradient method)

该方法是快速求解Ax=b线性系统的方法,他要求矩阵A是对称正定矩阵。

算法执行过程:

matlab实现:

clear;%删除工作空间的所有变量,释放系统内存
clc;%清楚命名窗口
A=[4 1;1 3];
b=[1,2]‘;
N=length(b);    %解向量的维数
fprintf(‘库函数计算结果:‘);
x=inv(A)*b      %库函数计算结果
x=[2;1];        %初始点
eps=0.0000001;  %精度
r=b-A*x;
p=r;
for k=0:N-1
    fprintf(‘第%d次迭代:‘,k+1);
    a=(norm(r)^2)/(p‘*A*p)
    x=x+a*p
    rr =r-a*A*p;  %rr=r(k+1),它和b-A*x等价
    if (norm(rr)<=eps)||(k==N-1)
        break;
    end
    B=(norm(rr)^2)/(norm(r)^2);
    p=rr+B*p;
    r=rr;
end

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

时间: 2024-11-09 14:05:09

共轭梯度法(conjugate gradient method)的相关文章

最优化方法:共轭梯度法(Conjugate Gradient)

http://blog.csdn.net/pipisorry/article/details/39891197 共轭梯度法(Conjugate Gradient) 共轭梯度法(英语:Conjugate gradient method).是求解数学特定线性方程组的数值解的方法.当中那些矩阵为对称和正定.共轭梯度法是一个迭代方法.它适用于稀疏矩阵线性方程组,由于这些系统对于像Cholesky分解这种直接方法太大了.这种方程组在数值求解偏微分方程时非经常见. 共轭梯度法也能够用于求解无约束的最优化问题

共轭梯度法

共轭梯度法(英语:Conjugate gradient method),是求解数学特定线性方程组的数值解的方法,其中那些矩阵为对称和正定.共轭梯度法是一个迭代方法,它适用于稀疏矩阵线性方程组,因为这些系统对于像Cholesky分解这样的直接方法太大了.这种方程组在数值求解偏微分方程时很常见. 共轭梯度法也可以用于求解无约束的最优化问题. 双共轭梯度法提供了一种处理非对称矩阵情况的推广. 方法的表述 设我们要求解下列线性系统 , 其中n-×-n矩阵A是对称的(也即,AT = A),正定的(也即,x

深度学习之(十一)Deep learning中的优化方法:随机梯度下降、受限的BFGS、共轭梯度法

Deep learning中的优化方法 三种常见优化算法:SGD(随机梯度下降),LBFGS(受限的BFGS),CG(共轭梯度法). 1.SGD(随机梯度下降) 随机梯度下降(Stochastic Gradient Descent, SGD)是随机和优化相结合的产物,是一种很神奇的优化方法,属于梯度下降的一种,适用于大规模问题. 要想扯清楚它,还得先谈谈梯度下降.众所周知,每个优化问题都会有一个目标函数F(w)F(w),梯度下降采用迭代的策略,从初始点w0w0开始,每次沿着目标函数在当前点的负梯

共轭梯度法求解协同过滤中的 ALS

协同过滤是一类基于用户行为数据的推荐方法,主要是利用已有用户群体过去的行为或意见来预测当前用户的偏好,进而为其产生推荐.能用于协同过滤的算法很多,大致可分为:基于最近邻推荐和基于模型的推荐.其中基于最近邻推荐主要是通过计算用户或物品之间的相似度来进行推荐,而基于模型的推荐则通常要用到一些机器学习算法.矩阵分解可能是被研究地最多的基于模型的推荐算法,在著名的 Netflix 大赛中也是大放异彩,核心思想是利用低维隐向量为每个用户和物品建模,进而推测用户对物品的偏好.现在的关键问题是如果要用矩阵分解

L-BFGS

L-BFGS算法比较适合在大规模的数值计算中,具备牛顿法收敛速度快的特点,但不需要牛顿法那样存储Hesse矩阵,因此节省了大量的空间以及计算资源.本文主要通过对于无约束最优化问题的一些常用算法总结,一步步的理解L-BFGS算法,本文按照最速下降法 - 牛顿法 - 共轭梯度法 - 拟牛顿法 - DFP矫正 - BFGS 矫正 - LBFGS算法这样一个顺序进行概述.(读了一些文章之后,深感数学功底不够,在计算机视觉领域和机器学习领域,数学还是王道) 1. 最优化方法的迭代思想: 最优化方法采用的都

凸优化教材(2017-12-15发布于知乎)

我学习的教材是Numerical Optimization , 作者是JorgeNocedal 和Stephen Wright. JorgeNocedal 大叔现在在西北大学,研究的方向是优化和优化在机器学习中的应用等等.本科墨西哥国立大学,莱斯大学读的phd.老爷子今年55,15年和16年每年都发了三篇paper.优化领域顶级大牛.放一张老爷子的照片. Stephen Wright大叔现在在威斯康辛大学的计算机系,专攻实变量的数值最优化.在他的主页上写着“I'm interested in t

tag-SMASS-1

SMASS 是在vasp的DFTMD中决定着系综的类型,在手册中给出的该参数具体信息如下: SMASS = -3 | -2 | -1 | [real] ≥ 0 Default: SMASS = -3 Description: SMASS controls the velocities during an ab-initio molecular dynamics run. ---------------------------------------------------------------

vs2013在图像处理中的应用(1):安装基本模块

快乐虾 http://blog.csdn.net/lights_joy/(QQ群:Visual EmbedLinux Tools 375515651) 欢迎转载,但请保留作者信息 很久没有摸图像处理的东西了,近期刚好需要有此需求,希望能够有一个比较好用的开发环境.在学校的时候做图像处理一直用的是matlab,不过现在正好在做VELT的开发,尝试用vs2013+python构造一个适合于自己用的开发环境. 1.1.1  安装Python 出于对兼容性的考虑,在此选择python-2.7.9,win

机器学习之——判定边界和逻辑回归模型的代价函数

判定边界(Decision Boundary) 上一次我们讨论了一个新的模型--逻辑回归模型(Logistic Regression),在逻辑回归中,我们预测: 当h?大于等于0.5时,预测y=1 当h?小于0.5时,预测y=0 根据上面的预测,我们绘制出一条S形函数,如下: 根据函数图像,我们知道,当 z=0时,g(z)=0.5 z>0时,g(z)>0.5 z<0时,g(z)<0.5 又有: 所以 以上,为我们预知的逻辑回归的部分内容.好,现在假设我们有一个模型: 并且参数?是向