使用最小二乘法拟合金属疲劳实验数据的Python代码
时间: 2024-04-25 07:03:48 浏览: 86
python最小二乘法代码
以下是使用最小二乘法拟合金属疲劳实验数据的Python代码:
```python
import numpy as np
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
# 数据
x = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
y = np.array([0, 1.1, 2.2, 2.8, 3.6, 4.1, 4.9, 5.5, 6.1, 6.5])
# 模型函数
def func(p, x):
a, b, c = p
return a * x ** 2 + b * x + c
# 残差函数
def residuals(p, x, y):
return y - func(p, x)
# 初始参数
p0 = [1, 1, 1]
# 最小二乘法拟合
plsq = leastsq(residuals, p0, args=(x, y))
# 拟合参数
a, b, c = plsq[0]
# 绘制拟合曲线
x_fit = np.linspace(0, 9, 100)
y_fit = a * x_fit ** 2 + b * x_fit + c
plt.scatter(x, y, label='data')
plt.plot(x_fit, y_fit, label='fit')
plt.legend()
plt.show()
```
其中,数据x和y是金属疲劳实验的数据,模型函数func是一个二次函数,残差函数residuals是用来计算拟合误差的函数。初始参数p0是拟合函数的初始参数。使用scipy库的leastsq函数进行最小二乘法拟合,得到拟合参数plsq。最后,绘制数据和拟合曲线的散点图。
阅读全文