这段代码怎么加入对x取大于0的值
时间: 2024-03-11 12:49:24 浏览: 22
要对 x 取大于0的值,只需要将 `np.arange(-10,10,0.1)` 改为 `np.arange(0.1,10,0.1)` 即可。修改后的代码如下:
```python
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((0,10))
plt.ylim((-5,5))
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(0.1,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)
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)
```
在这个例子中,我们将 x 的取值范围从 0.1 到 10,避免了对数函数在 x=0 时的错误。同时,我们也将 x 的取值范围限制在了大于 0 的范围内,避免了对数函数在负数区间的非法取值。