线性方程组的最速下降法与共轭梯度法

西京学院数学软件实验任务书

【实验课题】

线性方程组的最速下降法与共轭梯度法

【实验目的】

学习和掌握线性方程组的最速下降法与共轭梯度法的求解方法。

【实验内容】

1、问题重述

对于线性方程组AX=b,即:

⎧a11x1+a12x2+ +a1nxn=b1⎪ax+ax+ +ax=b⎪2112222nn2

(1) ⎨

⎪⎩an1x1+an2x2+ +annxn=bn

其中,A=(aij)n⨯n为对称正定矩阵,b=(bi)n⨯1,如何熟练

地运用最速下降法与共轭梯度法的求解线性方程组。 2、方法理论

在求解线性方程组之前,首先用内积将问题转化为函数问题。 2.1 最速下降法

最速下降法是一种运用梯度与极值的性质,综合数值计算方法寻找局部极值。

基本思想:任一点的负梯度方向是函数值在该点下降最快的方向。将n维问题转化为一系列沿负梯度方向用一维搜索方法寻优的问题,利用负梯度作为搜索方向,故称最速下降法。

具体步骤:

1、搜索方向:dk=-∇f(xk),即最速下降方向。

2、搜索步长:λk取最优步长,即满足:

f(xk+λkdk)=minf(xk+λdk)

λ

Step 1 给定初始点x0∈Rn,允许误差ε≥0,令k=1。 Step 2 计算搜索方向dk=-∇f(xk)。

Step 3 若 dk ≤ε,则xk为所求的极值点,否则,求解最优步长λk,使得f(xk+λkdk)=minf(xk+λdk)。

λ

Step 4 令xk+1=xk+λkdk,k=k+1

最速下降方向是反映了目标函数的局部性质,它只是局部目标函数值下降最快的方向。

2.2 共轭梯度法

对于 min

f(x)=

1T

xAx+bTx 2

其中,x0∈Rn,A是对称正定矩阵。

基本思想:将共轭性与最速下降法相结合利用已知迭代点

的梯度方向构造一组共轭方向,并沿此方向搜索,求出函数的极小值。

具体步骤:

Step 1 取初始点x(

0)

,取第一次搜索方向为

)0

