使用python绘制基本初等函数

使用python绘制基本初等函数

基 本 初 等 函 数 { 幂 函 数 : x a , 指 数 函 数 : a x ( a > 0 , a ≠ 1 ) 对 数 函 数 : log ⁡ a x ( a > 0 , a ≠ 1 ) 三 角 函 数 : sin ⁡ x , cos ⁡ x , tan ⁡ x , cot ⁡ x , sec ⁡ x , csc ⁡ x 反 三 角 函 数 : arcsin ⁡ x , arccos ⁡ x , arctan ⁡ x , arccot ⁡ x 基本初等函数\left\{\begin{array}{l}幂函数:x^{a}, \\指数函数:a^{x}(a>0, a \neq 1) \\对数函数:\log _{a} x(a>0, a \neq 1) \\三角函数:\sin x, \cos x, \tan x, \cot x, \sec x, \csc x \\反三角函数:\arcsin x, \arccos x, \arctan x, \operatorname{arccot} x\end{array}\right. xa,ax(a>0,a=1)logax(a>0,a=1)sinx,cosx,tanx,cotx,secx,cscxarcsinx,arccosx,arctanx,arccotx

幂函数

y = x a , a 为 常 数 y=x^a,a为常数 y=xa,a
幂函数的图像和性质随着 a a a的不同而不同

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用于正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False    # 用来正常显示负号

x11 = np.arange(-4, -0.1, 0.01)
x12 = np.arange(0.1, 4, 0.01)
x2 = np.arange(0, 4, 0.01)
x3 = np.arange(-4, 4, 0.01)
x4 = np.arange(-3, 3, 0.01)
x5 = np.arange(-3, 3, 0.01)

f11 = [1 / i for i in x11]
f12 = [1 / i for i in x12]
f2 = [np.sqrt(i) for i in x2]
f3 = x3
f4 = [np.power(i, 2) for i in x4]
f5 = [np.power(i, 3) for i in x5]

plt.plot(x11, f11, 'k', label='$y=x^{-1}$')
plt.plot(x12, f12, 'k')
plt.plot(x2, f2, label='$y=x^{1/2}$')
plt.plot(x3, f3, label='$y=x$')
plt.plot(x4, f4, label='$y=x^2$')
plt.plot(x5, f5, label='$y=x^3$')

# 移动坐标轴及边框设置:https://www.jb51.net/article/172275.htm
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

plt.legend(loc='upper left')
plt.show()

在这里插入图片描述

指数函数

y = a x y=a^x y=ax

其中 a a a是常数,且 a > 0 , a ≠ 1 a>0,a\not=1 a>0,a=1 a > 1 a>1 a>1时,指数函数为单调增加函数;当 0 < a < 1 0<a<1 0<a<1时,指数函数为单调减少函数。但无论自变量 x x x取何值,指数函数的图像总是位于 x x x轴上方,并且一定会通过点 ( 0 , 1 ) (0,1) 01,即当 x = 0 x=0 x=0时, y = 1 y=1 y=1

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = np.arange(-4, 4, 0.01)

f11 = [2**i for i in x]
f12 = [4**i for i in x]
plt.plot(x, f11, label='$y=2^x,(a>1)$')
plt.plot(x, f12, label='$y=4^x,(a>1)$')

f21 = [0.5**i for i in x]
f22 = [0.25**i for i in x]
plt.plot(x, f21, label=r'$y=(\frac{1}{2})^x,(0<a<1)$')
plt.plot(x, f22, label=r'$y=(\frac{1}{4})^x,(0<a<1)$')

# 移动坐标轴及边框设置:https://www.jb51.net/article/172275.htm
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

plt.legend(loc='best')
plt.show()



在这里插入图片描述
在这里插入图片描述

对数函数

y = l o g a x y=log_ax y=logax
其中 a a a为常数,且 a > 0 , a ≠ 1 a>0,a\not=1 a>0,a=1。该函数的定义域为正的实数,故它的图像位于 y y y轴的右方,并通过点 ( 1 , 0 ) (1,0) 10。当 a > 1 a>1 a>1时,对数函数为单调增加函数;当 0 < a < 1 0<a<1 0<a<1时,对数函数为单调减少函数。

下面代码使用到的性质: log ⁡ a b = log ⁡ c b log ⁡ c a \log _{a} b=\frac{\log _{c} b}{\log _{c} a} logab=logcalogcb

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = np.arange(0.01, 4, 0.01)

f11 = [np.log2(i) for i in x]
f12 = [np.log2(i)/np.log2(4) for i in x]
plt.plot(x, f11, label='$y=log_2^x,(a>1)$')
plt.plot(x, f12, label='$y=log_4^x,(a>1)$')

f21 = [np.log2(i)/np.log2(1/2) for i in x]
f22 = [np.log2(i)/np.log2(1/4) for i in x]
plt.plot(x, f21, label=r'$y=log_\frac{1}{2}^x,(0<a<1)$')
plt.plot(x, f22, label=r'$y=log_\frac{1}{4}^x,(0<a<1)$')

# 移动坐标轴及边框设置:https://www.jb51.net/article/172275.htm
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

plt.legend(loc='best')
plt.show()

在这里插入图片描述

对数函数与指数函数互为反函数,所以两者图像关于直线 y = x y=x y=x对称

在这里插入图片描述

三角函数

函数表达式是否有界定义域值域
正弦函数 y = sin ⁡ x y=\sin x y=sinx x ∈ ( − ∞ , + ∞ ) x \in(-\infty,+\infty) x(,+) y ∈ [ − 1 , + 1 ] y \in[-1,+1] y[1,+1]
余弦函数 y = cos ⁡ x y=\cos x y=cosx x ∈ ( − ∞ , + ∞ ) x \in(-\infty,+\infty) x(,+) y ∈ [ − 1 , + 1 ] y \in[-1,+1] y[1,+1]
正切函数 y = tan ⁡ x y=\tan x y=tanx { x ∣ x ≠ k π + π 2 , k ∈ Z } \left\{x \mid x \neq k \pi+\frac{\pi}{2}, k \in \mathbf{Z}\right\} {xx=kπ+2π,kZ} y ∈ ( − ∞ , + ∞ ) y \in(-\infty,+\infty) y(,+)
余切函数 y = cot ⁡ x y=\cot x y=cotx { x ∣ x ≠ k π , k ∈ Z } \{x \mid x \neq k \pi, k \in \mathbf{Z}\} {xx=kπ,kZ} y ∈ ( − ∞ , + ∞ ) y \in(-\infty,+\infty) y(,+)
正割函数 y = sec ⁡ x = 1 cos ⁡ x y=\sec x=\frac{1}{\cos x} y=secx=cosx1 { x ∣ x ≠ k π + π 2 , k ∈ Z } \left\{x \mid x \neq k \pi+\frac{\pi}{2}, k \in \mathbf{Z}\right\} {xx=kπ+2π,kZ} ∣ y ∣ ⩾ 1 \lvert y \rvert \geqslant 1 y1
余割函数 y = csc ⁡ x = 1 sin ⁡ x y=\csc x=\frac{1}{\sin x} y=cscx=sinx1 { x ∣ x ≠ k π , k ∈ Z } \{x \mid x \neq k \pi, k \in \mathbf{Z}\} {xx=kπ,kZ} ∣ y ∣ ⩾ 1 \lvert y \rvert \geqslant 1 y1
import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x = np.linspace(-2 * np.pi, 2 * np.pi, 200) 
f1 = np.sin(x)
f2 = np.cos(x)
f3 = np.tan(x)
f4 = 1 / f3
f5=1/f2
f6=1/f1
plt.plot(x, f1, label=r'$y=sin(x)$')
plt.plot(x, f2, label=r'$y=cos(x)$')
plt.plot(x, f3, label=r'$y=tan(x)$')
plt.plot(x, f4, label=r'$y=cot(x)$')
plt.plot(x, f5, label=r'$y=sec(x)$', )
plt.plot(x, f6, label=r'$y=csc(x)$', )
# 移动坐标轴及边框设置:https://www.jb51.net/article/172275.htm
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))

