У меня возникла проблема с получением производной некоторых экспериментальных данных. Я попытался сгладить полученные данные, потому что исходная производная не имела для меня смысла. Я прикрепил картинку со своими экспериментальными данными и теоретической кривой, как должны выглядеть данные. Затем я взял производную экспериментальных и теоретических данных для сравнения.
Это мой текущий код:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import scipy.stats as stats
import math
from scipy.optimize import curve_fit
bias = pd.read_csv('bias_voltage_2024_12_12__13_17_47.csv', delimiter=',', header=None)
data1 = pd.read_csv('sipm_dark_DD_microfc_v1_2024_12_12__14_57_27.csv', delimiter=',', header=None)
bias_voltage = bias[1][:425].values
dark_current = data1[1]
filt = np.ones(15)/15
smooth = np.convolve(dark_current, filt, 'valid')
deriv = np.gradient(smooth, bias_voltage[7:-7])
x = np.linspace(0, 32, 100)
mu = 25.4
y = np.where(x < mu, 0, 0.0002*(x - 8) * (x - mu))
deriv2 = np.gradient(y, x)
#plt.scatter(bias_voltage[7:-7], deriv, s=8, label='derivative')
plt.scatter(x, deriv2, s=8, label='theoretical data')
plt.xlabel('Bias Voltage (V)')
plt.ylabel('Current (A) / Derivative of Current (A/V)')
plt.legend()
plt.savefig('theo_deriv.png')
plt.show()
На последнем изображении примерно показано, как должна выглядеть производная экспериментальных данных. Сглаживание данных меня до сих пор не волновало. Я делаю что-то не так?
У меня возникла проблема с получением производной некоторых экспериментальных данных. Я попытался сгладить полученные данные, потому что исходная производная не имела для меня смысла. Я прикрепил картинку со своими экспериментальными данными и теоретической кривой, как должны выглядеть данные. Затем я взял производную экспериментальных и теоретических данных для сравнения. Это мой текущий код: [code]import matplotlib.pyplot as plt import pandas as pd import numpy as np import scipy.stats as stats import math from scipy.optimize import curve_fit
x = np.linspace(0, 32, 100) mu = 25.4 y = np.where(x < mu, 0, 0.0002*(x - 8) * (x - mu)) deriv2 = np.gradient(y, x)
#plt.scatter(bias_voltage[7:-7], deriv, s=8, label='derivative') plt.scatter(x, deriv2, s=8, label='theoretical data') plt.xlabel('Bias Voltage (V)') plt.ylabel('Current (A) / Derivative of Current (A/V)') plt.legend() plt.savefig('theo_deriv.png') plt.show() [/code] [img]https://i.sstatic.net/0bO2M1mC.png[/img] [img]https://i.sstatic.net/5TPmQ3HO.png[/img] [img]https://i.sstatic.net/nutoNILP.png[/img]
На последнем изображении примерно показано, как должна выглядеть производная экспериментальных данных. Сглаживание данных меня до сих пор не волновало. Я делаю что-то не так?