python中的反三角函数,python画倒三角形
以前对三角函数的理解只局限于sin,cos,tan。但是目前考研过程中有csc,sec,cot,arctan,arccos,arcsin。
还有一堆积分求导的公式,容易混淆。不知道能不能用图像来帮助记忆。就算记不住,也能猜出一些公式。
对于sin和cos,你可以根据图像来猜测他们之间的关系。
Sin(x)从-pi/2增加到pi/2,-pi/2到0的增长率从慢到快,0到pi/2的增长率从快到慢。根据导数的定义,导数lim(x-0)sinx/x=1在0。/2和-/2处的切线斜率为0,所以导数为0。想到sin(x)的每一点在你脑海中的导数值,那么你就可以大致想象出sin(x)在你脑海中的导数值,也就是cos(x)。
我以为用python画很容易,但是画了几次之后发现图像不是我想要的。有些坐标轴的刻度是1,但是我想把它们变成圆周率。一些Y轴收缩在一起,但我想让它们之间的距离变大。在查阅了大量资料后,我能够拼出一个可以接受的图像。Python在接近无穷大的时候自动画了一条渐近线。
1.三角函数及其倒数
Sin(x)和csc(x)
Cos(x)和sec(x)
Tan(x)和cot(x)
分析其特点:
这些三角函数之间的关系是互逆的。
它们的共同特征:
1.在同一点上,它们的函数值乘以1。
它们在两条直线y=1和y=-1上有一个公共交点。
2.他们在相同的区间有相同的数字。
其中一个函数是-0,那么另一个函数是-无穷大。
其中一个函数-0-,然后另一个函数-无穷大。
3.y=1和y=-1处对应的X坐标标记为a。
在A的左右邻域,它们以相反的方式增加和减少。
2.三角函数及其反函数
Sin(x)和arcsin(x)
注意:
正弦函数y=sinx,xR没有反函数,因为在整个域内没有一一对应关系。
反正弦函数对于这样的函数y=sinx,x[-/2,/2]成立。这里截取了正弦函数在原点附近的一个单调区间。Y=arcsinx的定义域:[-1,1],取值范围:[-/2,/2]
Cos(x)和arccos(x)
Y=cosx,xR因为在全域内没有一一对应,所以没有反函数。
Arccos(x)对于这样的函数y=cosx,x[0,]成立。这里截取了一个接近原点的余弦函数的单调区间。arccosx取值范围为:[0,],定义域[-1,1]。
Tan(x)和arctan(x)
注意:
因为正切函数y=tanx在定义域R内没有一一对应关系,所以不存在反函数。
选择正切函数的单调区间。但是,由于正切函数在开区间(-/2,/2)上单调连续,所以反正切函数存在且唯一确定。arctanx的范围是:(-/2,/2)。
分析其特点。
它们的特征实际上是原函数和反函数的特征,
关于y=x的对称性。它的反函数在其对应区间内是单调的。
3.源代码
将matplotlib.pyplot作为plt导入
PLT . RC params[ font . sans-serif ]=[ sim hei ]#用于正常显示中文标签。
PLT . RC params[ axes . unicode _ MINUS ]=false #用于正常显示负号。
#进口熊猫作为pd
将numpy作为np导入
从mpl _ toolkits . axis artist . axis lines导入子plotZero
将numpy作为np导入
从matplotlib.ticker导入MultipleLocator,FuncFormatter
fig=plt.figure(1,(10,6))
ax=SubplotZero(图1,1,1)
图. add_subplot(ax)
创建新轴
ax.axis[xzero]。set_visible(True)
# ax.axis [xzero]。label.set _ text(新y=0坐标)
# ax . axis[ xzero ]. label . set _ color( green )
ax.axis[yzero]。set_visible(True)
# ax.axis [yzero]。label.set _ text(新x=0坐标)
#创建一个y=2的新水平轴
# ax . axis[ new 1 ]=ax . new _ floating _ axis(nth _ coord=0,value=1,axis _ direction= bottom )
#ax.axis[新1]。切换(全部=真)
#ax.axis[新1].label.set_text(y=1横坐标)
# ax . axis[ new 1 ]. label . set _ color( blue )
坐标箭头
ax.axis[xzero]。set_axisline_style(- )
ax.axis[yzero]。set_axisline_style(- )
隐藏轴
#方法1:隐藏顶部和右侧。
# ax.axis[右]。set_visible(False)
# ax.axis[top]。set_visible(False)
#方法二:可以一起写
ax.axis[顶部,右侧].set_visible(False)
# 方法三:利用因为在
# for n in [bottom , top , right]:
# ax.axis[n].set_visible(False)
x=np.arange(-2*np.pi,2*np.pi,0.01)
def pi_formatter(x,pos):
将数值转换为以圆周率/4为单位的刻度文本
m=np.round(x/(np.pi/4))
n=4
如果m % 2==0: m,n=m/2,n/2
如果m % 2==0: m,n=m/2,n/2
如果m==0:
返回"0"
如果m==1且n==1:
返回" $\pi$ "
如果n==1:
返回r$%d \pi$ % m
如果m==1:
返回r$\frac{\pi}{%d}$ % n
返回r$\frac{%d \pi}{%d}$ % (m,n)
# 设置两个坐标轴的范围
plt.ylim(-3,3)
plt.xlim(-2*np.pi,np.max(x))
# 设置图的底边距
PLT。支线剧情_调整(bottom=0.15)
plt.grid() #开启网格
# 主刻度为圆周率/4
斧头。xaxis。set _ major _ locator(多定位器(NP。/4))
# 主刻度文本用pi _格式化程序函数计算
斧头。xaxis。set _ major _ formatter(func formatter(pi _ formatter))
# 副刻度为/20
斧头。xaxis。set _ minor _ locator(多定位器(NP。/20))
# 设置刻度文本的大小
对于ax.xaxis.get_major_ticks()中的勾选:
tick.label1.set_fontsize(16)
设置刻度
ax.set_ylim(-3,3)
ax.set_yticks([-1,-0.5,0,0.5,1])
ax.set_xlim([-5,8])
# ax.set_xticks([-5,5,1])
#设置网格样式
ax.grid(True,linestyle=-. )
ax.plot(x,1/np.sin(x),color=lightskyblue ,label=$csc(x)$ )
ax.plot(x,np.sin(x),color=red ,label=$sin(x)$ )
ax.plot(x,np.cos(x),color=orange ,label=$cos(x)$ )
ax.plot(x,1/np.cos(x),color=green ,label=$sec(x)$ )
ax.plot(x,np.sin(x)/np.cos(x),color=orange ,label=$tan(x)$ )
ax.plot(x,np.cos(x)/np.sin(x),color=skyblue ,label=$cot(x)$ )
ax.plot(x,x,color=black ,label=$y=x$ )
x3=np.arange(-np.pi/2,np.pi/2,0.01)
ax.plot(x,np.sin(x),color=red ,label=$sin(x)$ )
ax.plot(x3,np.sin(x3),color=green ,label=$sin(x),x[-/2,/2]$ )
ax.plot(np.sin(x3),x3,color=blue ,label=$arcsin(x)$ )
x2=np.arange(0,np.pi,0.01)
ax.plot(x,np.cos(x),color=green ,label=$cos(x)$ )
ax.plot(x2,np.cos(x2),color=red ,label=$cos(x),x[0,]$ )
ax.plot(np.cos(x2),x2,color=brown ,label=$arccos(x)$ )
x4=np.arange(-np.pi/2,np.pi/2,0.01)
ax.plot(x,np.tan(x),color=red ,label=$tan(x)$ )
ax.plot(x4,np.tan(x4),color=green ,label=$tan(x),x(-/2,/2)$ )
ax.plot(np.tan(x4),x4,color=blue ,label=$arctan(x)$ )
plt。图例()
plt.show()
# 存为图像
# fig.savefig(test.png )
原文链接:https://博客。csdn。net/QQ _ 40828914/文章/详情/105929384
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。