快速提问,我希望有人可以在这里帮助我。我试图找到函数的所有关键点:
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)
它时,只会给我一个解决方案……我知道还有更多。
这可能是因为有无数种解决方案,而这就是其中之一吗?有没有解决的办法?
谢谢!
快速提问,我希望有人可以在这里帮助我。我试图找到函数的所有关键点:
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)
它时,只会给我一个解决方案……我知道还有更多。
这可能是因为有无数种解决方案,而这就是其中之一吗?有没有解决的办法?
谢谢!
你没有分享你的确切代码,所以我不知道你做了什么来得到一个解决方案,但你可以使用符号工具箱来解决这只小狗:
% # 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