使用 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 库绘制数据拟合曲线。

Python 实现基于实验数据的函数拟合与数值计算

原文地址: https://www.cveoy.top/t/topic/oVpo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录