Я пытаюсь найти корни функции F(f)
, изменяя значения параметра x
с помощью scipy.optimize.fsolve
.Вот код:
from scipy.optimize import fsolve
import numpy as np
def F(f,*x):
return np.cosh(((x-1)/(x+1))*(np.log(2)/f))-0.5*np.exp(np.log(2)/f)
x = np.logspace(0,3,100)
y = np.arange(x.size)
for i in range(x.size):
y = fsolve(F, 0.5, args = x[i])
Код выше возвращает:
TypeError: unsupported operand type(s) for -: 'tuple' and 'int'
Самое смешное, что этот же код работает, когда я заменяю F(f,x)
на простую функцию, тамнет TypeError
def F(f,*x):
return (2*np.cos(f)-f)*x
x = np.logspace(0,3,100)
y = np.arange(x.size)
for i in range(x.size):
y = fsolver(F, 0.5, args=x[i])
Что это за первая функция, которая вызывает ошибку типа, когда вторая функция просто в порядке?