对分法求解目标函数最优解函数MATLAB实现.docxVIP

对分法求解目标函数最优解函数MATLAB实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
对分法求解目标函数最优解函数MATLAB实现

%%对分法求解目标函数最优解函数function [t,y]=equation_extremum(x,~,a,b,epsional)%%=======================================%函数默认参数:%x为目标函数,输入字符串型,默认最优解求其最小值%a,b为其初始区间,默认闭区间,ab%对初始区间的要求:初始区间是单谷区间,函数求极小值%则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_inline(t);t=a;low_value=func_diff_inline(t);ifhigh_value*low_value0 t=本函数不可解; y=给定初始区间非单谷区间;else if high_value*low_value==0ifhigh_value==0 t=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_value0 high_value=middle_value; b=c;else if middle_value0 low_value=middle_value; a=c;else if middle_value==0break;endendendend c=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.5y=-2.25%%抛物线法求函数最优解function [t,y]=parabola_extremum(x,~,t1,t2,epsional)%%=======================================%函数默认参数:%x为目标函数,输入字符串型,例如:x^2-sin(x)默认最优解求其最小值%a,b为其初始区间,默认闭区间,t1t2%对初始区间的要求:初始区间是单谷区间,函数求极小值%%=======================================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);%自定义函数,试探法求t0middle_value=x_inline(t0);%%拟合曲线,待定系数法%p(t0)=a0+a1*t0+a2*t0^2=f(t0)%p(t1)=a0+a1*t1+a2*t2^2=f(t1)%p(t2)=a0+a1*t2+a2*t2^2=f(t2)%推出:%a1=((t0^2-t2^2)*f(t1)+(t2^2-t1^2)*f(t0)+(t1^2-t0^2)*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))while 1t_ba=0.5*((t0^2-t2^2)*low_value+(t2^2-t1^2)*middle_value+(t1^2-t0^2)*high_value)/((t0-t2)*low_value+(t2-t1)*middle_value+(t1-t0)*high_value);t_ba_value=x_inline(t_ba);if abs(t_ba-t0)epsional t=t_ba; y=t_ba_value;break;else if t_bat0ift_ba_value=middle_va

文档评论(0)

liangyuehong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档