07112016、最速下降法求最优解

六、 结果评价

本次测试分别从两组不同的初始搜索位置,两组不同 a,b,c,d 值出发, 两两比较可得结论:测试用例 abcd 为某些特定值时,不同初始搜索位置可 以得到相同的最优解;测试用例当初搜索位置相同时,abcd 分别取两组数时 得到的最优解是不同的。从结果上来看本例函数始终取到相同最优值,达到 了题目要求,只是在最优点位置有略微差异,这个问题产生原因是与最优值 点间的误差阈值自定义值有关,精度越高最优值越准确。

七、 程序评价

1. 最速下降法算法简单,初始点可以任意选,每次迭代计算量小,即使从

一个不好的初始点出发,往往也能收敛到局部极小点。

2. 由于在远离极小点的地方每次迭代可以使目标函数值有较大的下降,但

是在接近极小点的地方,由于锯齿现象,会导致每次行进距离缩短,从 而使收敛速度不快。即全局收敛,线性收敛,易产生扭摆现象而造成早 停。

3. 最速下降法是一种理想的极小化方法。必须指出的是,某点的负梯度方

向,通常只是在该店附近才具有这种最速下降的性质。

4. 在实用中常将最速下降法和其他方法联合应用,在前期使用最速下降法,

而在接近极小点时,可改用收敛较快的其他方法,这样能使计算速度更 快,结果更准确。

八、 心得体会

通过这次结课大作业,加深了我对 MATLAB 记忆和理解,真正做到了理论 和实践相结合,锻炼了自己分析,处理实际问题的能力,也认识到了自己的 不足。编程存在问题很大,主要细节错误找不出,M 文件的编写后调用运用 的不好,也让我认识到编写好 M 文件的重要性。在以后的学习中,要注重细 节和改错,多上机操作,切实提高编程能力。

九、 附录

fun.m 文件

function [xo,fo]=fun(f,grad,x0)%f:函数名; %grad:梯度函数; %x0:搜索初始值;

%TolX:最优值点间的误差阈值; %TolFun:函数的误差阈值; %dist0:初始步长;

%MaxIter:最大的迭代次数; %xo:最优化点值; %fo:函数在点 xo 处的函数值。

%%%%%% 判断输入的变量数,设定一些变量为默认值 TolX=1e-4; TolFun=1e-9;

第 8 页

07112016、最速下降法求最优解

MaxIter=100; dist0=1; if nargin<7

MaxIter=100; %最大的迭代次数默认为 10 end

if nargin<6

dist0=10; %初始步长默认为 10 end

if nargin<5 TolFun=1e-8; %函数值误差为 1e-8

end

if nargin<4

TolX=1e-6; %自变量距离误差 end x=x0; fx0=feval(f,x0); fx=fx0; dist=dist0; kmax1=25; %线性搜索法确定步长的最大搜索次数 warning=0;

%%%%%迭代计算求最优解 for k=1:MaxIter g=feval(grad,x);

g=g/norm(g); %求点 x 处的梯度 %%线性搜索方法确定步长 dist=dist*2;

fx1=feval(f,x-dist*2*g); for k1=1:kmax1 fx2=fx1; fx1=feval(f,x-dist*g);

if fx0>fx1+TolFun && fx1fx1dist=dist/2; end end

if k1>=kmax1 warning=warning+1;%无法确定最优步长 else

warning=0; end

第 9 页

%确定下一点

07112016、最速下降法求最优解

