怎么定义一个分段函数 在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
展开
 我来答
刺友互
高粉答主

2019-05-29 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:65.9万
展开全部

1、绘制分段函数图像,需要知道分段函数的表达式。来绘制分段函数图像,该函数分为三段。

2、x的取值范围选取0到3,y的表达式书写如下图所示,表示为每段的函数表达式乘以x区间的逻辑表达式,如果x的值在范围内,就乘以1,不在范围内,就乘以0。

3、点击回车键,运行程序,运行结果如下图所示,可以看到绘制的分段函数图像,一次性就绘制成功了。

4、分段函数为三段,每个x区间内有对应的y值表达式。

5、书写y的值如方框处所示,表达出了y的函数值。

6、点击回车键,开始运行程序,运行结果如下图所示,分段函数绘制成功了。

learneroner
高粉答主

推荐于2016-11-14 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:6369万
展开全部

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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangfanxing__
2010-04-24 · TA获得超过2781个赞
知道小有建树答主
回答量:2727
采纳率:0%
帮助的人:1325万
展开全部
这个很简单吧:
if(x1<0)
banana = ...;
else if(x1>=0)
banana = ...;
[x,fval] = fminsearch(banana,[-1.2, 1])
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91e6c8d
2010-04-25
知道答主
回答量:21
采纳率:0%
帮助的人:0
展开全部
if x1<0

else

end
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式