如何使用python先拟合多项式后画图,再在原来多项式范围内对多项式求导并画图
时间: 2024-02-27 19:53:49 浏览: 209
要对多项式进行拟合、画图和求导,可以使用Python中的NumPy、SciPy和Matplotlib库。以下是简单的步骤:
1. 在Python中导入所需的库:
```python
import numpy as np
from scipy.optimize import curve_fit
import matplotlib.pyplot as plt
```
2. 定义函数并生成数据:
```python
def func(x, a, b, c):
return a*x**2 + b*x + c
x_vals = np.linspace(-5, 5, 100)
y_vals = func(x_vals, 1, 2, 3) + np.random.normal(scale=0.5, size=len(x_vals))
```
3. 利用curve_fit函数进行多项式拟合:
```python
popt, pcov = curve_fit(func, x_vals, y_vals)
```
4. 绘制原始数据和拟合多项式:
```python
plt.scatter(x_vals, y_vals, label='Data')
plt.plot(x_vals, func(x_vals, *popt), 'r-', label='Fit')
plt.legend(loc='best')
plt.show()
```
5. 在原多项式范围内生成数据并计算导数:
```python
x_range = np.linspace(-5, 5, 100)
y_range = func(x_range, *popt)
dy_range = 2*popt[0]*x_range + popt[1]
```
6. 绘制多项式和导数:
```python
plt.plot(x_range, y_range, label='f(x)')
plt.plot(x_range, dy_range, label='f\'(x)')
plt.legend(loc='best')
plt.show()
```
这样就能对多项式进行拟合、绘图和求导了。
阅读全文