欢迎来到天天文库
浏览记录
ID:59339911
大小:14.00 KB
页数:2页
时间:2020-09-04
《线性搜索法MATLAB程序实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、function[y,dy]=fx(a)%要优化的目标函数%返回值:y,函数在a点处的值;dy,函数在a点处的导数值symsx;f=sym('0.00723*x^0.1+0.03*x^(-1)');y=subs(f,a);dy=subs(diff(f),a);endx0=50;%起始点epsilon=1e-6;%迭代精度num=0;%迭代次数[y0,dy0]=fx(x0);whileabs(dy0)>epsilonx00=x0;y00=y0;step=abs(dy0)*1e2;%步长的初始值[y1,dy1]=fx
2、(x0-dy0*step);if(y1>=y0)whiley1>=y0step=step/2;[y1,dy1]=fx(x0-dy0*step);endifabs(y1-y0)/abs(y0)<=1e-2;break;endy0=y1;dy0=dy1;%新的一点x0=x0-dy0*step;elsewhiley13、=epsilon;break;endy0=y1;dy0=dy1;endnum=num+1;ifnum>=200break;endendbest_x=x0;%最优点holdoff;fprintf('当A取值%.4f',best_x);fprintf('Cd有最小值%.4f',fx(best_x));fprintf('迭代次数等于%.4f',num);x=10:1:100;%作出图形y=fx(x);plot(x,y);xlabel('面积A');ylabel('阻力系数Cd');title('阻力系数曲线4、')gridon;holdon;
3、=epsilon;break;endy0=y1;dy0=dy1;endnum=num+1;ifnum>=200break;endendbest_x=x0;%最优点holdoff;fprintf('当A取值%.4f',best_x);fprintf('Cd有最小值%.4f',fx(best_x));fprintf('迭代次数等于%.4f',num);x=10:1:100;%作出图形y=fx(x);plot(x,y);xlabel('面积A');ylabel('阻力系数Cd');title('阻力系数曲线
4、')gridon;holdon;
此文档下载收益归作者所有