最小二乘法python
时间: 2023-10-02 21:10:19 浏览: 89
最小二乘法是一种常用的拟合曲线的方法,其主要思想是通过最小化残差平方和来寻找最优解。在Python中,可以使用numpy和scipy库来实现最小二乘法的计算。
以下是一个简单的例子,通过最小二乘法拟合一条直线:
``` python
import numpy as np
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
# 定义一组原始数据
x = np.array([1, 2, 3, 4, 5, 6])
y = np.array([1.1, 2.5, 2.8, 4.6, 5.1, 6.5])
# 定义拟合函数
def func(p, x):
k, b = p
return k*x + b
# 定义误差函数
def error(p, x, y):
return func(p, x) - y
# 使用最小二乘法拟合直线
p0 = [1, 0] # 初始参数
params = leastsq(error, p0, args=(x, y))
k, b = params[0]
# 绘制原始数据和拟合直线
plt.scatter(x, y, color='r', label='Data')
plt.plot(x, k*x+b, color='b', label='Fit')
plt.legend()
plt.show()
```
运行上述代码,会得到如下的拟合结果:
![最小二乘法拟合直线](https://img-blog.csdn.net/20180429103246607)
其中,红色的点表示原始数据,蓝色的线表示拟合直线。
阅读全文