Итак, я пытаюсь сделать некоторые базовые функции поиска корней для школьного проекта, вот мой код:
import numpy as np
x = np.linspace(0, 3)
f = 14 * x * np.exp(x - 2) - 12 * np.exp(x - 2) - 7 * x ** 3 + 20 * x ** 2 - 26 * x + 12
def bolzano(function, lower, upper):
if function(lower) * function(upper) < 0:
return True
else:
return False
def bisection(function, lower, upper):
m = (lower + upper) / 2
while function(m) > 10 ** -6:
if bolzano(function, lower, m):
upper = m
else:
lower = m
m = (lower + upper) / 2
return float(m)
b = bisection(f, 0, 3)
print(b)
Однако, когда я пытаюсь запустить его, я получаю эту ошибку
Traceback (most recent call last):
File "C:/Users/user/PycharmProjects/untitled/Test.py", line 31, in <module>
b = bisection(f, 0, 3)
File "C:/Users/user/PycharmProjects/untitled/Test.py", line 22, in
bisection while function(m) > 10 ** -6:
TypeError: 'numpy.ndarray' object is not callable
Я пытался привести элементы в функции деления на части к известным типам данных, но это не помогло.Большинство постов о ndarrays посвящены ... ну, массивам, которыми я не пользуюсь, поэтому не повезло найти решение там.Есть идеи?