收藏 分享(赏)

matlab实验梯度法.doc

上传人:wspkg9802 文档编号:5259860 上传时间:2019-02-15 格式:DOC 页数:4 大小:30KB
下载 相关 举报
matlab实验梯度法.doc_第1页
第1页 / 共4页
matlab实验梯度法.doc_第2页
第2页 / 共4页
matlab实验梯度法.doc_第3页
第3页 / 共4页
matlab实验梯度法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实 验 报 告实验名称: 梯度法 院 (系): 机电学院 专业班级: 机械制造及其自动化 姓 名: 学 号: 2013 年 5 月 13 日实验一: 梯度法 实验日期:2013 年 5 月 13 日一、 实验目的了解 MATLAB 的基本运用了解 MATLB 在优化中的使用二、 实验原理优化设计的目标是使函数值 f(x)最小,函数在某点的梯度方向是函数在该点增长最快的方向,反之,其负梯度方向及为函数在该点附近趋于下降最快的方向。因此,可以利用函数在该点的负梯度方向作为迭代搜索方向寻找下一点,并按此规律不断进行搜索,寻找函数的最小值。三、 实验内容梯度法程序:x0=3;3;xk=x0;ie=10

2、(-7);ae=1;k=0;MLN=2;%迭代求解while(kie)syms x1syms x2xk1=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;%最速下降发

3、迭代,求下一步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;endx=xk函数程序:function f=fun(x1,x2)f=2*x12+3*x22执行结果:x =0.10290.1029四、 实验小结通过本实验了解了了 matlab 的基本操作方法,了解梯度法的原理与基本运用

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报