怎么定义一个分段函数 在matlab中 30
我要用fminsearch计算一个结果格式是[x,fval]=fminsearch(banana,[-1.2,1])因此要定义一个函数banana我要计算的是一个3维的分...
我要用fminsearch计算一个结果 格式是
[x,fval] = fminsearch(banana,[-1.2, 1])
因此要定义一个函数banana
我要计算的是一个3维的分段的函数
当x1<0时是 100 * (x(3) - 5/pi * atan(x(2)/x(1)))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2
当x1>=0时是 100 * (x(3) - 5/pi * (pi + atan(x(2)/x(1))))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2 展开
[x,fval] = fminsearch(banana,[-1.2, 1])
因此要定义一个函数banana
我要计算的是一个3维的分段的函数
当x1<0时是 100 * (x(3) - 5/pi * atan(x(2)/x(1)))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2
当x1>=0时是 100 * (x(3) - 5/pi * (pi + atan(x(2)/x(1))))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2 展开
4个回答
展开全部
matlab提供了了两种定义分段函数的方法:
常规方法:使用if...else...语句定义不同的分支
推荐方法:使用逻辑表达式将不同分支写成一个完整的函数表达式
下面进行举例说明:在matlab中定义如下分段函数
1、常规方法:
function y = fun(x)
if(x<1)
y = x;
elseif(x<2)
y = x^2;
else
y = x^3;
end
return
2、推荐方法:
function y = fun(x)
y = (x<1)*x + (x>=1&x<2)*x^2 + (x>=2)*x^3;
return
% 当然,也乐意直接写成匿名函数的形式
f = @(x) (x<1)*x + (x>=1&x<2)*x^2 + (x>=2)*x^3;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个很简单吧:
if(x1<0)
banana = ...;
else if(x1>=0)
banana = ...;
[x,fval] = fminsearch(banana,[-1.2, 1])
if(x1<0)
banana = ...;
else if(x1>=0)
banana = ...;
[x,fval] = fminsearch(banana,[-1.2, 1])
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询