首页 实验2 最速下降法和共轭梯度法的程序设计

实验2 最速下降法和共轭梯度法的程序设计

举报
开通vip

实验2 最速下降法和共轭梯度法的程序设计实验2 最速下降法和共轭梯度法的程序设计 实验2 最速下降法和共轭梯度法的程序设计 一、实验目的 1、熟悉无约束优化问题的最速下降算法和共轭梯度法。 2、培养matlab编程与上机调试能力。 二、实验课时:2个课时 三、实验准备 1、预习无约束优化问题的最速下降算法和共轭梯度法。 2、熟悉matlab软件的基本操作及程序编写。 四、实验内容 课堂实验演示 根据最速下降法编写程序,求函数 22 minf(x),x,2xx,4x,x,3x112212 Tx,1,1的极小值,其中初始点为 ,,0 算...

实验2 最速下降法和共轭梯度法的程序设计
实验2 最速下降法和共轭梯度法的程序设计 实验2 最速下降法和共轭梯度法的程序设计 一、实验目的 1、熟悉无约束优化问题的最速下降算法和共轭梯度法。 2、培养matlab编程与上机调试能力。 二、实验课时:2个课时 三、实验准备 1、预习无约束优化问题的最速下降算法和共轭梯度法。 2、熟悉matlab软件的基本操作及程序编写。 四、实验内容 课堂实验演示 根据最速下降法编写程序,求函数 22 minf(x),x,2xx,4x,x,3x112212 Tx,1,1的极小值,其中初始点为 ,,0 算法步骤如下: ,,,,1;0kStep1::给出初始点,和精度; x0 ,,fx(),Step2:计算,如果,则停止迭代,输出结果;否则转step3; ,fx()kk fxdfxd()min(),,,,,Step3:令下降方向,计算步长因子使得,dfx,,,(),kkkkkkkk,,0 令,转step2。 xxdkk,,,,,,1kkkk,1 其程序如下: function [x,iter,val,dval] = Steepest_Descent_Method(x,eps) k = 1; dy = grad_obj(x); x_mat(:,1) = x;%存储每一次迭代得到的点x while norm(dy)>eps d = -dy; % 搜索方向 lambda = line_search(x,d);%步长 x = x + d*lambda; k = k + 1; x_mat(:,k) = x; dy = grad_obj(x); end iter = k - 1; val = obj(x);%目标函数在极值点处的函数值 dval = grad_obj(x);%目标函数在极值点处的梯度 %-------------------------------------------------------------- x1 = linspace(-1.2,1.2,40); x2 = linspace(-0.2,1.2,40); [xx,yy] = meshgrid(x1,x2); for i = 1:length(x1) for j = 1:length(x2) z(i,j) = obj([xx(i,j);yy(i,j)]); end end contour(xx,yy,z,10);%画出目标函数的等高线 hold on plot(x_mat(1,:),x_mat(2,:),'-o')%画出最速下降法的迭代路径 hold off function y = obj(x) %目标函数 y = x(1).^2 - 2*x(1).*x(2) + 4*x(2).^2 + x(1) - 3*x(2); function dy = grad_obj(x) %目标函数的梯度 dy = [2*x(1) - 2*x(2) + 1; -2*x(1) + 8*x(2) - 3]; function lambda = line_search(xk,dk) %作线搜索,求步长 %phi(lambda) = obj( xk + lambda*dk ) %d_phi(lambda) = dk'*grad_obj( xk + lambda*dk ) syms eqn lambda eqn = dk'*grad_obj(xk+lambda*dk); lambda = solve(eqn); %用符号计算命令solve求方程d_phi(\lambda)=0的根 lambda = eval(lambda);%将符号计算的结果转化为数值类型 >> x = [1;1]; eps = 1.0e-6; >> [x,iter,val,dval] = Steepest_Descent_Method(x,eps) x =[ -0.1667 0.3333]’ val = -0.5833 dval = [0.5280*1.0e-006 -0.1760*1.0e-006]’ iter = 43 共轭梯度法的计算步骤: ,,,,1;0kStep1: 给出初始点,令,精度; d,,,f(x)x000 ,,fx(),Step2:计算,如果,则停止迭代,输出结果;否则转step3; ,fx()kk fxdfxd()min(),,,,,Step3:计算x,x,,d,其中步长因子使得,,kkkkkk,1kkkk,,0 2||,()||fx1k,计算下降方向; 令k,k,1,转step2。 ,,,(),dfxdk1k1k,,2||,()||fxk 其程序如下: function [x,iter,val,dval] = Conjugate_Gradient_Method(x,eps) k = 1; x_mat(:,1) = x;%存储每一次迭代得到的点x x_old = x; dy_old = grad_obj(x_old); d_old = -dy_old; while norm(dy_old)>eps lambda = line_search(x_old,d_old);%步长 x_new = x_old + lambda*d_old; dy_new = grad_obj(x_new); coef = norm(dy_new)/norm(dy_old); d_new = -dy_new + coef^2*d_old; % 搜索方向 k = k + 1; x_old = x_new; dy_old = dy_new; d_old = d_new; x_mat(:,k) = x_new; %防止死循环 if k > 100 break; end end x = x_new; iter = k - 1; val = obj(x_new);%目标函数在极值点处的函数值 dval = grad_obj(x_new);%目标函数在极值点处的梯度 %-------------------------------------------------------------- x1 = linspace(-1.2,1.2,40); x2 = linspace(-0.2,1.2,40); [xx,yy] = meshgrid(x1,x2); for i = 1:length(x1) for j = 1:length(x2) z(i,j) = obj([xx(i,j);yy(i,j)]); end end contour(xx,yy,z,10);%画出目标函数的等高线 hold on plot(x_mat(1,:),x_mat(2,:),'-o')%画出最速下降法的迭代路径 hold off function y = obj(x) %目标函数 y = x(1)^2 - 2*x(1)*x(2) + 4*x(2)^2 + x(1) - 3*x(2); function dy = grad_obj(x) %目标函数的梯度 dy = [2*x(1) - 2*x(2) + 1; -2*x(1) + 8*x(2) - 3]; function lambda = line_search(xk,dk) %作线搜索,求步长 %phi(lambda) = obj( xk + lambda*dk ) %d_phi(lambda) = dk'*grad_obj( xk + lambda*dk ) syms eqn lambda eqn = dk'*grad_obj(xk+lambda*dk); lambda = solve(eqn); %用符号计算命令solve求方程d_phi(\lambda)=0的根 lambda = max(eval(lambda));%将符号计算的结果转化为数值类型 课堂实验任务 编写函数文件,实现最速下降法和共轭梯度法,并分别求解下列问题 22, minf(x),x,4x12 T,6x,1,1,,10初始点取,精度取; ,,0 五、实验主要步骤 1、安装matlab7.0及以上版本软件; 2、编写m文件以创建和保存各函数; 3、运行程序,保存结果; 4、撰写实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 。 六、实验报告的撰写 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 1. 写出实验课程名称、日期; 2. 写出姓名、学号; 3. 写出实验目的、实验内容; 4. 写出实验过程及结果(程序代码及数值解),尽量给出其图象; 5. 写出心得体会;
本文档为【实验2 最速下降法和共轭梯度法的程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_037433
暂无简介~
格式:doc
大小:20KB
软件:Word
页数:0
分类:工学
上传时间:2017-09-28
浏览量:55