分段二次插值的matlab程序,一维优化方法之二次插值法matlab程序

50bd3262609c783e7ce83e05b13c0fa1.png

程序为:

a=0;

b=pi/2;

a1=a;

a3=b;

a2=a;

a4=b;

while a3-a1>0.01

f1=-atan(2*sin(2*a1)/(5-cos(2*a1)));

f3=-atan(2*sin(2*a3)/(5-cos(2*a3)));

a2=(a1+a3)/2;

f2=-atan(2*sin(2*a2)/(5-cos(2*a2)));

c1=(f3-f1)/(a3-a1);

c2=((f2-f1)/(a2-a1)-c1)/(a2-a3);

if c2~=0

a4=0.5*(a1+a3-c1/c2);

f4=-atan(2*sin(2*a4)/(5-cos(2*a4)));

if (4-a1)*(a3-a4)>0

if a2

if f2

a3=a4;

else

a1=a2;

end

else

if f2

a1=a4;

else

a3=a2;

end

end

end

end

end

if f2

x=a2;

else

x=a4;

end

f=-atan(2*sin(2*x)/(5-cos(2*x)));

x=x*180/pi                    %最终结果

f=f*180/pi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值