正確なコードを共有していなかったため、1つのソリューションのみを取得するために何をしたかわかりませんが、シンボリックツールボックスを使用してこの子犬を解決できます。
% # 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