怎么用matlab求一个三元二次函数的最小值?

函数是Y= -22.92X1+52.32X2+10.90X3+2.62X1X2-11.41X1X3+17.93X2X3+1.58X1^2-28.57X2^2+18.11X3^2+220.65,X1,X2,X3的取值范围都是[-1.682,1.682],希望能给我写一下具体的编程,还有X0怎么取值?谢谢大家了

Y=@(X) -22.92*X(1)+52.32*X(2)+10.90*X(3)+2.62*X(1)*X(2)-11.41*X(1)*X(3)+17.93*X(2)*X(3)+1.58*X(1)^2-28.57*X(2)^2+18.11*X(3)^2+220.65;
x0=[1 1 1];lb=-1.682*[1 1 1];vb=1.682*[1 1 1];options = optimset('algorithm','active-set');
[X Y]=fmincon(Y,x0,[],[],[],[],lb,vb)

按上面语句试试追问

这个不对啊,求得的最小值比有些值还要大啊

追答

运行上面的程序 ,结果是:
X =
1.6820 -1.6820 1.0616
Y =
-10.0826
X在要求的范围内,
你觉得有差别,可改变初始值,x0=[0 0 0],等,再试试,可能有不同的结果。因为,不同的初值,得到不同位置的最小值,一个函数可能有多个局部极值。

温馨提示:答案为网友推荐,仅供参考