Найти ВСЕ локальные максимумы функции

Привет всем, я пытаюсь найти ВСЕ максимумы функции и построить точки, где находятся максимумы.

Функция:

U[x_,y_,a_]:=-((1-a)/Sqrt[(x-a)^2+y^2])-a/Sqrt[(x+1-a)^2+y^2]- 0.5*(x^2+y^2);

Конечно, это 3D-функция, но я также доволен, если кто-нибудь даст мне код для поиска всех максимумов с 2D-версией функции. Привожу график функции.

points1=Table[{x, 2*U[x, 0, a]}, {x, -1.5, 1.5,0.005}];

ListPlot[points1, Joined->True,PlotRange->{{-1.5,1.5},{-5.5,-3.0}},

AxesLabel->{"x","cost. di Jacobi"}]

Я видел похожий пост, но с более сложной функцией, поэтому я не могу понять, как изменить код: https://mathematica.stackexchange.com/questions/5575/how-to-find-all-the-local-minima-maxima-in-a-range< /а> .

Кто-нибудь может мне помочь? Спасибо.


person federico    schedule 07.03.2013    source источник


Ответы (1)


я, наконец, решить 2d проблему с максимизацией. Посмотрите, как я решаю проблему!

a=0.23;
J=-3.5;
U[x_,y_,a_]:=-((1-a)/Sqrt[(x-a)^2+y^2])-a/Sqrt[(x+1-a)^2+y^2]- 0.5*(x^2+y^2);

f[x_] := U[x, 0, a];
g[x_] := J;

{max1,val1} = Maximize[{U[x,0,a], x < a-1}, x];

{max2,val2} = Maximize[{U[x,0,a], a-1 < x < a}, x];

{max3,val3} = Maximize[{U[x,0,a], x > a}, x];

sol = x /. NSolve[g[x] == f[x] && -1.5 < x < 1.5, x];

Show[
    Plot[{f[x], g[x]}, {x, -1.5, 1.5},AxesLabel->{"x","cost. di Jacobi J(x,a)"},
        Epilog -> { 
            {Red, PointSize[0.025], 
            Point[{x /. val1, max1}], 
            Point[{x /. val2, max2}],
            Point[{x /. val3, max3}],
            Text["\!\(\*SubscriptBox[\(L\), \(1\)]\)",{x /. val1, max1-0.4}],
            Text["\!\(\*SubscriptBox[\(L\), \(2\)]\)",{x /. val2, max2-0.4}],
            Text["\!\(\*SubscriptBox[\(L\), \(3\)]\)",{x /. val3, max3-0.4}]},
            {Black, PointSize[0.025], 
            Point[{a, -6.0}],
            Point[{a-1, -6.0}],
            Text["Cost. di Jacobi \!\(\*SubscriptBox[\(J\), \(0\)]\)",{1.0, J-0.2}]}
                }
        ],
    ListPlot[{#, g[#]} & /@ sol, PlotStyle -> PointSize[Large]]
]
person federico    schedule 08.03.2013
comment
Так что проблема с функцией 3D. Потому что я не могу понять, как использовать maximise в этом случае. - person federico; 08.03.2013