下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、%对分法求解目标函数最优解函数function t,y=equation_extremum(x,a,b,epsional)%= %函数默认参数:%x为目标函数,输入字符串型,默认最优解求其最小值%a,b 为其初始区间,默认闭区间, a<b %对初始区间的要求:初始区间是单谷区间,函数求极小值 %则 a 处的导数 <=0,b 处的导数 >=0;%= syms t;x_inline=inline(sym(x);func_diff=diff(sym(x);func_diff_inline=inline(func_diff);t=b;high_value=func_diff_inli
2、ne(t);t=a;low_value=func_diff_inline(t);ifhigh_value*low_value>0t='本函数不可解;y='给定初始区间非单谷区间;else if high_value*low_value=0ifhigh_value=0t=b;y=x_inline(t);else t=a;y=x_inline(t);endelsewhile abs(high_value-low_value)>=epsional; c=1/2*(b+a);t=c; middle_value=func_diff_inline(t); ifmiddle_va
3、lue>0 high_value=middle_value;b=c;else if middle_value<0 low_value=middle_value;a=c;else if middle_value=0 break; end end end endc=1/2*(b+a);t=c; y=x_inline(t);endend 运行代码: %= closeall;clearall;clc;%目标函数 syms t;t,y=equation_extremum('t*(t-3)',t,-3,5,0.1); disp(t,y);运行结果: t=1.5 y=-2.25%
4、抛物线法求函数最优解function t,y=parabola_extremum(x,t1,t2,epsional) %= %函数默认参数:%x为目标函数,输入字符串型,例如:'xA2-s in (x)'默认最优解求其最小值%a, b 为其初始区间,默认闭区间, t1<t2 %对初始区间的要求:初始区间是单谷区间,函数求极小值 %= syms t;x_inline=inline(sym(x);%生成随机数求出 t0; high_value=x_inline(t2);low_value=x_inline(t1); t0=parabola_overture(x,t,t1,t2
5、);% 自定义函数,试探法求 t0 middle_value=x_inline(t0);%拟合曲线,待定系数法 %p(t0)=a0+a1*t0+a2*t0A2=f(t0) %p(t1)=a0+a1*t1+a2*t2A2=f(t1) %p(t2)=a0+a1*t2+a2*t2A2=f(t2)%推出: %a1=(t0A2-t2A2)*f(t1)+(t2A2-t1A2)*f(t0)+(t1A2-t0A2)*f(t2)/(t1-t0)*(t0-t2)*(t2-t1)%a2=(t0-t2)*f(t1)+(t2-t1)*f(t0)+(t1-t0)*f(t2)/(t1-t0)*(t0-t2)*(t2-t1)
6、 while 1t_ba=0.5*(t0A2-t2A2)*low_value+(t2A2-t1A2)*middle_value+(t1A2-t0A2)*high_value)/(t0-t2)*l ow_value+(t2-t1)*middle_value+(t1-t0)*high_value);t_ba_value=x_inline(t_ba);if abs(t_ba-t0)<epsionalt=t_ba;y=t_ba_value;break;else if t_ba>t0ift_ba_value<=middle_valuet1=t0;t0=t_ba;low_value=mi
7、ddle_value;middle_value=t_ba_value;elset2=t_ba;high_value=t_ba_value;endelseift_ba_value<=middle_valuet2=t0;t0=t_ba;high_value=middle_value;middle_value=t_ba_value;elset1=t_ba;low_value=t_ba_value;endendenddisp(t1,t0,t2;low_value,middle_value,high_value)end%试探法求函数低点值,用于抛物线插值法function t0=parabola_
8、overture(x,a,b)%=%函数默认参数:%x为目标函数,输入字符串型,例如:'xA2-si n(x)'%a, b 为其初始区间,默认闭区间, a<b %对初始区间的要求:初始区间是单谷区间,函数求极小值 %= syms t;x_inline=inline(sym(x);%生成随机数求出 t0;rand_t0=rand(1,10);high_value=x_inline(b);low_value=x_inline(a);middle_value=x_inline(rand_t0(1);k=1;whilemiddle_value>high_value|middle_value>low_value k=k+1;middle_value=x_inline(rand_t0(k);if k>50printf(' 请重新运行程序 ');break;endend t0=rand_t0(k);运行代码 : closeall;clearall;clc;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年团队管理机考试题及答案
- 2025年冰雪运动考试题库及答案
- 公园出租桌椅合同范本
- 2025年特岗文化素养题库及答案
- 拆迁门窗协议合同范本
- 帕金森病家庭护理者的支持与培训
- 疼痛管理护理视频教程
- 车尿素采购合同范本
- 冬至课件开头结尾摘抄
- 山东联通机考试题及答案
- GB/T 27995.1-2025半成品镜片毛坯第1部分:单焦和多焦
- 护理部主任年终汇报
- 《电力市场概论》 课件 第七章 发电投资分析
- 2024年新苏教版四年级上册科学全册知识点(复习资料)
- 题库二附有答案
- 市场拓展与销售渠道拓展方案
- 工地大门施工协议书
- 铁血将军、建军元勋-叶挺 (1)讲解
- 2023年西门子PLC知识考试题(附含答案)
- 鼻鼽(变应性鼻炎)诊疗方案
- 消防应急疏散和灭火演习技能培训
评论
0/150
提交评论