Я пытаюсь найти корни моего уравнения, но я получаю ошибку, что объект «numpy.ndarray» не может быть вызван

#python #numpy

Вопрос:

Я пытаюсь найти корни своего уравнения, но получаю ошибку, которая :

 "numpy.ndarray" object is not callable
 

мой код:

 import numpy as np
from scipy.optimize import fsolve

q = (3 * np.sin(t / np.sqrt(2))) - (np.sin(t))

root = fsolve(q, 4)
print(root)
 

Комментарии:

1. Ты пробовал а print(q) ? Что такое t ? q Соответствует ли это fsolve спецификации doc?

2. t был просто массивом чисел между определенными периодами. И я не пытался печатать(q)

Ответ №1:

Когда вы хотите использовать from scipy.optimize import fsolve , вам нужно написать q как function . Попробуй это:

 import numpy as np
from scipy.optimize import fsolve

def func(x):
    return (3 * np.sin(t / np.sqrt(2))) - (np.sin(t))


root = fsolve(func, 1)
print(root)