TypeErrors: объект 'numpy.float64' не повторяется + объект 'tuple' не вызывается
Я новичок в коде, и я не знаю, как сделать, чтобы решить эти проблемы. Первая ошибка появляется в шаге 1, где говорит; ''TypeError: 'numpy.float64' объект не повторяется ''. Это исчезает, когда я удаляю сумму из add_diff_sq в функции f(), но мне нужна эта сумма там.
Вторая ошибка возникает в шаге 2 "Ошибка типа: объект 'tuple' не вызывается". Это ошибка, потому что x, y и z - кортежи? Как я могу решить это?
Файл data_test01.csv содержит данные с 3 столбцами, x, y,z.
Спасибо
import csv
import numpy as np
import matplotlib.pyplot as plt
% matplotlib inline
from scipy.optimize import minimize
import glob
import cv2
#Fitting function============================================================
def f():
'''Process of constructing a curve that has the best fit to a series of
data points'''
fit_x = x1+Rz*np.cosh((1/Rz)*(y-y1-(z/2)))
x_sq = (x-x1)**2
y_sq = Rz**2-(y-y1)**2
diff_sq = (x-(x1+Rz*np.cosh((1/Rz)*(y-y1-(z/2)))))**2
add_diff_sq = sum(x-(x1+Rz*np.cosh((1/Rz)*(y-y1-(z/2)))))**2
return fit_x, x_sq, y_sq, diff_sq, add_diff_sq
#Initial guesses==============================================================
x1 = 19.783
y1 = 20.647
Rz = 2.884
guesses = [x1, y1, Rz]
#Open file====================================================================
with open('data_test01.csv') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for row in reader:
x = float(row[0])
y = float(row[1])
z = float(row[2])
#Step 1=======================================================================
fit_x, x_sq, y_sq, diff_sq, add_diff_sq = f()
'''First fitting approximation'''
print(f())
TypeError: 'numpy.float64' object is not iterable
#Step 2=======================================================================
res = minimize(f(), guesses, method='SLSQP')
'''Minimizes the objective function to achieve a better fit'''
print(res)
TypeError: 'tuple' object is not callable