matlab中fminsearch的使用

我想求的是一个分段函数如下
x(1) > 0
f = 100 * (x(3) - 5/pi * atan(x(2)/x(1)))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2
x(1) < 0
f = 100 * (x(3) - 5/pi * (pi + atan(x(2)/x(1))))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2
这个怎么利用fminsearch求最小值? 初始点是(-1,0,0)

另外 如果我想定义fminsearch中的参数α β γ应该怎么写?

谢谢啦
谢谢啦 我还想知道怎么定制fminsearch中的参数α β γ 应该加个什么命令呢?

第1个回答  推荐于2016-07-20
f =@(x)(x(1)>0)*(100*(x(3)- 5/pi * atan(x(2)/x(1)))^2 + (sqrt(x(1)^2+x(2)^2) - 1)^2 + x(3)^2)+(x(1)<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,val]=fminsearch(f,[-1 0 0])
————————————————————
听不懂,从来没听说过fminsearch有α β γ这种参数的。本回答被提问者采纳
第2个回答  2019-11-18
f
=@(x)(x(1)>0)*(100*(x(3)-
5/pi
*
atan(x(2)/x(1)))^2
+
(sqrt(x(1)^2+x(2)^2)
-
1)^2
+
x(3)^2)+(x(1)<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,val]=fminsearch(f,[-1
0
0])
————————————————————
听不懂,从来没听说过fminsearch有α
β
γ这种参数的。