plt.xlim(x.min() * 1.1, x.max() * 1.1)  # limit x range
plt.ylim(-4, 4)  # limit y range
plt.xticks([-2 * np.pi, -3 * np.pi / 2, -np.pi, -np.pi / 2, 0, np.pi / 2, np.pi, 3 * np.pi / 2, 2 * np.pi],
           [r'$-2\pi$', r'$-3\pi/2$', r'$-\pi$', r'$-\pi/2$', r'$0$', r'$\pi/2$', r'$\pi$', r'$3\pi/2$', r'$2\pi$'])
plt.legend(loc='best')
plt.show()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

反三角函数

函数表达式是否有界定义域值域
反正弦函数 y = arcsin ⁡ x y=\arcsin x y=arcsinx x ∈ [ − 1 , + 1 ] x \in[-1,+1] x[1,+1] y ∈ [ − π 2 , π 2 ] y \in\left[-\frac{\pi}{2}, \frac{\pi}{2}\right] y[2π,2π]
反余弦函数 y = arccos ⁡ x y=\arccos x y=arccosx x ∈ [ − 1 , + 1 ] x \in[-1,+1] x[1,+1] y ∈ [ 0 , π ] y \in[0, \pi] y[0,π]
反正切函数 y = arctan ⁡ x y=\arctan x y=arctanx x ∈ ( − ∞ , + ∞ ) x\in (-\infty,+\infty) x(,+) y ∈ ( − π 2 , π 2 ) y \in\left(-\frac{\pi}{2}, \frac{\pi}{2}\right) y(2π,2π)
反余切函数 y = a r c c o t x y=arccot x y=arccotx x ∈ ( − ∞ , + ∞ ) x\in (-\infty,+\infty) x(,+)$ y ∈ ( 0 , π ) ) y \in(0, \pi)) y(0,π))

下面代码使用到的性质:
arccot ⁡ ( x ) = π 2 − arctan ⁡ ( x ) \operatorname{arccot}(x)=\frac{\pi}{2}-\arctan (x) arccot(x)=2πarctan(x)

import matplotlib.pyplot as plt
import numpy as np

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

x1 = np.linspace(-1, 1, 200)
x2 = np.linspace(-10, 10, 200)
f1 = np.arcsin(x1)
f2 = np.arccos(x1)
f3 = np.arctan(x2)
f4 = np.pi / 2 - np.arctan(x2)

plt.plot(x1, f1, label=r'$y=arcsin(x)$')
plt.plot(x1, f2, label=r'$y=arccos(x)$')
plt.plot(x2, f3, label=r'$y=arctan(x)$')
plt.plot(x2, f4, label=r'$y=arccot(x)$')

# 移动坐标轴及边框设置:https://www.jb51.net/article/172275.htm
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))


plt.yticks([-np.pi, -np.pi / 2, np.pi / 2, np.pi], [r'$-\pi$', r'$-\pi/2$', r'$\pi/2$', r'$\pi$', ])
plt.legend(loc='best')
plt.show()

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二进制人工智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值