问题描述
- 自定义一个函数F(x),编写程序计算其一阶导数、二阶导数,并绘出图像
完整代码
import numpy as np
import matplotlib.pyplot as plt
from sympy import *
plt.rcParams['axes.unicode_minus']=False
def fun_format():
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((-2*np.pi,2*np.pi))
plt.ylim((-1,1))
plt.tight_layout()
x,y = symbols('x y')
expr = sin(x)
x_value = []
y_value = []
y_value_dif = []
y_value_dif2 = []
expr_dif = diff(expr,x,1)
expr_dif2 = diff(expr,x,2)
for i in np.arange(-2*np.pi,2*np.pi,0.01):
x_value.append(i)
y_value.append(expr.subs('x',i))
y_value_dif.append(expr_dif.subs('x',i))
y_value_dif2.append(expr_dif2.subs('x',i))
fig=plt.figure()
ax1=fig.add_subplot(2,1,1)
plt.title('f(x)='+str(expr))
fun_format()
ax1.plot(x_value,y_value)
ax2=fig.add_subplot(2,2,3)
plt.title('f(x)_dot='+str(expr_dif))
fun_format()
ax2.plot(x_value,y_value_dif)
ax3=fig.add_subplot(2,2,4)
plt.title('f(x)_dot2='+str(expr_dif2))
fun_format()
ax3.plot(x_value,y_value_dif2)
plt.show()
实验结果
参考文章