怎么定义一个分段函数 在matlab中

我要用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

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

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

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

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

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

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

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-11-14

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;

第2个回答  2010-04-24
这个很简单吧:
if(x1<0)
banana = ...;
else if(x1>=0)
banana = ...;
[x,fval] = fminsearch(banana,[-1.2, 1])本回答被网友采纳
第3个回答  2010-04-25
if x1<0

else

end

matlab分段函数怎么编写
1、首先在电脑桌面上打开MATLAB软件。2、然后点击matlab软件左上方的新建按钮,建立一个脚本文件。3、定义变量:a1=1.5;a2=2.5;X=0:0.001:5 4、建立循环,求解分段函数。5、采用piot(x,y)指令画图。6、展示最终的分段函数效果。

怎么定义一个分段函数 在matlab中
1、绘制分段函数图像,需要知道分段函数的表达式。来绘制分段函数图像,该函数分为三段。2、x的取值范围选取0到3,y的表达式书写如下图所示,表示为每段的函数表达式乘以x区间的逻辑表达式,如果x的值在范围内,就乘以1,不在范围内,就乘以0。3、点击回车键,运行程序,运行结果如下图所示,可以看到绘...

请教各位怎样用matlab定义一个分段函数
在MATLAB中定义一个分段函数的关键是明确其表达式并划分各个区间。首先,确定函数的x取值范围,例如0到3,这是分段函数的基础。接下来,对于y值的计算,我们需要为每个区间定义特定的函数表达式。这些表达式会乘以x在该区间内的逻辑值(1表示在范围内,0表示不在),确保按照区间划分进行计算。具体步骤如下...

这个用matlab怎么实现?
该分段函数用matlab可以这样来实现。1、自定义函数。即 fx=@(x)x.^2.*(x>=1)+1.*(x>-1 & x<1)+(3+2*x).*(x<=-1);2、取x的范围。如 x=-2:0.5:2 3、计算y(x)值 y=fx(x)【执行结果】

matlab分段函数怎么编写
1、第一步,在计算机桌面上打开MATLAB软件,如下图所示。2、其次,完成上述步骤后,单击matlab软件左上方的“新建”按钮以创建脚本文件,如下图所示。3、接着,完成上述步骤后,定义变量,如下图红框标注所示。4、然后,完成上述步骤后,建立一个循环来求解分段函数,如下图所示。5、随后,完成上述步骤...

MATLAB求分段函数,怎么写代码呀
怎样用matlab来定义分段函数,首先要根据分段函数建立自定义函数,然后在命令窗口调用或其他程序里调用。现举例说明:1、建立自定义函数文件,piecewise1.m function y=piecewise1(t)分段函数 n=length(t); %计算所输入t的个数 for i=1:n if t(i)>=2 %如果t>=2时,y=1 y(i)=1;else...

MATLAB如何用if自定义分段函数
1、与建立M文件类似,在命令窗口中输入edit。2、编写函数,需要注意函数命名规则,注释部分可有可无,用%开始。3、编写完成后保存文件,最好保存在当前工作路径的文件夹。4、直接输入函数名,形参,就能返回计算结果。5、和查看其它函数说明一样,输入“help 函数名” 就能看到这个函数的注释说明。

MATLAB 如何实现分段函数
1、首先我们确定下所画的函数 sin(2*x) 0<=x<=pi 2*x pi<x<=5 0 其余的x 2、然后我们介绍下匿名函数f=@(x) sin(2*x) 此时我们就定义了一个sin(2*x)函数。3、接着我们限制sin(2x)的定义域,(x>=0 & x<=pi) 这里&表示并且的意思。4、我们按同样的方法定义...

matlab做分段函数图像?
1、建立自定义分段函数 fun=@(x)x.^3.*(x<-2*pi)+x.*sin(2*pi*10*x).*(x>=-2*pi & x<=2*pi)+x.*(x>2*pi);2、按各段区间取值,计算各段函数值 x=-3*pi:pi\/10:-2*pi %第一段 y=fun(x)plot(x,y),hold on x=-2*pi:pi\/10:2*pi %第二段 y=fun(x)p...

这个用matlab怎么做?
1、首先我们自定义分段函数,可以用句柄函数@(x)、也可以用匿名函数inline或函数体function来定义。func=@(x)2*x.*(x>0 & x<=0.5)+2*(1-x).*(x>0.5 & x<=1);2、使用fplot函数绘图 fplot(func,[0,1])3、标注坐标轴名称 xlabel('x'),ylabel('y')...

相似回答