matlab 解目标函数,对分法求解目标函数最优解函数MATLAB实现

%%对分法求解目标函数最优解函数

function [t,y]=equation_extremum(x,~,a,b,epsional)

%%=======================================

%函数默认参数:

%x为目标函数,输入字符串型,默认最优解求其最小值

%a,b为其初始区间,默认闭区间,a

%对初始区间的要求:初始区间是单谷区间,函数求极小值%则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_value>0

t='本函数不可解';

y='给定初始区间非单谷区间';

else if high_value*low_value==0

ifhigh_value==0

t=b;

y=x_inline(t);

else t=a;

y=x_inline(t);

end

else

while abs(high_value-low_value)>=epsional;

c=1/2*(b+a);

t=c;

middle_value=func_diff_inline(t);

ifmiddle_value>0

high_value=middle_value;

b=c;

else if middle_value<0

low_value=middle_value;

a=c;

else if middle_value==0

break;

end

end

end

end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值