首页 > 其他分享 >6.15 工程数学实验一

6.15 工程数学实验一

时间:2024-06-13 15:48:04浏览次数:18  
标签:feval phi 0.618 6.15 算法 实验 phiq phip 数学

实验一:黄金分割法(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是目标函数,a,b是搜索区间的两个端点delta,epsilon分别是自变量和函数值的容许误差9%输出:s,phis分别是近似极小点和极小值,G是nx4矩阵。其第k行分别是a,p,q,b的第k次迭代值[ak,pk,qk,bk],E=[ds,dphi],分别是s和phis的误差限

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. 数据分析能力:通过观察每次迭代过程中的a、b、c、d值变化,可以直观地理解算法逐步逼近最优解的过程,增强对迭代算法工作原理的理解,同时也锻炼了数据分析和解读实验结果的能力。
  5. 问题解决思路的拓展:面对不同的优化问题,学会灵活调整和应用现有的算法框架,思考如何根据问题特性进行微调,比如调整初始区间的选择策略、设定更合理的收敛准则等,培养了解决复杂问题的创新思维。
  6. 实验报告撰写技巧:整理实验过程、分析结果并撰写报告,锻炼了科学严谨的写作习惯,以及如何清晰、逻辑性地表达实验思想和结论,这对于学术研究和工程实践都是极其重要的技能。

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

标签:feval,phi,0.618,6.15,算法,实验,phiq,phip,数学
From: https://www.cnblogs.com/zzqq1314/p/18246004

相关文章

  • 6.15
    今天完成工程数学作业实验五实验五:MATLAB最优化工具箱的使用一、实验目的通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。通过一个投资组合优化问题的实例求解,培养学生解决......
  • 实验3 中间代码生成 *语法制导的代码+生成语句代码生成+条件判断语句代码生成
    实验3中间代码生成help-assignment代码已完成除了语法树,编译器里另一个核心数据结构就是中间代码(IntermediateRepresentation,IR)。中间代码是编译器从源语言到目标语言之间采用的一种过渡性质的代码形式,往往介于语法树和汇编代码之间,其表示独立于机器,易于分析和翻译......
  • BGP路由优选实验(包含as策略,Community属性等)
    实验背景实验目的1.使用AS_PATH属性,确保R4通过R3到达192.168.11.0/242.使用LOCAL_PREF属性,确保R1通过R2到达192.168.1.0/243.使用MED属性,确认R4通过R3到达192.168.12.0/244.使用LOCAL_PREF属性,确保R1通过R3到达192.168.2.0/245.使用AS策略,AS500不接受任何始发于AS1......
  • 《现代通信原理与技术》--数字信号的最佳接收实验报告
    《现代通信原理与技术》数字信号的最佳接收实验报告实 验:数字信号的最佳接收实验报告目录摘要......................................................................................................3引言.............................................................
  • 工程数学实验5
    实验五:MATLAB最优化工具箱的使用(1)线性规划应用案例的求解1、基本要求通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。2、主要内容某村计划在100公顷的土地上种植a、b、c三......
  • 工程数学实验四
    上机实验四:共轭梯度法程序设计1、基本要求掌握共轭梯度法的基本思想及其迭代步骤;学会运用MATLAB编程实现常用优化算法;能够正确处理实验数据和分析实验结果及调试程序。2、主要内容(1)求解无约束优化问题:(2)终止准则取;(3)完成FR共轭梯度法的MATLAB编程、调试;(4)选取几个与实验二实验......
  • 西电计科嵌入式程序设计课程实验源码
    前言博主是21级计科院的,在此澄清一下部分学长留存的实验经验:实验比较基础,并不像之前所说非常棘手;可以提前准备,但也没太大必要,认真做下午基本就能完全结束;实验三代码需要自己编写,但结构清晰,较为容易;用Qt编写嵌入式GUI程序——加减乘除四则运算器设计头文件#ifndefCAL......
  • CD实验环境
    condacreate-nwind_2021python==3.7(base)C:\Users\bim>condacreate-nwind_2021python==3.7Channels:-defaultsPlatform:win-64Collectingpackagemetadata(repodata.json):doneSolvingenvironment:done##PackagePlan##environmentloc......
  • 工程数学 实验5-MATLAB最优化工具箱的使用
    (1)线性规划应用案例的求解1、基本要求通过一个农业生产计划优化安排的实例求解,培养学生解决实际线性规划问题的初步能力;熟悉线性规划的建模过程;掌握Matlab优化工具箱中线性规划函数的调用。2、主要内容某村计划在100公顷的土地上种植a、b、c三种农作物。可以提供的劳力、粪肥和......
  • 【STM32F1例程3】ADC实验
    1.实验说明 PA4口作为ADC采集口,PA4口接地或者接3.3V。下载运行程序,PA4口接地,会发现VolDta值为0,然后把PA4口接3.3V,会发现VolDta值为33002.主要程序直接上main.c#include"delay.h"#include"sys.h"//ADC配置,ADC1通道4voidADC_Config_Init(void){ ADC_InitTypeDef......