"四阶多项式拟合效果对比:分图展示各阶次拟合曲线"
您可以使用Python中的matplotlib库来实现这个需求。下面是一个示例代码,可以将图形窗口分成四个子图,并绘制出原始测量值和不同阶数多项式拟合后的曲线:
```python
import numpy as np
import matplotlib.pyplot as plt
# 原始测量值
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 6, 8, 10])
# 多项式拟合
poly_degrees = [1, 2, 3, 4] # 不同阶数的多项式
x_fit = np.linspace(x.min(), x.max(), 100) # 拟合曲线的x值范围
fig, axs = plt.subplots(2, 2, figsize=(10, 8)) # 创建一个2x2的图形窗口
# 子图1:一阶多项式拟合曲线
axs[0, 0].scatter(x, y, label='原始测量值')
coeffs = np.polyfit(x, y, 1)
y_fit = np.polyval(coeffs, x_fit)
axs[0, 0].plot(x_fit, y_fit, 'r', label='一阶多项式拟合曲线')
axs[0, 0].set_xlabel('时间')
axs[0, 0].set_ylabel('强度')
axs[0, 0].set_title('一阶多项式拟合曲线')
axs[0, 0].legend()
# 子图2:二阶多项式拟合曲线
axs[0, 1].scatter(x, y, label='原始测量值')
coeffs = np.polyfit(x, y, 2)
y_fit = np.polyval(coeffs, x_fit)
axs[0, 1].plot(x_fit, y_fit, 'g', label='二阶多项式拟合曲线')
axs[0, 1].set_xlabel('时间')
axs[0, 1].set_ylabel('强度')
axs[0, 1].set_title('二阶多项式拟合曲线')
axs[0, 1].legend()
# 子图3:三阶多项式拟合曲线
axs[1, 0].scatter(x, y, label='原始测量值')
coeffs = np.polyfit(x, y, 3)
y_fit = np.polyval(coeffs, x_fit)
axs[1, 0].plot(x_fit, y_fit, 'b', label='三阶多项式拟合曲线')
axs[1, 0].set_xlabel('时间')
axs[1, 0].set_ylabel('强度')
axs[1, 0].set_title('三阶多项式拟合曲线')
axs[1, 0].legend()
# 子图4:四阶多项式拟合曲线
axs[1, 1].scatter(x, y, label='原始测量值')
coeffs = np.polyfit(x, y, 4)
y_fit = np.polyval(coeffs, x_fit)
axs[1, 1].plot(x_fit, y_fit, 'm', label='四阶多项式拟合曲线')
axs[1, 1].set_xlabel('时间')
axs[1, 1].set_ylabel('强度')
axs[1, 1].set_title('四阶多项式拟合曲线')
axs[1, 1].legend()
plt.tight_layout() # 调整子图之间的间距
plt.show()
```
这段代码会生成一个包含四个子图的图形窗口,每个子图上都有原始测量值和对应阶数多项式拟合后的曲线。每个子图都有x轴(时间)、y轴(强度)标签和子图名称。您可以根据实际数据进行修改和调整。
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。