之前对三角函数的理解仅局限于sin,cos,tan。但是目前考研过程中遇到的都是些csc,sec,cot,arctan,arccos,arcsin。

积分和求导还有一堆公式,很容易记混。我就想能不能用图像帮助记忆,就算记不起来,也能猜出来一些公式。

对于sin和cos,根据图像就可以猜出他们之间的关系。

sin(x)在-pi/2到+pi/2,单增,-pi/2到0增速由慢到快,0到pi/2增速由快到慢。根据导数定义,在0点处导数lim(x->0)sinx/x=1。在pi/2和-pi/2处切线斜率为0,所以导数为0。把sin(x)每一点导数值在脑海里浮现一下,那么在脑海里就可以大致想象出sin(x)的导函数图像,就是cos(x)。

原以为用python画图很简单,但是画了几次,发现图像都不是我想要的,有的坐标轴刻度是1,但是我想让他变成pi。有的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,x∈R因为在整个定义域上没有一一对应关系,所以不存在反函数。

反正弦函数对这样一个函数y=sinx,x∈[-π/2,π/2]成立,这里截取的是正弦函数靠近原点的一个单调区间。y=arcsinx 的定义域:[-1,1],值域:[-π/2,π/2]

cos(x)和arccos(x)

y=cosx,x∈R因为在整个定义域上没有一一对应关系,所以不存在反函数。

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.源代码

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签

plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号

#import pandas as pd

import numpy as np

from mpl_toolkits.axisartist.axislines import SubplotZero

import numpy as np

from matplotlib.ticker import MultipleLocator, FuncFormatter

fig = plt.figure(1, (10, 6))

ax = SubplotZero(fig, 1, 1, 1)

fig.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["新建1"] = ax.new_floating_axis(nth_coord=0, value=1,axis_direction="bottom")

#ax.axis["新建1"].toggle(all=True)

#ax.axis["新建1"].label.set_text("y = 1横坐标")

#ax.axis["新建1"].label.set_color('blue')

"""坐标箭头"""

ax.axis["xzero"].set_axisline_style("-|>")

ax.axis["yzero"].set_axisline_style("-|>")

"""隐藏坐标轴"""

# 方法一:隐藏上边及右边

# ax.axis["right"].set_visible(False)

# ax.axis["top"].set_visible(False)

#方法二:可以一起写

ax.axis["top",'right'].set_visible(False)

# 方法三:利用 for in

# 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):

"""

将数值转换为以pi/4为单位的刻度文本

"""

m = np.round(x / (np.pi / 4))

n = 4

if m % 2 == 0: m, n = m / 2, n / 2

if m % 2 == 0: m, n = m / 2, n / 2

if m == 0:

return "0"

if m == 1 and n == 1:

return "$\pi$"

if n == 1:

return r"$%d \pi$" % m

if m == 1:

return r"$\frac{\pi}{%d}$" % n

return r"$\frac{%d \pi}{%d}$" % (m, n)

# 设置两个坐标轴的范围

plt.ylim(-3 , 3)

plt.xlim(-2*np.pi, np.max(x))

# 设置图的底边距

plt.subplots_adjust(bottom=0.15)

plt.grid() # 开启网格

# 主刻度为pi/4

ax.xaxis.set_major_locator(MultipleLocator(np.pi / 4))

# 主刻度文本用pi_formatter函数计算

ax.xaxis.set_major_formatter(FuncFormatter(pi_formatter))

# 副刻度为pi/20

ax.xaxis.set_minor_locator(MultipleLocator(np.pi / 20))

# 设置刻度文本的大小

for tick in 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.legend()

plt.show()

# 存为图像

# fig.savefig('test.png')

原文链接:https://blog.csdn.net/qq_40828914/article/details/105929384

