fsolve для функции с exp - PullRequest
       0

fsolve для функции с exp

0 голосов
/ 18 февраля 2020

Я пытаюсь решить нелинейное уравнение с помощью Python и Сципи, вот простой ввод:

from numpy import exp
from scipy.optimize import fsolve

def func(x):
    return 5*x*(2*x-1+exp(2*x))-5


x0 = fsolve(func,0)

print(x0)

Однако выполнение функции приводит к сообщению RuntimeWarning: overflow encountered in exp. Использование Matlab и fzero с одной и той же функцией работает нормально и возвращает 0,4385 для root.

Как я могу решить эту проблему?

1 Ответ

1 голос
/ 18 февраля 2020

использование 0 в качестве начальной оценки вызывает некоторые проблемы, вы можете использовать любое произвольное значение, а если вы хотите начать с нуля, используйте что-то вроде 1e-6

from numpy import exp
from scipy.optimize import fsolve

def func(x):
    return 5*x*(2*x-1+exp(2*x))-5


x0 = fsolve(func,1e-6)

print(x0)

yields

[0.43848533]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...