python实现一元三次方程非线性回归
时间: 2024-11-28 21:12:49 浏览: 4
利用Python的sympy包求解一元三次方程示例
在Python中,可以使用`scipy.optimize.curve_fit`函数,结合`numpy`库,来实现一元三次方程的非线性回归。一元三次方程通常表示为y = a*x^3 + b*x^2 + c*x + d的形式。下面是一个简单的例子:
```python
import numpy as np
from scipy.optimize import curve_fit
# 定义三次多项式的函数
def cubic_function(x, a, b, c, d):
return a * x**3 + b * x**2 + c * x + d
# 假设我们有一些数据点 (x_data, y_data)
x_data = np.array([1, 2, 3, 4, 5])
y_data = np.array([2, 8, 20, 36, 54])
# 使用curve_fit求解最优的系数(a, b, c, d)
popt, _ = curve_fit(cubic_function, x_data, y_data)
# 打印出拟合的系数
print(f"拟合参数:a={popt[0]}, b={popt[1]}, c={popt[2]}, d={popt[3]}")
# 绘制数据点和拟合曲线
import matplotlib.pyplot as plt
plt.scatter(x_data, y_data)
x.linspace(0, max(x_data), 100) # 创建x轴的均匀样本
y_pred = cubic_function(x.linspace(0, max(x_data), 100), *popt)
plt.plot(x.linspace(0, max(x_data), 100), y_pred)
plt.show()
```
阅读全文