python中的反三角函数_用python画所有三角函数和反三角函数图像相关推荐

  1. lambda在python中的用法_在python中对lambda使用.assign()方法

    我在Python中运行以下代码:#Declaring these now for later use in the plots TOP_CAP_TITLE = 'Top 10 market capit ...

  2. 在python中设置密码登录_在python中生成密码

    在python中生成密码 我想在python中生成一些字母数字密码. 一些可能的方法是: import string from random import sample, choice chars = ...

  3. python中tkinter模块_使用Python中的tkinter模块作图的方法

    python简述: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程.Python[1 ...

  4. python中 什么意思_请问python中%代表什么意思?

    婷婷同学_ 1.格式符例如:a = 'test'print 'it is a %s' %(a)打印的结果就是 it is a test2.单独看%,是一个运算符号,求余数.例如:求模运算,相当于mod ...

  5. python中的帮助_在Python中使用help帮助

    原博文 2014-10-18 23:21 − 在Python中使用help帮助 >>> import numpy >>> help(numpy.argsort) H ...

  6. python中class变量_对python 中class与变量的使用方法详解

    python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...

  7. python中__init__方法_关于python中__init__方法理解

    在理解__init__方法之前,我们需要搞明白,什么时候才需要用到的这个方法 什么是__init__? __init__方法在python中是类的初始化,通俗来讲,就是每次只要你去创建一个类的实例对象 ...

  8. python中if控制语句_了解Python控制流语句——if语句

    控制流 截止到现在,在我们所看过的程序中,总是有一系列语句从上到下精确排列,并交由 Python 忠实地执行.如果你想改变这一工作流程,应该怎么做?就像这样的情况:你需要程序作出一些决定,并依据不同的 ...

  9. python中合并列表_关于python:如何将两个列表合并到一个列表中?

    我有 a = [1, 2] b = ['a', 'b'] 我想要 c = [1, 'a', 2, 'b'] 号 @cdleary's answer stackoverflow.com/question ...

  10. python中select模块_基于python select.select模块通信的实例讲解 如何用python写个串口通信的程序...

    python socket怎么利用select实现双工通信 方法: Before : 0000000000000000000000000000000000000000 After pack: 0100 ...

最新文章

  1. python扫雷 广度优先_Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper)...
  2. Fuzzy Hashing 算法工具ssdeep 使用
  3. dedecms调用当前栏目ID与当前栏目顶级ID的方法
  4. centos 6.3安装mysql_centos6.3安装MySQL 5.6(转)
  5. C# 学生简单管理系统 数据库 1.0版本
  6. Grafana 中存在严重的未授权任意文件读取漏洞,已遭利用
  7. cxf与struts2拦截器冲突的解决方案
  8. JavaScript:加载请求本地资源工具StaticResourceUtil.js
  9. 网络电视测试软件,「图」电视直播源有效性检测软件 m3u8 IPTV checker_高清时代论坛...
  10. 崔云php_佘家村里的“茉莉香”
  11. Lomo 照片特效 Lr 预设 Lomo Lightroom Presets
  12. 单片机指令MOV、MOVC、MOVX的区别与联系
  13. osgEarth示例分析——osgearth_los
  14. prometheus PromSQL使用小技巧
  15. React 组件封装之 Card 卡片
  16. VSCode 配置Java环境
  17. js 代码 摘录收集贴
  18. 路径规划之Field D*算法
  19. 003:NumPy的应⽤-1
  20. 2019-10-31-ASP.NET-Core-连接-GitLab-与-MatterMost-打造-devops-工具

热门文章

  1. AMiner推荐论文:Strongly coupled N-doped graphene quantum dots/Ni(Fe)OxHy electrocatalysts with accelerat
  2. c语言编写用户注册程序,如何用c实现登录和注册的程序?
  3. 数学知识(一)-有理数
  4. kappa一致性检验教程_诊断试验的一致性检验-Kappa
  5. Unix传奇历史与回忆-读史使人明智,鉴以往而知未来
  6. 记住网站建设这几个步骤
  7. 定时语音提醒软件实现
  8. 计算房贷利率月供相关信息(等额本息)
  9. AutoCAD.NET开发:PaletteSet
  10. 杭州毕业生就业创业补贴全攻略