Реферат: Пользовательская функция может быть сформулирована в SymPy, производные которой могут быть получены почти автоматически, а числовые функции для целевой функции и ее производных могут быть получены lambdify
. Используя функцию lambdify
ed Python, вы не торгуете эффективностью из-за символической оценки. Кроме того, мы можем использовать пакет оптимизации SciPy, который содержит метод Ньютона.
scipy.optimize.minimize
предлагает метод Ньютона. Вы можете накормить его своей целевой функцией и ее производным и получить результат.
Использование символической математики в вашем исходном коде для меня не имеет смысла, поскольку оно касается конкретной математической формулы. Используйте NumPy, и вы получите лучшую производительность исполнения.
Если вы хотите предложить общий математический интерфейс для различных математических формул, SymPy отлично, потому что мы можем наслаждаться его производными функциональными возможностями.
Несколько месяцев назад я играл с комбинацией SymPy и SciPy, чтобы сделать физическую модель пружинных тел.
https://github.com/wakita/symdoc/blob/master/kk.ipynb
- Формула целевой функции приведено в работе [9].
- Функция Python, соответствующая целевой функции, получена в In [10].
- Производные целевой функции получены в работе [14].
- Минимизация на основе Ньютона выполняется в [19]. Он использует производные первого и второго порядка целевой функции.
Красота использования SymPy заключается в том, что, как вы видите в моем примере, я не разбираюсь в сложном вычислении производных вообще и для другого, решение имеет дело с любой формулой, выраженной в SymPy.
Обратите внимание, что если ваш вопрос хорош и о основах python, не нужно называть его «срочным».Вы получите 7 ответов в 45 наносекундах со всеми людьми, голодающими на хорошие вопросы в этот воскресный вечер :) –
Итак, вы говорите, что это то, что у вас есть до сих пор, но есть ли проблемы с этим? Это вызывает ошибки? Не дает ли он правильных результатов? – ayhan
Я вижу, что 'print (newtroot (function, t))' не передает 3 параметра выше и передает 'function' вместо' f'. А что такое функция, отлитая как целое ??? –