d(0=-∇f(x)(。

Step 2 设已求得x(k+1),若∇f(x(k+

1)

)≠,令0

k+1)

g(x)=∇f((x,则下一个搜索方向)

d(k+1)=-gk+1+βkd(k) (1)

由于d(k+1)与d(k)关于A共轭,所以给(1)两边同时乘以d(k)A,即:

T

d(k)Ad(k+1)=-d(k)Agk+1+βkd(k)Ad(k)=0

d(k)TAgk+1

解得:βk=(k)T (2) (k)

dAd

Step 3 搜索步长的确定,已知迭代点x(k),和搜索方向

λ

TTT

d(k),确定步长λk,即:min

f(x(k)+λd(k))

φ(λ)=f(x(k)+λd(k)),

φ'(λ)=∇f(x(k)+λd(k))Td(k)=0

既有:[A(x(k)+λd(k))+b]Td(k)=0

令 gk=∇f(x(k))=Ax(k)+b 既有:[gk+λAd(k)]Td(k)=0

Tgkd(k)

解得:λk=-(k)T(k)

dAd

共轭梯度法是对最速下降法的一种改进,减少了迭代次数

从而提高了程序运行效率。

程序:

%%%%%%%%%%%%%%%%%%%最速下降法%%%%%%%%%%%%%%%%%% function [x,k]=fast(A,b)

esp=input('ÇëÊäÈëÔÊÐíÎó²îesp='); N=input('ÇëÊäÈë×î´óµü´ú´ÎÊýN='); x0=input('ÇëÊäÈë³õʼֵx0='); k=0; tol=1;

while tol>=esp r=b-A*x0;

q=dot(r,r)/dot(A*r,r); x=x0+q*r; k=k+1;

tol=norm(x-x0); x0=x if k>=N

disp('µü´ú´ÎÊýÌ«¶à£¬¿ÉÄܲ»ÊÕÁ²£¡'); return; end end x k

%%%%%%%%%%%%%%%%%%%共轭梯度法%%%%%%%%%%%%%%%%%%% function [k,x]=C_G(A,b)

esp=input('请输入最大误差='); x0=input('请输入初值x0='); k = 0 ;

r0 = b-A*x0; %Çó³ödangqianÌÝ¶È while norm(r0)>esp r0 = b -A*x0; k = k + 1 ; if k==1

p0 = r0 ; else

lamda=(r0'*r0)/(p0'*A*p0);

r1 = r0 - lamda*A*p0 ;

p0=r0+(r0'*r0)/(r1'*r1)*p0; x1 = x0 + lamda*p0; x0=x1; r0=r1; end end x=r0; k; end

西京学院数学软件实验任务书

【实验课题】

线性方程组的最速下降法与共轭梯度法

【实验目的】

学习和掌握线性方程组的最速下降法与共轭梯度法的求解方法。

【实验内容】

1、问题重述

对于线性方程组AX=b,即:

⎧a11x1+a12x2+ +a1nxn=b1⎪ax+ax+ +ax=b⎪2112222nn2

(1) ⎨

⎪⎩an1x1+an2x2+ +annxn=bn

其中,A=(aij)n⨯n为对称正定矩阵,b=(bi)n⨯1,如何熟练

地运用最速下降法与共轭梯度法的求解线性方程组。 2、方法理论

在求解线性方程组之前,首先用内积将问题转化为函数问题。 2.1 最速下降法

最速下降法是一种运用梯度与极值的性质,综合数值计算方法寻找局部极值。

基本思想:任一点的负梯度方向是函数值在该点下降最快的方向。将n维问题转化为一系列沿负梯度方向用一维搜索方法寻优的问题,利用负梯度作为搜索方向,故称最速下降法。

具体步骤:

1、搜索方向:dk=-∇f(xk),即最速下降方向。

2、搜索步长:λk取最优步长,即满足:

f(xk+λkdk)=minf(xk+λdk)

λ

Step 1 给定初始点x0∈Rn,允许误差ε≥0,令k=1。 Step 2 计算搜索方向dk=-∇f(xk)。

Step 3 若 dk ≤ε,则xk为所求的极值点,否则,求解最优步长λk,使得f(xk+λkdk)=minf(xk+λdk)。

λ

Step 4 令xk+1=xk+λkdk,k=k+1

最速下降方向是反映了目标函数的局部性质,它只是局部目标函数值下降最快的方向。

2.2 共轭梯度法

对于 min

f(x)=

1T

xAx+bTx 2

其中,x0∈Rn,A是对称正定矩阵。

基本思想:将共轭性与最速下降法相结合利用已知迭代点

的梯度方向构造一组共轭方向,并沿此方向搜索,求出函数的极小值。

具体步骤:

Step 1 取初始点x(

0)

,取第一次搜索方向为

)0

d(0=-∇f(x)(。

Step 2 设已求得x(k+1),若∇f(x(k+

1)

)≠,令0

k+1)

g(x)=∇f((x,则下一个搜索方向)

d(k+1)=-gk+1+βkd(k) (1)

由于d(k+1)与d(k)关于A共轭,所以给(1)两边同时乘以d(k)A,即:

T

d(k)Ad(k+1)=-d(k)Agk+1+βkd(k)Ad(k)=0

d(k)TAgk+1

解得:βk=(k)T (2) (k)

dAd

Step 3 搜索步长的确定,已知迭代点x(k),和搜索方向

λ

TTT

d(k),确定步长λk,即:min

f(x(k)+λd(k))

φ(λ)=f(x(k)+λd(k)),

φ'(λ)=∇f(x(k)+λd(k))Td(k)=0

既有:[A(x(k)+λd(k))+b]Td(k)=0

令 gk=∇f(x(k))=Ax(k)+b 既有:[gk+λAd(k)]Td(k)=0

Tgkd(k)

解得:λk=-(k)T(k)

dAd

共轭梯度法是对最速下降法的一种改进,减少了迭代次数

从而提高了程序运行效率。

程序:

%%%%%%%%%%%%%%%%%%%最速下降法%%%%%%%%%%%%%%%%%% function [x,k]=fast(A,b)

esp=input('ÇëÊäÈëÔÊÐíÎó²îesp='); N=input('ÇëÊäÈë×î´óµü´ú´ÎÊýN='); x0=input('ÇëÊäÈë³õʼֵx0='); k=0; tol=1;

while tol>=esp r=b-A*x0;

q=dot(r,r)/dot(A*r,r); x=x0+q*r; k=k+1;

tol=norm(x-x0); x0=x if k>=N

disp('µü´ú´ÎÊýÌ«¶à£¬¿ÉÄܲ»ÊÕÁ²£¡'); return; end end x k

%%%%%%%%%%%%%%%%%%%共轭梯度法%%%%%%%%%%%%%%%%%%% function [k,x]=C_G(A,b)

esp=input('请输入最大误差='); x0=input('请输入初值x0='); k = 0 ;

r0 = b-A*x0; %Çó³ödangqianÌÝ¶È while norm(r0)>esp r0 = b -A*x0; k = k + 1 ; if k==1

p0 = r0 ; else

lamda=(r0'*r0)/(p0'*A*p0);

r1 = r0 - lamda*A*p0 ;

p0=r0+(r0'*r0)/(r1'*r1)*p0; x1 = x0 + lamda*p0; x0=x1; r0=r1; end end x=r0; k; end


相关文章

  • 共轭梯度法实验报告
  • 数值代数实验报告 一.实验名称:用共轭梯度法解线性方程组. 二.实验目的:进一步熟悉理解掌握共轭梯度法解法思路,提高matlab编程能力. 三.实验要求:已知线性方程矩阵,应用共轭梯度法在相关软件编程求解线性方程组的解. 四.实验原理: 1 ...查看


  • 优化理论和最优控制
  • 分 数: ___________ 任课教师签字:___________ 华北电力大学研究生结课作业 学 年 学 期:2013-2014第二学期 课 程 名 称:优化理论和最优控制 学 生 姓 名: 学 号: 提 交 时 间:2014年4月2 ...查看


  • 机器学习中的梯度下降法
  • 最优化问题是机器学习算法中非常重要的一部分,几乎每一个机器学习算法的核心都是在处理最优化问题. 本文中我讲介绍一些机器学习领域中常用的且非常掌握的最优化算法,看完本篇文章后你将会明白: * 什么是梯度下降法?  * 如何将梯度下降法运用到线 ...查看


  • 模式识别-神经网络综述
  • 结课论文 题目: 神经网络综述 学 院 河北大学工商学院 学科门类 理科 专 业 网络工程 学 号 2013483158 姓 名 苑磊 指导教师 李凯,邢洪杰 2016年11月3 日 学号:2013483158 专业:13级网络工程1班 姓 ...查看


  • 共轭梯度法c++程序
  • 最优化课程设计 姓 名:指导老师:学 号:班 级: 题目:共轭梯度法 田鑫 智红英 [1**********]6 信息与计算科学111802班 共轭梯度法(Conjugate Gradient) 是介于最速下降法与牛顿法之间的一个方法,它仅 ...查看


  • 机器学习理论篇1:机器学习的数学基础
  • 一.概述 我们知道,机器学习的特点就是:以计算机为工具和平台,以数据为研究对象,以学习方法为中心:是概率论.线性代数.数值计算.信息论.最优化理论和计算机科学等多个领域的交叉学科.所以本文就先介绍一下机器学习涉及到的一些最常用的的数学知识. ...查看


  • 非线性方程组的牛顿迭代法,最速下降法
  • 数学软件实验任务书 实验一 非线性方程组的牛顿迭代法 1 实验原理 对于非线性方程 ⎛f 1(x 1, x 2, , x n ) ⎫ ⎪f (x , x , , x ) 212n ⎪ f = ⎪ ⎪f (x , x , , x ) n ⎭⎝ ...查看


  • 非线性方程组的求解
  • 非线性方程组的求解 摘要:非线性方程组求解是数学教学中,数值分析课程的一个重要组成部分,作为一门学科,其研究对象是非线性方程组.求解非线性方程组主要有两种方法:一种是传统的数学方法,如牛顿法.梯度法.共轭方向法.混沌法.BFGS法.单纯形法 ...查看


  • 矩阵分解及无约束最优化方法
  • 矩阵分解及无约束最优化 方法的原理和应用简介 --最优化方法课程实验报告 学 院:数学与统计学院 班 级:硕2041班 姓 名:王彭 学 号:指导教师:阮小娥 同 组 人:陈莹 钱东东 矩阵分解及无约束最优化方法的原理和应用简介 矩阵分解及 ...查看


热门内容