if warning>=2||(norm(x-x0)break; end x0=x; fx0=fx; end

xo=x;fo=fx; if k==MaxIter

fprintf('Just best in %d iteration',MaxIter); end

命令窗口输入:以测试结果一为例 >> syms x y

>> x0=[2,4];%初始搜索位置

>> f=inline('[(x(1)-4).^2+3*(x(2)-3).^2+2*x(1)*x(2)+1]','x'); >> %位置(x,y)用一元二维 x=(x(1),x(2))来表示 >> grad= inline('[2*x(1)+3*x(2)-2,3*x(1)+6*x(2)-12]','x'); >> %函数 f 在位置 x 的梯度 >> [xo,fo]=fun(f,grad,x0)

第 10

最优解matlab机械大作业,最速下降法求最优解西安电子科技大学matlab结课大作业...相关推荐

  1. 西安电子科技大学-信号与线性系统大作业-歌曲人声消除

    西安电子科技大学-信号与线性系统大作业-歌曲人声消除 简介 一.内容与要求 二.思路与方案 2.1 立体声消除人声 2.1.1 基本原理 2.1.2 通过左右两声道的音频消除人声 2.2 设计带阻滤波 ...

  2. 西安电子科技大学-电磁场与电磁波大作业-生活中的电磁场与电磁波

    西安电子科技大学-电磁场与电磁波大作业-生活中的电磁场与电磁波 简介 一.航模接收机的天线 二.防蓝光眼镜 三.隐身飞机的外形 简介   本文旨在给学弟学妹做大作业时提供思路,学校作业可能会查重,学弟 ...

  3. 大学计算机实践教程4.3综合作业,2020年下学期西安电子科技大学《基础实验》综合大作业.docx...

    学习中心/函授站 _ 姓 名 学 号 西安电子科技大学网络与继续教育学院 2020 学年下学期 <基础实验>期末考试试题 (综合大作业) 题号 一 总分 题分 100 得分 考试说明: 1 ...

  4. 在使用123作为rand matlab,西安电子科技大学MATLAB考试试卷

    西安电子科技大学网络与继续教育学院09级09年下半年期末试题考试科目:MATLAB 考生姓名:层次: 一.填空题:20分,每空1分. 1. MATLAB提供了两种运行方式,是和.2.MATLAB的含义 ...

  5. matlab程序设计基础教程 刘国良,MATLAB程序设计基础教程 刘国良 西安电子科技大学出版社...

    商品描述: [图书描述]: 本书以MATLABR2010a为基础,较全面.系统地介绍了MATLAB的理论和应用,内容包括MArLAB的基本知识和基本程序设计.数值分析.科学计算.符号运算和图形绘制等. ...

  6. matlab选修结课作业,MATLAB结课大作业.doc

    雏蓄列旧愤环员凉箕毫陆一拥梧犯圆缴战倍奇濒倔晒窿必峙蚜逢骋斩吴郭潍韵巩恭烈甲政售翔少灰浸巩感焕拙嗜匆菌王爵挚辟血铱窿曹啥析躬斟烯琵砸噎猴版骨脾州棘甥育海熙问梯周打膝司规槽捉糠疏仲响愁刚条吸款得乌烩滚筑 ...

  7. 西安电子科技大学-数据结构大作业-TSP问题

    西安电子科技大学-数据结构大作业-TSP问题 简介 一.题目9.TSP 1.1问题概述 1.2问题分析 1.3问题求解 1.3.1构建邻接矩阵 1.3.2寻找最优解 1.3.3结果 1.4总结 附录 ...

  8. 西安电子科技大学-EDA大作业-交通控制器

    西安电子科技大学-EDA大作业-交通控制器 简介 一.实验目的 二.设计任务 三.程序设计 3.1 分频器 3.2 45秒倒计时 3.3 数码管译码器 3.4 总控制器 3.5 顶层设计 3.6 引脚 ...

  9. 基于 Python 的开源Web开发框架django/哈工大学生成绩管理系统html实现/python结课大作业

    python结课大作业 (一)django安装 (1)django是什么 (2)基于django的网站 (3)django的设计理念 (4)django安装 (二)数据库安装 (1)数据库(DataB ...

最新文章

  1. delphi xe 文件服务器,DelphiXE7中创建WebService(服务端+客户端)
  2. 在mac上配置cocos2d-x开发环境
  3. python给用户打标签_python用户评论标签匹配的解决方法
  4. vue 封装组件供全局使用_vue 封装组件的基本操作
  5. 产品经理整理PRD时,需要注意哪些点
  6. Format函数用法
  7. 【解题报告】Leecode911. 在线选举——Leecode每日一题系列
  8. Oracle的分页实现
  9. 广度搜索 -- 9.2 Word Ladder -- 求具体的路径 -- 图解
  10. 不懂开发的运维,未来该如何发展?
  11. css阿拉伯数字,css 古文排版(含阿拉伯数字)
  12. 【吐血整理,建议收藏】B站上有哪些值得反复观看的Java视频教程?
  13. php emoji 乱码,微信emoji昵称展示乱码问题
  14. 鸿蒙策略炒股软件安全么,鸿蒙即将全量开源 引爆国产软件板块!
  15. aes ccm模式 java_AES_GCM和AES_CCM的选择
  16. 魔板游戏java_java魔板游戏 动物换位 俄罗斯方块
  17. 火箭发射:点击率预估界的“神算子”是如何炼成的?
  18. 那些破事儿.........
  19. 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩. 输入描述:
  20. 2022-2028年中国质量检验检测行业市场全景调查及投资潜力研究报告

热门文章

  1. Java【平年、闰年判断】
  2. 2011年国外最受欢迎的15个Torrent网站
  3. X2GO连接阿里云服务器等网页制作操作
  4. 导入Oracle数据库中的汉字都是问号
  5. python培训大概要学多久
  6. linux,java.net.UnknownHostException:XXX:XXX: Name or service not known
  7. SpringCloud进阶-Hystrix的服务降级
  8. OPPO R11s备货千万 11号正式开售
  9. 计算机系统的备份与还原实验报告,实验报告 系统备份与恢复.doc
  10. 正向有功正向无功_【分享知识讲解】正反向有功无功