Я хочу найти численное решение уравнения, выраженного как бесконечная сумма в Python. Упрощенный пример использования fsolve()
и sympy
будет:Поиск численного решения уравнения, выраженного в виде суммы в Python
from scipy.optimize import fsolve
import math
from sympy import *
i = symbols('i', integer=True)
def f(x):
return Sum(x**i, (i,0, oo)).evalf(10)-1
print fsolve(f, 0.5)
Я получаю сообщение об ошибке:
AttributeError: 'list' object has no attribute 'is_commutative'
Я попытался подставляя бесконечную сумму с суммой с конечным числом членов, а также литье функция f() выводит тип float, но я получил ту же ошибку. Хотя это кажется простой задачей, я не мог найти решение этой проблемы в StackOverflow или в документации.
Мой вопрос: как я численно решаю уравнения, выраженные с использованием суммы в Python.
Интересно, что Brentq не вызывает ошибку, однако ошибка по-прежнему сохраняется для fsolve в случае сумм, которые сходятся для всех действительных чисел. Это решило мою проблему. –