Qurak

Numerical nonlinear global optimization examples finding multiple optima method 2

Bài học 3 bước, chạy theo thứ tự trong một phiên. Từng bước đều được thực thi trên bộ máy và đầu ra bên dưới là những gì nó tạo ra.

Bước 1
Clear[f, pts, dots, cplot];
f[x_, y_] := (x^2 + y^2 - 16)^2;
Plot3D[f[x, y], {x, -5, 5}, {y, -5, 5}]
Đầu ra
-Graphics3D-
Bước 2
{sol, pts} = Reap[
	NMinimize[f[x, y], {{x, -5, 5}, {y, -5, 5}}, Method -> "DifferentialEvolution", EvaluationMonitor :> Sow[{x, y}, "VisitedPoint"]],
	"VisitedPoint"];
sol
Đầu ra
NMinimize[(-16 + x^2 + y^2)^2, {{x, -5, 5}, {y, -5, 5}}, Method -> DifferentialEvolution, EvaluationMonitor :> Sow[{x, y}, VisitedPoint]]
Bước 3
newpts = Cases[First[pts], x_ /; Abs[f@@x - First[sol]] ≤ .05];
rainbow[a_] := Hue[0.75 a, .5, 1];
dots = Graphics[Join[{PointSize[0.02], RGBColor[1, 1, 1], Point[#]& /@ newpts}, {{PointSize[0.02], RGBColor[0, 0, 0], Point[{x, y} /. Last[sol]]}}]];
cplot = ContourPlot[f[x, y], {x, -5, 5}, {y, -5, 5}, ColorFunction -> rainbow, Contours -> 4Range[0, 10] ^ 2, PlotPoints -> 50];
Show[cplot, dots]
Đầu ra
-Graphics-

Các hàm được dùng

Công thức liên quan

Tất cả công thức · Tài liệu tham chiếu hàm · Dùng cái này từ một client MCP