收藏 分销(赏)

matlab实验梯度法.doc

上传人:pc****0 文档编号:6866850 上传时间:2024-12-22 格式:DOC 页数:4 大小:30KB 下载积分:10 金币
下载 相关 举报
matlab实验梯度法.doc_第1页
第1页 / 共4页
matlab实验梯度法.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
实 验 报 告 实验名称: 梯度法 院 (系): 机电学院 专业班级: 机械制造及其自动化 姓 名: 学 号: 2013年5 月13 日 实验一: 梯度法 实验日期:2013年 5 月 13 日 一、 实验目的 了解MATLAB的基本运用 了解MATLB在优化中的使用 二、 实验原理 优化设计的目标是使函数值f(x)最小,函数在某点的梯度方向是函数在该点增长最快的方向,反之,其负梯度方向及为函数在该点附近趋于下降最快的方向。因此,可以利用函数在该点的负梯度方向作为迭代搜索方向寻找下一点,并按此规律不断进行搜索,寻找函数的最小值。 三、 实验内容 梯度法程序: x0=[3;3]; xk=x0; ie=10^(-7); ae=1; k=0; MLN=2; %迭代求解 while(k<MLN&&ae>ie) syms x1 syms x2 xk1=xk; %求函数梯度 fun=fun(x1,x2); fx1=diff(fun,'x1'); fx2=diff(fun,'x2'); %计算函数值及梯度值 fun=inline(fun); fx1=inline(fx1); fx2=inline(fx2); funval=feval(fun,xk1(1),xk1(2)); gradx1=feval(fx1,xk1(1)); gradx2=feval(fx2,xk1(2)); grad=zeros(2,1); grad(1)=gradx1; grad(2)=gradx2; %最速下降发迭代,求下一步 syms a; syms x1; syms x2; x=xk1-a*grad; x1=x(1); x2=x(2); %确定一位搜索最佳步长 fun1=fun(x1,x2); fxa=diff(fun1,'a'); a=solve(fxa); x=inline(x); x=feval(x,a); ae=eval((sqrt((xk1-x)'*(xk1-x)))) ; %计算实际误差 %更新迭代点,继续下次迭代 xk(1)=eval(x(1)); xk(2)=eval(x(2)); k=k+1; end x=xk 函数程序: function f=fun(x1,x2) f=2*x1^2+3*x2^2 执行结果: x = 0.1029 0.1029 四、 实验小结 通过本实验了解了了matlab的基本操作方法,了解梯度法的原理与基本运用
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服