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有α
β
γ这种参数的。

MATLAB的fminsearch函数求解多元函数的最小值
首先,我们来看一下fminsearch的基本用法。该函数的核心目的是寻找函数的局部最小值点,输入是目标函数的定义和初始搜索点,输出则是找到的最小值点和对应的函数值。函数原型大致如下:[minVal, minPoint] = fminsearch(objectiveFunction, initialGuess)其中,objectiveFunction是你定义的多变量函数,initial...

MATLAB求极小值
本文将介绍MATLAB中用于求解极小值的两个函数:fminbnd和fminsearch。首先,我们介绍fminbnd函数,它用于求解单变量非线性函数的最小值。语法为:[x,y]=fminbnd(h_fun,x1,x2,options),其中h_fun是函数句柄,'funname'是函数名,必须是单值非线性函数;options是用来控制算法的参数向量,默认值为0可...

求助:如何在matlab中调用fminsearch函数
fminsearch函数是用于求解多变量无约束函数的最小值。fminsearch函数基本调用格式有,[x,fval,exitflag] = fminsearch(fun,x0)式中:fun——多元函数表达式,y=f(x),x=x1,x2。。。;x0——初始值;x——返回多元函数y=f(x)在初始值x0附近的局部极小值(局部极大值)点;fval——返回局部极...

关于matlab中的fminsearch函数的使用
从你的初始值看k和G都是变量,若是,则将两个变量处理成一个向量来给fminsearch。xout = fminsearch(@(x)StdMonochrome(x(1),x(2)),[-1,-1]);xout(1)为搜索的k,xout(2)为搜索的G,k,G的初始值均为-1 但从你调用fminsearch的语句来看只有k是变量,若是,可以写成kout=fminsearch(@...

求助:如何在matlab中调用fminsearch函数
fminsearch的用法 [最小值点,最小值]=fminsearch(函数,初值)fminsearch是不能设定约束范围的 以下令x=[x1 x2 y1 y2]wa=[0,1;1,5;,2,4;3,4];wb=[4,1;5,2];p=[10,11,8,15];p1=[8,22];f=@(x)(sqrt(abs(x(1)-wa(1,1))^2+abs(x(3)-wa(1,2))^2)*p(1)+...

已知各点之间距离,如何用matlab求各点坐标已知各点之间的
接着,我们使用 `fminsearch` 对这个函数进行最小化,求解优化问题,并输出最优解。下面是 `get_distance` 函数的代码,此函数用于计算当前点坐标下点之间的距离矩阵与给定的距离矩阵 `d` 之间的差异:```matlab function err = get_distance(x, d)x: n个点的坐标 d: n个点之间的距离 n = ...

如何求matlab图像的极大值
求matlab图像的极大值,可以用fminsearch()极小值函数来求解。用fminsearch()求极大值问题,应将表达式改为反函数形式。例:求f(x)=2xexp(-5x)在原点附近的极大值,并作图标注极大值位置。解:问题等价于-f(x)的极小值 [x1,f1]=fminsearch(@(x)-(2*x.*exp(-5*x)),0)plot(x1,...

用matlab fminsearch 函数怎么求z=2x^2+3y^2-4xy-y-3x的最小值?
banana = @(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;[x,fval] = fminsearch(banana,[-1.2, 1])针对lz的题,则是:z=@(x)2*x(1).^2+3*x(2).^2-4*x(1).*x(2)-x(2)-3*x(1);[x,fval]=fminsearch(z,[-2,0])但是lz题中给定了限定条件,即x,y从属于一个闭...

MATLAB中如何选出二元二次方程解的最大值
用MATLAB求二元二次方程的最大值,可以用fminsearch()极小值函数来求。求解时,因将求解函数写成反函数的形式。如求f(x,y)=34.052x+399.014y-0.201x²-55.529y²+4.508xy-1019.389的极大值,则问题等价于求-f(x,y)。解决过程:>> fun=@(x) -(34.052*x(1)+399.014...

请教matlab 的问题,关于fminsearch
fminsearch只接受一个输入参数的函数 用匿名函数的办法传递额外的参数 fminsearch(@(a) sr(a,x,y), [-232.8, -83700]);

相似回答