2012-04-12 7 views
1

Я пытаюсь вычислить максимумы некоторой функции от одной переменных (что-то вроде этого :) plotМаксимизации в Mathematica с несколькими максимумами

(который рассчитывается из нетривиальной свертки, так нет, я не иметь выражение для него)

Использование команды:

NMaximize [{F [х], 0 < < х 1}, х, AccuracyGoal -> 4, PrecisionGoal -> 4]

(Я не беспокоюсь о супер точность, приблизительная оценка 10^-4 уже достаточна)

Результатом этого является x * = 0,55, что не так. (т. е. выбирает третий пик).

Есть ли способ сказать математике, что глобальные максимумы являются первыми при подсчете от x = 0 (я знаю, что это всегда так) или сделать математический поиск с лучшим подходом? (Обратите внимание, я не хочу, чтобы такие вещи, как метод стимулированного отжига, каждая оценка очень дорогостоящая!)

Большое спасибо!

+0

Вы пробовали FindMaximum со стартовой точкой 0 (или некоторым аналогичным значением)? –

+0

Хорошо. Я думаю, что это решило проблему. Я пробовал это раньше, но я забыл определить f (0) (что равно = 0), поэтому он хранил ошибки отправки на консоли неопределенного, но компьютер был отключен, поэтому я не знал ... - .- Можете ли вы отправить ответ, чтобы я мог принять его? –

ответ

4

Попробуйте FindMaximum с начальной точкой 0 или некоторым подобным же небольшим значением.