我刚开始使用MATLAB。我想找到这个二次多项式曲面的最小值和最大值。
f(x,y) = 4490 + 8902*x + 1.385e+05*y + 9.497*x^2 + -9928*x*y + 1.481e+05*y^2;
我知道如何计算1度函数的最小值和最大值,但我无法获得更高度函数的任何线索。任何建议,将不胜感激。
答案 0 :(得分:0)
评估Run, %comspec% /c "start c:\Users\myacc\path\solution.sln"
和所有x
的功能,并找到该矩阵的y
/ min
:
max
答案 1 :(得分:0)
让我们首先定义你想要找到最小值的x,y的范围。然后制作一个网格,它基本上是一个包含x和y作为坐标的矩阵。然后将所有这些点的函数评估为z,它也是一个矩阵。 z的每个成员位于类似于x和y的位置作为输入。然后找到z矩阵的最小值的位置。最后2个命令应该给出最小值发生的位置坐标。
x=1:100;
y=1:100;
[X,Y]=meshgrid(x,y); %
z = 4490 + X.*8902 + Y.*1.385e+05 +X.^2*9.497 X.*Y.*9928+Y.^2*1.48e+05;
[X,Y]=meshgrid(x,y);
surf(x,y,z) % plotting the curve
[Row,Col]=find(z==min(min(z)))
x(Row) % x coordinate
y(Col) % y coordinate