6.15 工程数学实验一

news/2024/10/1 17:20:16

实验一:黄金分割法(0.618法)程序设计

一、实验目的

 

通过一维寻优黄金分割法的程序设计,培养学生计算机的应用能力,并为今后无约束优化方法的学习和编程,奠定基础;掌握缩小寻优区间的黄金分割法。

 

二、实验内容

 

1)请用0.618法求解优化问题:

 

的极小点和极小值(进退法确定初始区间),精度为10-6

2)根据0.618法算法步骤编写Matlab的程序实现0.618搜索法;

3)要求输出内容包括:极小点、极小值、每次迭代的abalak的值;

(4)按照模板撰写实验报告,要求规范整洁。

 

 

三、算法步骤、代码、及结果

1. 算法步骤

1)学习MATLAB基础编程知识;

2)认真学习0.618法算法步骤,编写MATLAB程序golds函数;

2. 代码

function [s,phis,k,G,E]=golds(phi,a,b,delta)%输入:phi是目标函数,ab是搜索区间的两个端点deltaepsilon分别是自变量和函数值的容许误差9%输出:sphis分别是近似极小点和极小值,Gnx4矩阵。其第k行分别是a,p,q,b的第k次迭代值[ak,pk,qk,bk]E=[ds,dphi],分别是sphis的误差限

t=(sqrt(5)-1)/2;h=b-a;

phia=feval(phi,a);phib=feval(phi,b);

p=a+(1-t)*h;q=a+t*h;

phip=feval(phi,p);phiq=feval(phi,q);k=1;G(k,:)=[a,p,q,b,h];

while(h>delta)

if(phip<phiq)

b=q;phib=phiq;q=p;phiq=phip;

h=b-a;p=a+(1-t)*h;phip=feval(phi,p);

else

a=p; phia=phip;p=q;phip=phiq;

h=b-a; q=a+t*h;phiq=feval(phi,q);

end

k=k+1; G(k,:)=[a,p,q,b,h];

end

ds=abs(b-a);dphi=abs(phib-phia);

if(phip<=phiq)

s=p;phis=phip;

else

s=q;phis=phiq;

end

E=[ds,dphi];

3. 结果

 

 

 

 

 

四、心得体会

 

  1. 理论与实践结合的重要性:将数学理论如黄金分割比应用到实际问题中,如优化函数的最小值搜索,能够深刻理解理论知识的力量和实用性。通过编程实现这一算法,让抽象的概念变得具体可操作。
  2. 算法效率与精度平衡0.618法以其简洁的计算规则和快速的收敛速度,在很多情况下都能有效找到极值点。但同时,通过实验也会意识到选择合适的初始区间和终止条件对于提高搜索效率和保证解的精度至关重要。
  3. 编程技能的提升:编写和调试MATLAB代码不仅增强了的编程能力,还让学会了如何利用编程语言工具解决实际问题。这包括了如何定义函数、循环控制、条件判断以及数组操作等基本技能。
  4. 数据分析能力:通过观察每次迭代过程中的abcd值变化,可以直观地理解算法逐步逼近最优解的过程,增强对迭代算法工作原理的理解,同时也锻炼了数据分析和解读实验结果的能力。
  5. 问题解决思路的拓展:面对不同的优化问题,学会灵活调整和应用现有的算法框架,思考如何根据问题特性进行微调,比如调整初始区间的选择策略、设定更合理的收敛准则等,培养了解决复杂问题的创新思维。
  6. 实验报告撰写技巧:整理实验过程、分析结果并撰写报告,锻炼了科学严谨的写作习惯,以及如何清晰、逻辑性地表达实验思想和结论,这对于学术研究和工程实践都是极其重要的技能。

综上所述,本次实验不仅是对0.618法这一经典优化算法的学习和应用,更是对解决问题能力、编程技能、数据分析和科研写作等多方面能力的综合训练,对今后的学习和工作都将产生深远的影响。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/44949.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

如何快速开发一个鸿蒙原生app

小程序转鸿蒙原生app的创新开发方式,为开发者提供了快速、便捷的开发途径,助力开发者高效地将小程序业务迁移至鸿蒙生态,同时也为用户提供了更加丰富、流畅的应用体验。展望未来,随着技术的不断发展和完善,相信将会有更多创新的开发模式涌现,为开发者和用户带来更加便利、…

远程服务器不能复制粘贴解决方法

主要有两种情况: 1、复制粘贴功能原本可以用,突然失灵了 2、从头到尾都无法使用这个复制粘贴功能针对第一种情况,只需重启一下rdpclip.exe就可以了针对第二种情况,步骤: 1、打开任务管理器,查看进程,如果有 rdpclip.exe (有可能是 RDP剪贴板监视程序)进程,先关闭该进…

Lets Encrypt续费证书异常报错解决

Lets Encrypt续费证书异常报错解决 在续费免费证书时出现错误,这里小记一下。 现象#certbot certonly --webroot -w /usr/share/nginx/html -d gh.wqyfchina.com Saving debug log to /var/log/letsencrypt/letsencrypt.log Requesting a certificate for gh.wqyfchina.comCer…

RevitServer 2018安装教程

1.服务器系统必备环境安装 在“.NET Framework 功能”窗格中,选中“TCP 端口共享”、“HTTP 激活”、“TCP 激活”和“Web 服务器 (IIS) 支持”等复选框。在“Web 服务器角色 (IIS) - 角色服务”窗格上展开“应用程序开发”并选择“ASP”、“CGI”。“在服务器端的包含文件”展…

【Miro】Miro入门(指的是我这篇随笔写得很入门)

Miro入门 参考:Miro API入門 创建APPhttps://miro.com/app/dashboard/ → 右上角头像 →「Settings」→「Your apps」→「Create new app」会提示需要创建Team(如果本来没有加到Team中去应该创建完账号可以自己创建Team)创建Team默认为「Dev team」填写「App Name」,其中「…

PDF怎么取消密码设置?2个免费方法值得试试

PDF怎么取消密码设置?出于安全的考虑,现在很多pdf文档在传发前,都会加上一层密码,想要打开文件查看,必须要先输入正确的密码。但是每次我们在查看同一个文件的时候,都要输入密码又过于麻烦,有密码的pdf文件怎么设置成普通文件?pdf密码怎么解除?下面这2个解密方法,小伙…

基于 Nginx Ingress + 云效 AppStack 实现灰度发布

灰度发布是降低生产部署风险,提升线上服务稳定性的重要手段,这在当前快速迭代的软件研发中尤为重要。相对于 K8s 默认的滚动部署或者简单的 Pod 分批,基于流量特征的灰度发布验证更精准,风险更低。作者:子丑 场景简介 灰度发布是降低生产部署风险,提升线上服务稳定性的重…

机器学习策略篇:详解清除标注错误的数据(Cleaning up Incorrectly labeled data)

清除标注错误的数据 监督学习问题的数据由输入\(x\)和输出标签 \(y\) 构成,如果观察一下的数据,并发现有些输出标签 \(y\) 是错的。的数据有些标签是错的,是否值得花时间去修正这些标签呢?看看在猫分类问题中,图片是猫,\(y=1\);不是猫,\(y=0\)。所以假设看了一些数据样…