Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 最小化多变量函数_Matlab_Minimization - Fatal编程技术网

Matlab 最小化多变量函数

Matlab 最小化多变量函数,matlab,minimization,Matlab,Minimization,我知道fminsearch函数,但它似乎只能解一个变量 如果我的函数看起来像f(x,y,z),我想找到得到最低结果的x,y,z的值,我应该如何在MatLab中实现这一点?f的复杂性使得计算偏导数变得异常困难 任何帮助都将不胜感激,谢谢 fminsearch是多变量的,例如: a = fminsearch(@(x)((x(1)-1)^2+(x(2)-2)^2), [0,0]); 传递给目标函数的参数可以是向量,只需确保将x0参数(fminsearch中的第二个参数)指定为正确的大小。fminse

我知道fminsearch函数,但它似乎只能解一个变量

如果我的函数看起来像f(x,y,z),我想找到得到最低结果的x,y,z的值,我应该如何在MatLab中实现这一点?f的复杂性使得计算偏导数变得异常困难


任何帮助都将不胜感激,谢谢

fminsearch是多变量的,例如:

a = fminsearch(@(x)((x(1)-1)^2+(x(2)-2)^2), [0,0]);

传递给目标函数的参数可以是向量,只需确保将x0参数(fminsearch中的第二个参数)指定为正确的大小。

fminsearch是多变量的,例如:

a = fminsearch(@(x)((x(1)-1)^2+(x(2)-2)^2), [0,0]);

传递给目标函数的参数可以是向量,只需确保将x0参数(fminsearch中的第二个参数)指定为正确的大小。

因此,在本例中,@(x)表示一个包含两个元素x(1)和x(2)的数组。那么[0,0]代表什么呢?x(1)从0开始,x(2)从0开始?谢谢确切地说,
[0,0]
是该算法的起点,它的大小决定了优化中变量的数量只是为了澄清,@(x)是一个内联匿名函数减速,上面的例子是:
函数y=f(x)y=((x(1)-1)^2+(x(2)-2)^2)
<代码>a=fminsearch(f[0,0])我得到一个错误:min=fminsearch(GetJointMle[0,0,0])???输入参数“x”未定义。在5 alpha=x(1)处==>GetJointMle出错;我的错误是,函数名周围应该有撇号,比如so
min=fminsearch('GetJointMle',[0,0,0])。如果没有撇号,则调用GetJointMle时不带参数,并将结果作为第一个参数传递给fminsearch…因此在本例中,@(x)表示一个包含两个元素x(1)和x(2)的数组。那么[0,0]代表什么呢?x(1)从0开始,x(2)从0开始?谢谢确切地说,
[0,0]
是该算法的起点,它的大小决定了优化中变量的数量只是为了澄清,@(x)是一个内联匿名函数减速,上面的例子是:
函数y=f(x)y=((x(1)-1)^2+(x(2)-2)^2)
<代码>a=fminsearch(f[0,0])我得到一个错误:min=fminsearch(GetJointMle[0,0,0])???输入参数“x”未定义。在5 alpha=x(1)处==>GetJointMle出错;我的错误是,函数名周围应该有撇号,比如so
min=fminsearch('GetJointMle',[0,0,0])。如果没有撇号,则调用GetJointMle时不带参数,并将结果作为第一个参数传递给fminsearch…在fminsearch文档中,请参见示例1…在fminsearch文档中,请参见示例1。。。