在MATLAB中查找曲面的最小值和最大值

时间:2016-10-13 16:03:06

标签: matlab polynomials

我刚开始使用MATLAB。我想找到这个二次多项式曲面的最小值和最大值。

f(x,y) = 4490  + 8902*x + 1.385e+05*y + 9.497*x^2 + -9928*x*y + 1.481e+05*y^2;

我知道如何计算1度函数的最小值和最大值,但我无法获得更高度函数的任何线索。任何建议,将不胜感激。

2 个答案:

答案 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