对数函数
1432字,阅读需时5分钟

指数函数的反函数:

y = logax (a是常数,且a>0, a!=1)

叫做对数函数,它的定义域是区间(0,+∞)。

把指数函数y=a^x的x看作因变量,y看作自变量,就得到了一个新的函数,这个新的函数就是对数函数,指数函数称为对数函数的直接函数。

例1  绘制底为2的对数函数,观察图像的性质

案例代码见课程资源(unit1/case11.py)

# 导入sympy库
import sympy
from sympy import symbols,plot
# 定义对数函数
def log(y,x):
   return sympy.log(x,y)
# 定义数学符号x,y
x=symbols('x')
y=symbols('y')
# 生成对数函数公式
flog = log(2,x)
# 绘制图形
plot(flog,(x,0.1,3))

代码解读

Sympy库提供了log(x,n)函数用于定义logn(x)函数,n是底数,x是自变量。

09.png

观察函数图像,图像位于Y轴的右侧,值域为(-∞,+∞),与X轴交点为(1,0),函数值随着x的增大而增大,当底数大于1时,函数单调增加,函数非奇非偶。

例2  绘制底为1/2的对数函数,观察图像的性质

修改例1的程序代码,将语句:

flog = log(2,x)

修改为:

flog = log(1/2,x)

运行程序,可得到底为1/2的函数图像。

10.png

观察函数图像,图像位于Y轴的右侧,值域为(-∞,+∞),与X轴交点为(1,0),函数值随着x的增大而减小,当底数大于0小于1时,函数单调减少,函数非奇非偶。

读者可以多次使用不同的底数来绘制对数函数图像,可以得到如下结论:

当底数a>1时,函数在区间(0,+∞)上单调增加,当底数0<a<1时,函数在区间(0,+∞)上单调减少。

例3  绘制底为自然常数e的对数函数

修改例1的程序代码,将语句:

flog = log(2,x)

修改为:

flog = log(sympy.E,x)

运行程序,可得到底为自然常数的的函数图像。

11.png

原本要在同一绘图区域绘制指数函数图像、其反函数对数函数图形,及两者图像的对称直线,但Sympy绘制的效果并不理想,为了适应指数函数的图像,Y轴负轴一侧被挤压,导致对数函数图像被拉伸,不能很好呈现指数函数和对数函数的对称效果。

 12.png

 

绘制图像的代码如下:

# 导入sympy库
import sympy
from sympy import symbols,plot
# 定义对数函数
def log(y,x):
   return sympy.log(x,y)
# 定义指数函数
def exp(y,x):
   return y**x
 
# 定义数学符号x,y
x=symbols('x')
y=symbols('y')
# 生成对数函数公式
flog = log(sympy.E,x)
# 生成直线函数公式
fline = exp(x,1)
# 生成指数函数公式
fexp = exp(sympy.E,x)
plot((flog,(x,0.1,3)),(fline,(x,0.1,3)),(fexp,(x,0.1,3)))

Sympy库用于数值计算还是非常不错的,用于绘制函数图像确实有点小材大用了,后面将使用matplotlib绘制函数图像。

我要评论
全部评论