Вычисление ошибок в полиномиальных коэффициентах - PullRequest
0 голосов
/ 27 мая 2020

В настоящее время я написал код, который генерирует полином для интерполяции нескольких наборов данных, которые у меня есть. Теперь я хочу вычислить ошибку в полиномиальных коэффициентах, но не уверен, как это сделать go.

Мой текущий код ниже:

import numpy.polynomial.polynomial as poly
import matplotlib.pyplot as plt
import numpy as np

f = [0,5,16,18.5,30,50]
a = [1.41,1.43,0.72,0.78,0.8,0.86]
b = [3.80e-5,5.40e-5,5.14e-5,5.16e-5,8.5e-5,1.58e-4]
c = [1.6e-2,1.54e-2,10.523e-2,14.589e-2,11.1e-2,5.66e-2]

f_new = np.linspace(f[0], f[5], num=len(f)*10)

coefs_a = poly.polyfit(f, a, 3)
coefs_b = poly.polyfit(f, b, 2)
coefs_c = poly.polyfit(f, c, 2)

ffit_a = poly.polyval(f_new, coefs_a)
ffit_b = poly.polyval(f_new, coefs_b)
ffit_c = poly.polyval(f_new, coefs_c)

print(coefs_a)
print(coefs_b)
print(coefs_c)

plt.plot(f,a)
plt.show()

plt.plot(f_new, ffit_a)
plt.title('a')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Coefficient value')
plt.show()

plt.plot(f,b)
plt.show()

plt.plot(f_new, ffit_b)
plt.title('b')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Coefficient value)')
plt.show()

plt.plot(f,c)
plt.show()

plt.plot(f_new, ffit_c)
plt.title('c')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Coefficient value')
plt.show()

Итак, в настоящее время я генерирую значения коэффициентов и, следовательно, многочлены для величин с именами '' a '', '' b '' и '' c '' и теперь хочу получить ошибки в этих коэффициентах, чтобы я мог вычислить общую ошибку для каждой из величин '' a '', '' b '' и '' c ''.

1 Ответ

0 голосов
/ 27 мая 2020

Вы можете получить сумму квадратов остатков (меру погрешности) для каждого соответствия, если вы установите full=True

, например, в своем коде, чтобы получить остатки для coefs_a,

coefs_a, res_a = poly.polyfit(f, a, 3, full=True)
print(res_a[0]) # res_a will be a list with the 1st entry being the sum of residuals

Документы для numpy .polynomial.polynomial.polyfit

...