机械优化设计MATLAB程序
机械优化设计作业
用二次插值法求函数极小值,精度e=0.01。
在MATLAB的M文件编辑器中编写的M文件,如下:
f=inline('(t+1)*(t-2)^2','t')
a=0;b=3;epsilon=0.01;
t1=a;f1=f(t1);
t3=b;f3=f(t3);
t2=0.5*(t1+t3);f2=f(t2);
c1=(f3-f1)/(t3-t1);
c2=((f2-f1)/(t2-t1)-c1)/(t2-t3);
t4=0.5*(t1+t3-c1/c2);f4=f(t4);
k=0;
while(abs(t4-t2)>=epsilon)
if t2
if f2>f4
f1=f2;t1=t2;
t2=t4;f2=f4;
else
f3=f4;t3=t4;
end
else
if f2>f4
f3=f2;t3=t2;
t2=t4;f2=f4;
else
f1=f4;t2=t4;
end
end
c1=(f3-f1)/(t3-t1);
c2=((f2-f1)/(t2-t1)-c1)/(t2-t3);
t4=0.5*(t1+t3-c1/c