Python 实现基于实验数据的函数拟合与数值计算
使用 Python 实现基于实验数据的函数拟合与数值计算
本文介绍如何使用 Python 语言实现基于实验数据的函数拟合,并根据用户输入值进行数值计算,同时绘制数据拟合曲线。
1. 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
2. 定义函数 myfunc
该函数接收用户输入的 x 值,并根据拟合得到的函数返回对应的 y 值。
def myfunc(x):
x_data = np.array([0, 40, 70, 99.7])
y_data = np.array([12, 1801, 3207, 4001])
f = np.polyfit(x_data, y_data, 2)
y = np.polyval(f, x)
return y
3. 获取用户输入值
x_input = float(input('单片机读数:'))
4. 计算对应的 y 值
y_output = myfunc(x_input)
print('对应的浓度理论值为:', y_output)
5. 绘制数据拟合曲线
x_data = np.array([0, 40, 70, 99.7])
y_data = np.array([12, 1801, 3207, 4001])
plt.plot(x_data, y_data, '-.')
plt.xlabel('Density(%)', fontname='Times New Roman', fontsize=12)
plt.ylabel('Amount', fontname='Times New Roman', fontsize=12)
plt.title('Data')
plt.ylim(0, 4095)
plt.xlim(0, 100)
plt.grid(True)
plt.show()
完整代码:
import numpy as np
import matplotlib.pyplot as plt
def myfunc(x):
x_data = np.array([0, 40, 70, 99.7])
y_data = np.array([12, 1801, 3207, 4001])
f = np.polyfit(x_data, y_data, 2)
y = np.polyval(f, x)
return y
x_input = float(input('单片机读数:'))
y_output = myfunc(x_input)
print('对应的浓度理论值为:', y_output)
x_data = np.array([0, 40, 70, 99.7])
y_data = np.array([12, 1801, 3207, 4001])
plt.plot(x_data, y_data, '-.')
plt.xlabel('Density(%)', fontname='Times New Roman', fontsize=12)
plt.ylabel('Amount', fontname='Times New Roman', fontsize=12)
plt.title('Data')
plt.ylim(0, 4095)
plt.xlim(0, 100)
plt.grid(True)
plt.show()
该程序首先定义了一个函数 myfunc,该函数使用 np.polyfit 函数对实验数据进行二阶多项式拟合,并使用 np.polyval 函数计算用户输入的 x 值对应的 y 值。然后,程序从用户获取输入的单片机读数,并使用 myfunc 函数计算对应的浓度理论值。最后,程序使用 matplotlib 库绘制数据拟合曲线。
原文地址: https://www.cveoy.top/t/topic/oVpo 著作权归作者所有。请勿转载和采集!