偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Python實現(xiàn)之初等函數(shù)三之三角函數(shù)

開發(fā) 后端
三角函數(shù)在python和numpy中實現(xiàn)的不夠全面,主要包括cos, cosh, sin sinh, tan, tanh三角函數(shù)和arccos, arccosh, arcsin, arcsinh, arctan, arctanh反三角函數(shù),cot,sec,csc,arccot,arcsec,arccsc均為提供,不過可以通過其他函數(shù)進行組合或變形得以實現(xiàn)。

[[414278]]

本文轉(zhuǎn)載自微信公眾號「python與大數(shù)據(jù)分析」,作者一只小小鳥鳥。轉(zhuǎn)載本文請聯(lián)系python與大數(shù)據(jù)分析公眾號。

三角函數(shù)在python和numpy中實現(xiàn)的不夠全面,主要包括cos, cosh, sin sinh, tan, tanh三角函數(shù)和arccos, arccosh, arcsin, arcsinh, arctan, arctanh反三角函數(shù),cot,sec,csc,arccot,arcsec,arccsc均為提供,不過可以通過其他函數(shù)進行組合或變形得以實現(xiàn)。

三角函數(shù)是基本初等函數(shù)之一,是以角度(數(shù)學(xué)上最常用弧度制,下同)為自變量,角度對應(yīng)任意角終邊與單位圓交點坐標(biāo)或其比值為因變量的函數(shù)。也可以等價地用與單位圓有關(guān)的各種線段的長度來定義。三角函數(shù)在研究三角形和圓等幾何形狀的性質(zhì)時有重要作用,也是研究周期性現(xiàn)象的基礎(chǔ)數(shù)學(xué)工具。在數(shù)學(xué)分析中,三角函數(shù)也被定義為無窮級數(shù)或特定微分方程的解,允許它們的取值擴展到任意實數(shù)值,甚至是復(fù)數(shù)值。

