用matlab语句实现下面的分段函数,matlab求解分段函数问题是如何用下面的算法求解下面的分段函数 爱问知识人...

问题是如何用下面的算法求解下面的分段函数,目前出现的问题是:??? Error using ==> at 11Function 'gt' is not implemented for MuPAD symbolic objects.Error in ==>

问题是如何用下面的算法求解下面的分段函数,目前出现的问题是:??? Error using ==> at 11Function 'gt' is not implemented for MuPAD symbolic objects.Error in ==> f13 at 7if x(i)>aError in ==> MyPowell at 12ff=feval(fun,x);目标函数是一分段函数:分段函数为:n=30 function f=f13(x)h=0;g1=0;g2=0;g3=0; a=5;k=100; m=4;for i=1:29h=h+(x(i)-1)^2*(1+(sin(3*pi*x(i+1)))^2);endfor i=1:30if x(i)>ag1=g1+k*(x(i)-a)^m;elseif x(i)MaxLength,MaxLength=llength;m=m+1;endx0=xx;endss=x0-x00;ReflectX=2*x0-x00;f1=feval(fun,x00);f2=feval(fun,x0);f3=feval(fun,ReflectX);if f3f3, x0=ReflectX;endendif norm(x00-x0)=ft1 t2=t1+step;ft2=subs(f,{x},{t2}); while ft1>ft2 t0=t1; %ft0=ft1; t1=t2;ft1=ft2; step=2*step;t2=t1+step;ft2=subs(f,{x},{t2}); endelse step=-step; t=t0;t0=t1;t1=t;ft=ft0; %ft0=ft1; ft1=ft; t2=t1+step;ft2=subs(f,{x},{t2}); while ft1>ft2 t0=t1; %ft0=ft1; t1=t2;ft1=ft2; step=2*step;t2=t1+step;ft2=subs(f,{x},{t2}); endendoutput=[t0,t2]; 和function output=OneDemensionslSearch(f,x,s,r) if nargin<4,r=1e-6;end a=s(1);b=s(2); a1=a+0.382*(b-a);fa1=subs(f,{x},{a1}); a2=a+0.618*(b-a);fa2=subs(f,{x},{a2}); while abs((b-a)/b)>r && abs((fa2-fa1)/fa2)>r if fa1

展开

全部

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值