首页 > 编程知识 正文

python指数运算符,指数函数在python语言中怎么表示

时间:2023-05-05 01:57:15 阅读:214651 作者:294

python绘制指数函数 完整代码
上一期,我们介绍了指数函数的形和性质以及运算法则,其中有两个非常漂亮的指数函数图就是用python的matplotlib画出来的。这一期,我们将要介绍如何利用python如何绘制出如下指数函数。


我们知道当 0 < a < 1 0<a<1 0<a<1是,指数函数 y = a x y=a^x y=ax是单调递减的,当 a > 1 a>1 a>1时,是单调递增的,所以,我们首先要定义出指数函数

import math...def exponential_func(x, a): #定义指数函数 y=math.pow(a, x) return y

然后,利用numpy构造出自变量 x x x,利用上面定义的指数函数来计算出因变量 y y y

X=np.linspace(-4, 4, 40) #构造自变量组Y=[exponential_func(x) for x in X] #求函数值

有了自变量和因变量的一些散点,那么就可以模拟我们平时画函数操作——描点绘图,利用下面代码就会画出

import math import numpy as np import matplotlib.pyplot as plt import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsefig=plt.figure(figsize=(6,4)) #新建画布ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法创建一个绘图区对象axfig.add_axes(ax) #将绘图区对象添加到画布中def exponential_func(x, a=2): #定义指数函数 y=math.pow(a, x) return yX=np.linspace(-4, 4, 40) #构造自变量组Y=[exponential_func(x) for x in X] #求函数值ax.plot(X, Y) #绘制指数函数plt.show()


虽然图1很简单,但是麻雀虽小五脏俱全,指数函数该有都有,接下来是如何让其看起来美观,这里重点介绍axisartist 坐标轴加工类,在画笛卡尔直角坐标系的时候我们已经用过了,这里就不再多说了。我们只需要在上面代码后面加上一些修改代码来将坐标轴好好打扮一番。

完整代码 # -*- coding: utf-8 -*-"""Created on Sun Feb 16 10:19:23 2020project name:@author: 帅帅dewwdmt"""import math import numpy as np import matplotlib.pyplot as plt import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块plt.rcParams['font.sans-serif']=['SimHei']plt.rcParams['axes.unicode_minus']=Falsefig=plt.figure(figsize=(6,4)) #新建画布ax=axisartist.Subplot(fig,111) #使用axisartist.Subplot方法创建一个绘图区对象axfig.add_axes(ax) #将绘图区对象添加到画布中def exponential_func(x, a=2): #定义指数函数 y=math.pow(a, x) return yX=np.linspace(-4, 4, 40) #构造自变量组Y=[exponential_func(x) for x in X] #求函数值ax.plot(X, Y) #绘制指数函数plt.show()# 从此处开始打扮print(max(X), max(Y)) #测试一下自变量最大值和因变量最大值,为后面的坐标轴设置依据ax.axis[:].set_visible(False) #隐藏原来的实线矩形ax.axis["x"]=ax.new_floating_axis(0, 0, axis_direction="bottom") #添加x轴ax.axis["y"]=ax.new_floating_axis(1, 0, axis_direction="bottom") #添加y轴ax.axis["x"].set_axisline_style("-|>", size=1.0) #给x坐标轴加箭头ax.axis["y"].set_axisline_style("-|>", size=1.0) #给y坐标轴加箭头ax.annotate(s='x', xy=(max(X), 0), xytext=(max(X)+0.5, 0.5)) #标注x轴ax.annotate(s='y', xy=(0, 1.0), xytext=(-0.5, max(Y)+0.5)) #标注y轴plt.xlim(-4, 5) #设置横坐标范围plt.ylim(-1, 17) #设置纵坐标范围X_lim=np.arange(min(X), max(X)+1, 1)ax.set_xticks(X_lim) #设置x轴刻度Y_lim=np.arange(0, max(Y)+1, 1)ax.set_yticks(Y_lim) #设置y轴刻度ax.annotate(s=r'$y=a^x$',xy=(3, 10), xytext=(3, 10))

整个代码比较注重细节,如果你要画减函数,只需要将a的初始值设置到(0,1)之间的某个值即可。比如在定义函数的时候,令 a = 1 2 a=frac{1}{2} a=21​便会画出如下指数函数图

相应的代码改写如下

def exponential_func(x, a=1/2): #定义指数函数 y=math.pow(a, x) return y

参考文献
1,https://blog.csdn.net/zengbowengood/article/details/102862072
2,https://blog.csdn.net/zengbowengood/article/details/104260155

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。