反三角函數(shù)是一種基本初等函數(shù)。它是反正弦arcsin x,反余弦arccos x,反正切arctan x,反余切arccot x,反正割arcsec x,反余割arccsc x這些函數(shù)的統(tǒng)稱,各自表示其正弦、余弦、正切、余切 ,正割,余割為x的角

  1. #!/usr/bin/env python 
  2. # -*- coding: UTF-8 -*- 
  3. #                     _ooOoo_ 
  4. #                   o8888888o 
  5. #                    88" . "88 
  6. #                 ( | -  _  - | ) 
  7. #                     O\ = /O 
  8. #                 ____/`---'\____ 
  9. #                  .' \\| |// `. 
  10. #                 / \\|||:|||// \ 
  11. #               / _|||||-:- |||||- \ 
  12. #                | | \\\ - /// | | 
  13. #              | \_| ''\---/'' | _/ | 
  14. #               \ .-\__ `-` ___/-. / 
  15. #            ___`. .' /--.--\ `. . __ 
  16. #         ."" '< `.___\_<|>_/___.' >'""
  17. #       | | : `- \`.;`\  _ /`;.`/ - ` : | | 
  18. #          \ \ `-. \_ __\ /__ _/ .-` / / 
  19. #      ==`-.____`-.___\_____/___.-`____.-'== 
  20. #                     `=---=' 
  21. ''
  22. @Project :pythonalgorithms  
  23. @File :trigonometric.py 
  24. @Author :不勝人生一場醉@Date :2021/7/26 23:28  
  25. ''
  26. import matplotlib.pyplot as plt 
  27. import numpy as np 
  28. import math 
  29. import mpl_toolkits.axisartist as axisartist  # 導(dǎo)入坐標(biāo)軸加工模塊 
  30. # 三角函數(shù)是基本初等函數(shù)之一,是以角度(數(shù)學(xué)上最常用弧度制,下同)為自變量,角度對應(yīng)任意角終邊與單位圓交點坐標(biāo)或其比值為因變量的函數(shù)。 
  31. # 也可以等價地用與單位圓有關(guān)的各種線段的長度來定義。三角函數(shù)在研究三角形和圓等幾何形狀的性質(zhì)時有重要作用, 
  32. # 也是研究周期性現(xiàn)象的基礎(chǔ)數(shù)學(xué)工具。 
  33. # 在數(shù)學(xué)分析中,三角函數(shù)也被定義為無窮級數(shù)或特定微分方程的解,允許它們的取值擴展到任意實數(shù)值,甚至是復(fù)數(shù)值。 
  34. # 正弦函數(shù) :y =sin x 
  35. # 正弦(sine),數(shù)學(xué)術(shù)語,在直角三角形中,任意一銳角∠A的對邊與斜邊的比叫做∠A的正弦,記作sinA(由英語sine一詞簡寫得來),即sinA=∠A的對邊/斜邊。 
  36. # 余弦函數(shù) :y =cos x 
  37. # 余弦(余弦函數(shù))。在Rt△ABC(直角三角形)中,∠C=90°(如概述圖所示),∠A的余弦是它的鄰邊比三角形的斜邊,即cosA=b/c,也可寫為cosa=AC/AB。余弦函數(shù):f(x)=cosx(x∈R) 
  38. # 平方和關(guān)系 
  39. # (sinα)^2 +(cosα)^2=1 
  40. # 積的關(guān)系 
  41. # sinα = tanα × cosα(即sinα / cosα = tanα ) 
  42. # cosα = cotα × sinα (即cosα / sinα = cotα) 
  43. # tanα = sinα × secα (即 tanα / sinα = secα) 
  44. # 倒數(shù)關(guān)系 
  45. # tanα × cotα = 1 
  46. # sinα × cscα = 1 
  47. # cosα × secα = 1 
  48. # 商的關(guān)系 
  49. # sinα / cosα = tanα = secα / cscα 
  50. # 和角公式 
  51. # sin ( α ± β ) = sinα · cosβ ± cosα · sinβ 
  52. # sin ( α + β + γ ) = sinα · cosβ · cosγ + cosα · sinβ · cosγ + cosα · cosβ · sinγ - sinα · sinβ · sinγ 
  53. # cos ( α ± β ) = cosα cosβ ∓ sinβ sinα 
  54. # tan ( α ± β ) = ( tanα ± tanβ ) / ( 1 ∓ tanα tanβ ) 
  55. # 倍角半角公式 
  56. # sin ( 2α ) = 2sinα · cosα [1] 
  57. # sin ( 3α ) = 3sinα - 4sin & sup3 ; ( α ) = 4sinα · sin ( 60 + α ) sin ( 60 - α ) 
  58. # sin ( α / 2 ) = ± √( ( 1 - cosα ) / 2) 
  59. # 級數(shù)展開 
  60. # sin x = x - x3 / 3! + x5 / 5! - ... ( - 1 ) k - 1 * x 2 k - 1 / ( 2k - 1 ) ! + ... ( - ∞ < x < ∞ ) 
  61. # 導(dǎo)數(shù) 
  62. # ( sinx ) ' = cosx 
  63. # ( cosx ) ' = ﹣ sinx 
  64.  
  65. if __name__ == "__main__"
  66.    sincosfunction() 
  67.    tanctnfunction() 
  68.    seccscfunction() 
  69.    arcsincosfunction() 
  70.    arccscfunction() 
  1. def sincosfunction(): 
  2.    plt.figure(figsize=(10, 5)) 
  3.    ax = plt.gca()  # 通過gca:get current axis得到當(dāng)前軸 
  4.    plt.rcParams['font.sans-serif'] = ['SimHei']  # 繪圖中文 
  5.    plt.rcParams['axes.unicode_minus'] = False  # 繪圖負號 
  6.    x = np.linspace(-np.pi*2, np.pi*2, 200) 
  7.  
  8.    y = np.sin(x) 
  9.    label = 'np.sin(x)' 
  10.    plt.plot(x, y, label=label) 
  11.    y = np.cos(x) 
  12.    label = 'np.cos(x)' 
  13.    plt.plot(x, y, label=label) 
  14.    y = np.power(np.sin(x),2) 
  15.    label = 'np.sin(x)^2' 
  16.    plt.plot(x, y, label=label) 
  17.    y = np.power(np.cos(x),2) 
  18.    label = 'np.cos(x)^2' 
  19.    plt.plot(x, y, label=label) 
  20.    y = np.power(np.cos(x), 2)+np.power(np.sin(x),2) 
  21.    label = 'np.sin(x)^2+np.cos(x)^2' 
  22.    plt.plot(x, y, label=label) 
  23.  
  24.    # 設(shè)置圖片的右邊框和上邊框為不顯示 
  25.    ax.spines['right'].set_color('none'
  26.    ax.spines['top'].set_color('none'
  27.  
  28.    # 挪動x,y軸的位置,也就是圖片下邊框和左邊框的位置 
  29.    # data表示通過值來設(shè)置x軸的位置,將x軸綁定在y=0的位置 
  30.    ax.spines['bottom'].set_position(('data', 0)) 
  31.    # axes表示以百分比的形式設(shè)置軸的位置,即將y軸綁定在x軸50%的位置 
  32.    # ax.spines['left'].set_position(('axes', 0.5)) 
  33.    ax.spines['left'].set_position(('data', 0)) 
  34.    plt.title("sin&cos三角指數(shù)"
  35.    plt.legend(loc='upper right'
  36.    plt.show() 

  1. # 正切函數(shù) :y =tan x 
  2. # 余切函數(shù) :y =cot x 
  3. def tanctnfunction(): 
  4.    #np.tan() 
  5.    plt.figure(figsize=(10, 8)) 
  6.    plt.subplot(1, 2, 1) 
  7.    ax = plt.gca()  # 通過gca:get current axis得到當(dāng)前軸 
  8.    plt.rcParams['font.sans-serif'] = ['SimHei']  # 繪圖中文 
  9.    plt.rcParams['axes.unicode_minus'] = False  # 繪圖負號 
  10.    x = np.append(np.linspace(-np.pi*3/2+0.01, -np.pi/2-0.01, 120),np.linspace(-np.pi/2+0.01, np.pi/2-0.01, 120)) 
  11.    x = np.append(x,np.linspace(np.pi/2+0.01, np.pi*3/2-0.01, 120)) 
  12.    y = np.tan(x) 
  13.    label = 'np.tan(x)' 
  14.    plt.plot(x, y, label=label) 
  15.  
  16.  
  17.    # 設(shè)置圖片的右邊框和上邊框為不顯示 
  18.    ax.spines['right'].set_color('none'
  19.    ax.spines['top'].set_color('none'
  20.  
  21.    # 挪動x,y軸的位置,也就是圖片下邊框和左邊框的位置 
  22.    # data表示通過值來設(shè)置x軸的位置,將x軸綁定在y=0的位置 
  23.    ax.spines['bottom'].set_position(('data', 0)) 
  24.    # axes表示以百分比的形式設(shè)置軸的位置,即將y軸綁定在x軸50%的位置 
  25.    # ax.spines['left'].set_position(('axes', 0.5)) 
  26.    ax.spines['left'].set_position(('data', 0)) 
  27.    plt.title("tan三角指數(shù)"
  28.    plt.legend(loc='upper right'
  29.  
  30.  
  31.    plt.subplot(1, 2, 2) 
  32.    ax = plt.gca()  # 通過gca:get current axis得到當(dāng)前軸 
  33.    plt.rcParams['font.sans-serif'] = ['SimHei']  # 繪圖中文 
  34.    plt.rcParams['axes.unicode_minus'] = False  # 繪圖負號 
  35.    x = np.append(np.linspace(-np.pi+ 0.01, - 0.01, 120), 
  36.               np.linspace( 0.01, np.pi - 0.01, 120)) 
  37.    y = 1/np.tan(x) 
  38.    label = 'np.ctn(x)' 
  39.    plt.plot(x, y, label=label) 
  40.    # 設(shè)置圖片的右邊框和上邊框為不顯示 
  41.    ax.spines['right'].set_color('none'
  42.    ax.spines['top'].set_color('none'
  43.  
  44.    # 挪動x,y軸的位置,也就是圖片下邊框和左邊框的位置 
  45.    # data表示通過值來設(shè)置x軸的位置,將x軸綁定在y=0的位置 
  46.    ax.spines['bottom'].set_position(('data', 0)) 
  47.    # axes表示以百分比的形式設(shè)置軸的位置,即將y軸綁定在x軸50%的位置 
  48.    ax.spines['left'].set_position(('axes', 0.5)) 
  49.    #ax.spines['left'].set_position(('data', 0)) 
  50.    plt.title("ctan三角指數(shù)"
  51.    plt.legend(loc='upper right'
  52.    plt.show() 

  1. # 正割函數(shù) :y =sec x = 1/cos(x) 
  2. # 余割函數(shù) :y =csc x = 1/sin(x) 
  3. def seccscfunction(): 
  4.    plt.figure(figsize=(10, 5)) 
  5.    ax = plt.gca()  # 通過gca:get current axis得到當(dāng)前軸 
  6.    plt.rcParams['font.sans-serif'] = ['SimHei']  # 繪圖中文 
  7.    plt.rcParams['axes.unicode_minus'] = False  # 繪圖負號 
  8.    #x = np.linspace(-np.pi*2, np.pi*2, 200) 
  9.    x = np.append(np.linspace(-np.pi * 3 / 2 + 0.01, -np.pi - 0.01, 120), 
  10.               np.linspace(-np.pi + 0.01, -np.pi / 2 - 0.01, 120)) 
  11.    x = np.append(x, np.linspace(-np.pi / 2 + 0.01,  - 0.01, 120)) 
  12.    x = np.append(x, np.linspace(0.01, np.pi  / 2 - 0.01, 120)) 
  13.    x = np.append(x, np.linspace(np.pi / 2 + 0.01, np.pi  - 0.01, 120)) 
  14.    x = np.append(x, np.linspace(np.pi + 0.01, np.pi * 3 / 2 - 0.01, 120)) 
  15.    y = 1/np.sin(x) 
  16.    label = 'np.csc(x)' 
  17.    plt.plot(x, y, label=label) 
  18.    y = 1/np.cos(x) 
  19.    label = 'np.sec(x)' 
  20.    plt.plot(x, y, label=label) 
  21.  
  22.    # 設(shè)置圖片的右邊框和上邊框為不顯示 
  23.    ax.spines['right'].set_color('none'
  24.    ax.spines['top'].set_color('none'
  25.  
  26.    # 挪動x,y軸的位置,也就是圖片下邊框和左邊框的位置 
  27.    # data表示通過值來設(shè)置x軸的位置,將x軸綁定在y=0的位置 
  28.    ax.spines['bottom'].set_position(('data', 0)) 
  29.    # axes表示以百分比的形式設(shè)置軸的位置,即將y軸綁定在x軸50%的位置 
  30.    # ax.spines['left'].set_position(('axes', 0.5)) 
  31.    ax.spines['left'].set_position(('data', 0)) 
  32.    plt.title("csc&sec三角指數(shù)"
  33.    plt.legend(loc='upper right'
  34.    plt.show() 

  1. ef arcsincosfunction(): 
  2.    plt.figure(figsize=(5, 10)) 
  3.    ax = plt.gca()  # 通過gca:get current axis得到當(dāng)前軸 
  4.    plt.rcParams['font.sans-serif'] = ['SimHei']  # 繪圖中文 
  5.    plt.rcParams['axes.unicode_minus'] = False  # 繪圖負號 
  6.    x = np.linspace(-1, 1, 200) 
  7.  
  8.    y = np.arcsin(x) 
  9.    label = 'np.arcsin(x)' 
  10.    plt.plot(x, y, label=label) 
  11.    y = np.arccos(x) 
  12.    label = 'np.arccos(x)' 
  13.    plt.plot(x, y, label=label) 
  14.  
  15.    # 設(shè)置圖片的右邊框和上邊框為不顯示 
  16.    ax.spines['right'].set_color('none'
  17.    ax.spines['top'].set_color('none'
  18.  
  19.    # 挪動x,y軸的位置,也就是圖片下邊框和左邊框的位置 
  20.    # data表示通過值來設(shè)置x軸的位置,將x軸綁定在y=0的位置 
  21.    ax.spines['bottom'].set_position(('data', 0)) 
  22.    # axes表示以百分比的形式設(shè)置軸的位置,即將y軸綁定在x軸50%的位置 
  23.    # ax.spines['left'].set_position(('axes', 0.5)) 
  24.    ax.spines['left'].set_position(('data', 0)) 
  25.    plt.title("arcsin&arccos三角指數(shù)"
  26.    plt.legend(loc='upper right'
  27.    plt.show() 

  1. # 反正切函數(shù) 
  2. #  正切函數(shù)y=tan x在(-π/2,π/2)上的反函數(shù),叫做反正切函數(shù)。記作arctanx,表示一個正切值為x的角,該角的范圍在(-π/2,π/2)區(qū)間內(nèi)。 
  3. #  定義域R,值域(-π/2,π/2)。 
  4. #   numpy.arctan() 
  5. # 反余切函數(shù) 
  6. #  余切函數(shù)y=cot x在(0,π)上的反函數(shù),叫做反余切函數(shù)。記作arccotx,表示一個余切值為x的角,該角的范圍在(0,π)區(qū)間內(nèi)。 
  7. #  定義域R,值域(0,π)。 
  8. # 反正割函數(shù) 
  9. #   正割函數(shù) :y =sec x = 1/cos(x) 
  10. #  正割函數(shù)y=sec x在[0,π/2)U(π/2,π]上的反函數(shù),叫做反正割函數(shù)。記作arcsecx,表示一個正割值為x的角,該角的范圍在[0,π/2)U(π/2,π]區(qū)間內(nèi)。 
  11. #  定義域(-∞,-1]U[1,+∞),值域[0,π/2)U(π/2,π]。 
  12. # 反余割函數(shù) 
  13. #   余割函數(shù) :y =csc x = 1/sin(x) 
  14. #  余割函數(shù)y=csc x在[-π/2,0)U(0,π/2]上的反函數(shù),叫做反余割函數(shù)。記作arccscx,表示一個余割值為x的角,該角的范圍在[-π/2,0)U(0,π/2]區(qū)間內(nèi)。 
  15. #  定義域(-∞,-1]U[1,+∞),值域[-π/2,0)U(0,π/2]。 
  16. def arccscfunction(): 
  17.    plt.figure(figsize=(10, 5)) 
  18.    ax = plt.gca()  # 通過gca:get current axis得到當(dāng)前軸 
  19.    plt.rcParams['font.sans-serif'] = ['SimHei']  # 繪圖中文 
  20.    plt.rcParams['axes.unicode_minus'] = False  # 繪圖負號 
  21.    x = np.append(np.linspace(0.01, np.pi / 2 - 0.01, 120), 
  22.               np.linspace(np.pi/2+0.01, np.pi  - 0.01, 120)) 
  23.    y = 1/np.cos(x) 
  24.    # 正割函數(shù) sec(x)=1/cos(x) 
  25.    # 反正割函數(shù) 顛倒x,y值即可 
  26.    label = 'np.arcsecx(x)' 
  27.    plt.plot(y, x, label=label) 
  28.  
  29.    # 設(shè)置圖片的右邊框和上邊框為不顯示 
  30.    ax.spines['right'].set_color('none'
  31.    ax.spines['top'].set_color('none'
  32.  
  33.    # 挪動x,y軸的位置,也就是圖片下邊框和左邊框的位置 
  34.    # data表示通過值來設(shè)置x軸的位置,將x軸綁定在y=0的位置 
  35.    ax.spines['bottom'].set_position(('data', 0)) 
  36.    # axes表示以百分比的形式設(shè)置軸的位置,即將y軸綁定在x軸50%的位置 
  37.    # ax.spines['left'].set_position(('axes', 0.5)) 
  38.    ax.spines['left'].set_position(('data', 0)) 
  39.    plt.title("arcsin&arccos三角指數(shù)"
  40.    plt.legend(loc='upper right'
  41.    plt.show() 

 

責(zé)任編輯:武曉燕 來源: python與大數(shù)據(jù)分析
相關(guān)推薦

2021-07-27 05:04:12

python初等函數(shù)

2021-07-30 05:00:04

Python初等函數(shù)

2021-05-07 09:31:10

三角函數(shù)指數(shù)函數(shù)取整函數(shù)

2020-07-06 14:30:47

前端三角函數(shù)動畫

2019-04-30 14:17:56

中關(guān)村零售業(yè)創(chuàng)業(yè)者

2022-02-16 08:21:28

CSS三角邊框動畫SVG

2022-03-16 14:27:49

CSS三角形前端

2021-02-21 14:05:02

區(qū)塊鏈比特幣安全

2021-02-25 18:05:31

Plots圖形繪圖應(yīng)用Linux

2020-10-27 11:24:29

avaScript m

2021-08-30 07:16:45

商業(yè)技術(shù)團隊

2024-07-26 08:45:54

2022-04-19 06:27:13

CSS數(shù)學(xué)函數(shù)calc

2016-10-20 13:36:28

WebRTC瀏覽器服務(wù)器

2024-01-24 13:08:00

2021-10-19 10:09:21

三角形個數(shù)數(shù)組

2013-03-05 10:01:29

Python函數(shù)式編程

2015-05-27 15:29:35

IBM互聯(lián)網(wǎng)+

2011-02-13 17:14:15

LinuxApacheNginx

2024-10-10 08:33:06

點贊
收藏

51CTO技術(shù)棧公眾號