from sympy import * from math import * import numpy as np from matplotlib import pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号 import numpy as np import matplotlib.pyplot as plt from sympy import * # 用于求导积分等科学计算 # 一元一次函数图像 def fun_format(): plt.xlabel('x') plt.ylabel('y') plt.xlim((-10,10)) plt.ylim((-20,20)) plt.tight_layout() x,y = symbols('x y') # 引入x y变量 expr = log(x)# 计算表达式 x_value = [] # 用于保存x值 y_value = [] # 用于保存y值 y_value_dif = [] # 用于保存一阶导数值 expr_dif = diff(expr,x,1) for i in np.arange(-10,10,0.1): x_value.append(i) y_value.append(expr.subs('x',i)) # 将i值代入表达式 y_value_dif.append(expr_dif.subs('x',i)) # 将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) # 画一阶导数图
时间: 2024-04-25 18:27:33 浏览: 171
sympy-1.5.1-py2.py3-none-any.whl
这段代码的作用是画出对数函数的图像及其一阶导数图像。具体来说,代码中:
- 引入了 matplotlib 和 sympy 库。
- 定义了一个函数 `fun_format()`,用于设置坐标轴范围、标签等格式。
- 定义了变量 x 和 y。
- 定义了表达式 `expr = log(x)`,这是对数函数的表达式。
- 计算了 x 和 y 的值,存储在 `x_value` 和 `y_value` 两个列表中。这里使用了 sympy 库中的 `subs()` 函数将 x 的值代入表达式中计算 y 的值。
- 计算了对数函数的一阶导数表达式 `expr_dif = diff(expr,x,1)`。
- 计算了一阶导数的值,存储在 `y_value_dif` 列表中。
- 使用 matplotlib 库画出对数函数图像和一阶导数图像。
需要注意的是,这段代码中没有对 x 取大于0的值,因此在 x=0 时会出现错误。另外,代码中的注释比较少,可读性有些欠缺,建议加上更详细的注释。
阅读全文