Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
s1=sum([1/x[i] for i in range(0,n)])
s1 = sum(1 / value for value in x)
import numpy as np
x, y = np.array(x), np.array(y)
s1 = np.sum(1 / x)
s2 = np.sum(1 / y)
s3 = np.sum(y / x)
...
Для этого в Python есть модуль scipy, но он не поддерживает отрицательную степень d полинома. Рассмотрим код реализации аппроксимации данных полиномом.
Не обязательно использовать линейный метод наименьших квадратов. Можно и нелинейный использовать, который, правда, уже так просто не реализуешь. Но функция же есть! :)
from scipy.optimize import curve_fit
def f(x, a, b):
return a + b/x
x=[10, 14, 18, 22, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 66, 70, 74, 78, 82, 86]
y=[0.1, 0.0714, 0.0556, 0.0455, 0.0385, 0.0333, 0.0294, 0.0263, 0.0238, 0.0217, 0.02, 0.0185, 0.0172, 0.0161, 0.0152, 0.0143, 0.0135, 0.0128, 0.0122, 0.0116]
popt, _ = curve_fit(f, x, y)
fit_y = [f(xi, popt[0], popt[1]) for xi in x]
import matplotlib.pyplot as plt
plt.plot(x, y, 'o', x, fit_y, '-')

Простая программа на Python для гиперболической аппроксимации статистических данных