Verilerimi sığdırmaya çalıştığımda, sonuçlar biraz garip ve neden anlamıyorum. Elde edilen bağlantı düzdür ve ilk giriş e = 0'dır. Bir yerde bir bölünme hatası ortaya çıktı. Ben e değiştirdiğinizde tek çalışan vaka [0] = 1.0e-9Eğri uydurma kullanarak Scipy garip sonuçlar
sonuç şudur geçerli: benim örnek şimdiye kadar okuduğum kadarıyla olmadığını görünüyor örnek here itibaren
ama ben takılıyorum, bu yüzden davada neyin yanlış gittiğine dair bana yardımcı olabilir misiniz?
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
src_s = np.array((45.59,50.66664,59.74871,65.71018,72.76012,79.06256,84.13755,90.39944,
96.33653,101.65667,106.27968,110.76301,114.41808,117.21922,120.51836))
src_e = np.array((0.0,0.00126,0.00503,0.00804,0.01228,0.01685,0.02127,0.02846,0.03666,
0.04581,0.05620,0.06882,0.08005,0.09031,0.10327))
# plot source data
plt.plot(src_e, src_s, 'o')
# fitting function
def sigma(e, k ,n): return k*(e**n)
# find parameters curve fitting
param, var = curve_fit(sigma, src_e, src_s)
new_e = np.linspace(src_e.min(), src_e.max(), 50)
plt.plot(new_e, sigma(new_e, *param))
# modify first input
src_e[0]=1.0e-9
# relaunch parameters curve fitting
param, var = curve_fit(sigma, src_e, src_s)
new_e = np.linspace(src_e.min(), src_e.max(), 50)
plt.plot(new_e, sigma(new_e, *param))
plt.show()
Yardımlarınız için şimdiden teşekkür ederiz.
Lütfen açıklamak "sonuçlar biraz tuhaf ve neden anlamıyorum" Senin için görüntüyü eklendi –
. SO'ya hoş geldiniz! ;) –
Teşekkür ederim arkadaşım;) Bir bira al! – Jyb