0

Предположим, что у меня есть гладкая нелинейная функция f: R^n -> R с (известным) максимальным числом корней N. Как я могу найти корни эффективно? Прямо сейчас я вычислил функцию в сетке на предварительно выбранной области, уточнил сетку, где функция находится ниже предопределенного порога, и продолжила эту процедуру, но это не кажется очень эффективным, хотя, поскольку я заметил, что это трудно правильно выбрать область до и соответственно определить порог.Найти все корни нелинейной функции

+0

Попробуйте здесь: http://math.stackexchange.com/ – ceving

ответ

0

Есть несколько способов, чтобы идти об этом, конечно, SciPy известно, содержит наиболее безопасный и эффективный метод для нахождения одного корня условия, что вы знаете, интервал: scipy.optimize.brentq

найти больше корней, используя некоторую оценку вы можете использовать: scipy.optimize.fsolve

де формул Муавра использовать для корневой находки, что является достаточно быстро по сравнению с другими (в случае, если вы предпочитаете строить свой собственный метод): дано комплексное число enter image description here

русские корни по формуле:

enter image description here

где к пробегает целые значения от 0 до п - 1.

0

Вы можете квадратуру функцию и использовать глобальные оптимизации программного обеспечения, чтобы найти все минимумов внутри домена и выберите те, у которых есть нулевое значение. Стохастические многошаговые методы глобальной оптимизации с кластеризацией вполне подходят для этой задачи.

 Смежные вопросы

  • Нет связанных вопросов^_^