0

快速提问,我希望有人可以在这里帮助我。我试图找到函数的所有关键点:

f(x,y) = 0.05 * (1-12x+20x^2) * (1-7y+10y^2) * exp(-(x^2/6+y^2/3))

当我照常做fx = diff(f(x,y),x)然后fy = diff(f(x,y),y)调用[xcr,ycr] = solve(fx,fy)它时,只会给我一个解决方案……我知道还有更多。

这可能是因为有无数种解决方案,而这就是其中之一吗?有没有解决的办法?

谢谢!

4

1 回答 1

4

你没有分享你的确切代码,所以我不知道你做了什么来得到一个解决方案,但你可以使用符号工具箱来解决这只小狗:

% # Define the function f(x, y)
syms x y
f = 0.05 * (1 - 12*x + 20*x^2) * (1 - 7*y + 10*y^2) * exp(-(x^2 / 6 + y^2/3));

% # Find the partial derivatives
f_x = diff(f, x);
f_y = diff(f, y);

% # Find the critical points
[xcr, ycr] = solve(f_x, f_y);
p = double([xcr(:), ycr(:)]);

% # Discard the complex solutions
p(imag(p(:, 1)) > eps, :) = [];
p(imag(p(:, 2)) > eps, :) = [];
p = real(p);

xcr = p(:, 1)
ycr = p(:, 2)

这实际上产生了 13 个解决方案:

xcr =             ycr =

    0.5000            0.2000
    0.5000            0.5000
    0.1000            0.2000
    0.1000            0.5000
    2.6133            1.9238
   -2.3113            1.9238
    0.2980            1.9238
    2.6133           -1.5711
   -2.3113           -1.5711
    0.2980           -1.5711
    2.6133            0.3474
   -2.3113            0.3474
    0.2980            0.3474
于 2012-11-09T01:28:55.583 回答