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

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

ID:60790251

大小:11.75 KB

页数:4页

时间:2020-12-18

对分法求解目标函数最优解函数MATLAB实现.docx_第1页
对分法求解目标函数最优解函数MATLAB实现.docx_第2页
对分法求解目标函数最优解函数MATLAB实现.docx_第3页
对分法求解目标函数最优解函数MATLAB实现.docx_第4页
资源描述:

《对分法求解目标函数最优解函数MATLAB实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、%%对分法求解目标函数最优解函数function[t,y]=equation_extremum(x,~,a,b,epsional)%%=======================================%函数默认参数:%x为目标函数,输入字符串型,默认最优解求其最小值%a,b为其初始区间,默认闭区间,a=0;%%=======================================symst;x_inline=inline(sym(x));func_diff=diff(sym(x))

2、;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_value>0t='本函数不可解';y='给定初始区间非单谷区间';elseifhigh_value*low_value==0ifhigh_value==0t=b;y=x_inline(t);elset=a;y=x_inline(t);endelsewhileabs(high_value-low_value)>=epsional;c=1/2*(b+a

3、);t=c;middle_value=func_diff_inline(t);ifmiddle_value>0high_value=middle_value;b=c;elseifmiddle_value<0low_value=middle_value;a=c;elseifmiddle_value==0break;endendendendc=1/2*(b+a);t=c;y=x_inline(t);endend运行代码:%%========================closeall;clearall;clc;%%目标函数symst;[t,y]=equation_extremum('t*(

4、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为其初始区间,默认闭区间,t1

5、line=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^

6、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))while1t_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);ifabs(t_ba-t

7、0)t0ift_ba_value<=middle_valuet1=t0;t0=t_ba;low_value=middle_value;middle_value=t_ba_value;elset2=t_ba;high_value=t_ba_value;endelseift_ba_value<=middle_valuet2=t0;t0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。