我要用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、点击回车键,开始运行程序,运行结果如下图所示,分段函数绘制成功了。
matlab提供了了两种定义分段函数的方法:
常规方法:使用if...else...语句定义不同的分支
推荐方法:使用逻辑表达式将不同分支写成一个完整的函数表达式
下面进行举例说明:在matlab中定义如下分段函数
1、常规方法:
function y = fun(x)2、推荐方法: