fminunc求最小值的函数表达
fminunc在求最小值时,如果含有多个自变量,自变量似乎只能用数组的形式表示,写成x(1) x(2)......这样的形式,而不能表示成x1 x2 ......的形式。但是很多情况下,函数表达式预先并不知晓,需要求解,其中的自变量不能写成数组形式。这个怎么办呢?我尝试过在计算函数表达式时用x1 x2的形式表示自变量,然后将表达式转化成字符串,再将其中的x1替换成x(1),再用sym将字符串转化成表达式,但起不到效果,转换后它不把x(1)看成数组。
不用这么麻烦吧>> f = @(x1,x2,x3)3*x1^2 + 2*x1*x2 + x2^2
f =
@(x1,x2,x3)3*x1^2+2*x1*x2+x2^2
>> = fminunc(@(x)f(x(1),x(2)),)
Warning: Gradient must be provided for trust-region algorithm;
using line-search algorithm instead.
> In fminunc at 365
Local minimum found.
Optimization completed because the size of the gradient is less than
the default value of the function tolerance.
<stopping criteria details>
x =
1.0e-006 *
0.2541 -0.2029
fval =
1.3173e-013 thanks!
原来是这么表达的。我也尝试过,就是调用的时候写成了fminunc(@(x1,x2),).
多谢多谢!
页:
[1]