python最小二乘法拟合
时间: 2023-07-01 09:22:44 浏览: 101
python实现最小二乘法拟合
Python中可以使用NumPy和SciPy库来进行最小二乘法拟合。
下面是一个简单的最小二乘法拟合的例子:
```python
import numpy as np
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
# 定义函数
def func(x, p):
a, b, c = p
return a*x**2 + b*x + c
# 定义误差函数
def error(p, x, y):
return func(x, p) - y
# 生成数据
x = np.linspace(-5, 5, 101)
y = func(x, [1, 2, 3]) + np.random.randn(len(x))
# 初始值
p0 = [1, 1, 1]
# 最小二乘法拟合
pfit, pcov, infodict, errmsg, success = leastsq(error, p0, args=(x, y), full_output=1)
# 绘图
plt.plot(x, y, 'ro', label='data')
plt.plot(x, func(x, pfit), label='fit')
plt.legend()
plt.show()
```
这个例子中,我们定义了一个二次函数,并生成了数据。然后使用`leastsq`函数进行最小二乘法拟合,并绘制出拟合结果。
阅读全文