1. 程式人生 > >小朋友學數學(22):三角函式

小朋友學數學(22):三角函式

一、定義

1.png

在上面這個直角三角形裡,C為直角,A, B為非直角,角C對應的斜邊為c,角B對應的直角邊為b,角A對應的直角邊為a。

定義:
正弦值為對邊的值比斜邊的值,記為sin
餘弦值為鄰邊的值比斜邊的值,記為cos
正切值為對邊的值比鄰邊的值,記為tan
餘切值為鄰邊的值比對邊的值,記為cot

在上圖所示的三角形中:
(1)sin A = ∠A的對邊 / 斜邊 = a / c
(2)cos A = ∠A的鄰邊 / 斜邊 = b / c
(3)tan A = ∠A的對邊 / ∠A的鄰邊 = a / b
(4)cot A = ∠A的鄰邊 / ∠A的對邊 = b / a
這裡容易看出:
(5)sin A / cos A = (a / c) / (b / c) = a / b = tan A
(6)cos A / sin A = (b / c) / (a / c) = b / a = cot A
(7)tan A * cot A = 1, tan A = 1 / cot A, cot A = 1 / tan A

同理:
(8)sin B = b / c
(9)cos B = a / c
(10)tan B = b / a = 1 / cot B
(11)cot B = a / b = 1 / tan B
這裡可以看出,
(12)sin B = cos A = cos(90 - B)
(13)cosB = sin A = sin(90 - B)

二、推導0度,30度,45度,60度,90度角的正弦值、餘弦值、正切值和餘切值

(一)求正弦

2.png

如圖2所示,角B接近0度,角A接近90度。把b邊繼續往下壓,最終A和C會重合,也就是說,三角形會變成一條線段,此時b = 0,a = c,sin B = sin 0 = b / c = 0,sin A = sin 90 = a / c = 1

3.png

如圖3所示,∠A = 60度, ∠B = 30度,取AB的中點M,延長CM到D,使得CM = MD。
根據平行四邊形的判定定理“對角線互相平分的四邊形為平行四邊形”可知,ACBD是平行四邊形。
因為∠C = 90度,所以ACBD是矩形。則 MD = CM = AM = MB。這樣就得到了直角三角形的斜邊中線定理:直角三角形斜邊上的路線等於斜邊的一半。
所以三角形ACM是等腰三角形。又因為∠A = 60度,所以三角形ACM是等邊三角形。所以AC = AM = AB / 2,即c = 2b。根據勾股定理, a = √(c2 - b2) = √(3b2) = √3 * b
sin B = sin 30 = b / c = 1 / 2。
sin A = sin 60 = a / c = (√3 * b)/(2b) = √3 / 2

4.png

如圖4所示,∠A = ∠B = 45度,則a = b。
根據勾股定理,
a2 + b2 = c2
==> 2a2 = c2
==> √2 * a = c
==> sinA = sin 45 = a / c = a / (√2 * a) = √2 / 2

綜上,
sin 0 = √0 / 2 = 0
sin 30 = √1 / 2 = 1 / 2
sin 45 = √2 / 2
sin 60 = √3 / 2
sin 90 = √4 / 2 = 1

(二)求餘弦

由上面的式子(13)可得,
cos 0 = sin(90 - 0) = 1
cos 30 = sin(90 - 30) = sin 60 = √3 / 2
cos 45 = sin(90 - 45) = sin 45 = √2 / 2
cos 60 = sin(90 - 60) = sin 30 = 1 / 2
cos 90 = sin(90 - 90) = sin 0 = 0

(三)求正切

根據上面的式子(5),
tan 0 = sin 0 / cos 0 = 0
tan 30 = sin 30 / cos 30 = (1 / 2) / (√3 / 2) = 1 / √3 = √3 / 3
tan 45 = sin 45 / cos 45 = (√2 / 2) / (√2 / 2) = 1
tan 60 = sin 60 / cos 60 = (√3 / 2) / (1 / 2) = √3
tan 90 = sin 90 / cos 90 = 1 / 0 = ∞ (注意,分母不等為0,這裡可以把0理解為一個無限接近於0的很小的數。1除於很小的數等於∞。)

(四)求餘切

根據上面的式子(7),
cot 0 = 1 / tan 0 = ∞
cot 30 = 1 / tan 30 = 1 / (√3 / 3) = 3 / √3 = √3
cot 45 = 1 / tan 45 = 1
cot 60 = 1 / tan 60 = 1 / √3 = √3 / 3
cot 90 = 1 / tan 90 = 1 / ∞ = 0

少兒程式設計QQ群:581357582
少兒英語QQ群:952399366
公眾號.jpg

相關推薦

小朋友數學22三角函式

一、定義 在上面這個直角三角形裡,C為直角,A, B為非直角,角C對應的斜邊為c,角B對應的直角邊為b,角A對應的直角邊為a。 定義: 正弦值為對邊的值比斜邊的值,記為sin 餘弦值為鄰邊的值比斜邊的值,記為cos 正切值為對邊的值比鄰邊的值,記為tan 餘切

小朋友演算法15計算年份的天干地支

十天干:甲、乙、丙、丁、戊、己、庚、辛、壬、癸; 十二地支:子、醜、寅、卯、辰、巳、午、未、申、酉、戌、亥。 天干地支紀年法首先是天干在前,地支在後,比如今年2018就是戊戌年。 天干演算法: 4、5、6、7、8、9、0、1、2、3對應的十天干就是 甲、乙、丙、丁、戊、己、庚、辛

小朋友演算法7求排列數

程式: #include <iostream> using namespace std; typedef long long ll; ll permutation(ll n, l

小朋友Python4縮排

學習 Python 與其他語言最大的區別就是,Python 的程式碼塊不使用大括號 {} 來控制類,函式以及其他邏輯判斷。python 最具特色的就是用縮排來寫模組。 縮排的空白數量是可變的,但是所有程式碼塊語句必須包含相同的縮排空白數量,這個必須嚴格執行

小朋友C++3類與物件

(一)類與物件 類是由我們根據客觀事物抽象而成,形成一類事物,然後用類去定義物件,形成這類事物的具體個體。 比如小狗是一個類,你家的“旺財”則是小狗一個具體的物件。 (二)屬性與方法 一般把類的資料成員稱為類的屬性,把類的函式成員稱為方法。 比如小

小白 Python22time 和 calendar 模組簡單使用

人生苦短,我選Python 前文傳送門 小白學 Python(1):開篇 小白學 Python(2):基礎資料型別(上) 小白學 Python(3):基礎資料型別(下) 小白學 Python(4):變數基礎操作 小白學 Python(5):基礎運算子(上) 小白學 Python(6):基礎運算子(下)

小白 Python 爬蟲22解析庫 Beautiful Soup

人生苦短,我用 Python 前文傳送門: 小白學 Python 爬蟲(1):開篇 小白學 Python 爬蟲(2):前置準備(一)基本類庫的安裝 小白學 Python 爬蟲(3):前置準備(二)Linux基礎入門 小白學 Python 爬蟲(4):前置準備(三)Docker基礎入門 小白學 Pyth

ActiveMQ22Consumer高級特性之消息分組Message Groups

jms message groups activemq 一、簡介Message Groups就是對消息分組,它是Exclusive Consumer功能的增強。邏輯上,Message Groups 可以看成是一種並發的Exclusive Consumer。跟所有的消息都由唯一的consumer處理

Akka22 Stream實時操控動態管道連接-MergeHub,BroadcastHub and PartitionHub

urn abs bound parameter code 結果類型 subscribe mil 又是 在現實中我們會經常遇到這樣的場景:有一個固定的數據源Source,我們希望按照程序運行狀態來接駁任意數量的下遊接收方subscriber、又或者我需要在程序運行時(ru

每天一個linux命令22tar命令

soft 小文件 sof linu gunzip 算法 rect 過程 提取文件 通過SSH訪問服務器,難免會要用到壓縮,解壓縮,打包,解包等,這時候tar命令就是是必不可少的一個功能強大的工具。linux中最流行的tar是麻雀雖小,五臟俱全,功能強大。 tar命令可以為l

Akka22 Stream實時操控動態管道連線-MergeHub,BroadcastHub and PartitionHub

在現實中我們會經常遇到這樣的場景:有一個固定的資料來源Source,我們希望按照程式執行狀態來接駁任意數量的下游接收方subscriber、又或者我需要在程式執行時(runtime)把多個數據流向某個固定的資料流終端Sink推送。這就涉及到動態連接合並型Merge或擴散型Broadcast的資料流連

Cris SpringMVC使用 servlet 原生 api 作為方法入參

程式碼測試 /* * 可以使用原生的 servlet 的api 作為目標方法的引數,具體支援以下型別 * * HttpServletRequst * HttpServletResponse * HttpSess

從0開始pyspark使用pyspark.ml.clustering模組對商場顧客聚類

資料下載: 資料為kaggle上的關於商場客戶的資料,地址:https://www.kaggle.com/vjchoudhary7/customer-segmentation-tutorial-in-python 資料準備: 資料集很小,四個特徵值:性別,年齡,收入能力,消費

從零開始caffe利用GoogleNet實現影象識別

一、準備模型 在這裡,我們利用已經訓練好的Googlenet進行物體影象的識別,進入Googlenet的GitHub地址,進入models資料夾,選擇Googlenet 點選Googlenet的模型下載地址下載該模型到電腦中。 模型結構 在這裡,我們利用之前講

新手python3yield與序列化

1 Yield生成器        Yield是我在其他語言中沒有見過的一個屬性,算是python的一大特色,用好之後可以使程式碼更簡潔。考慮一個簡單的例子,檔案的遍歷。要遍歷一個目錄下的所有檔案需要遞迴的操作。如果我們只是單純的列印檔名,我們可以在遞迴的過程中完成,每當發

從零開始caffecaffe中snashop的使用

在caffe的訓練期間,我們有時候會遇到一些不可控的以外導致訓練停止(如停電、裝置故障燈),我們就不得不重新開始訓練,這對於一些大型專案而言是非常致命的。在這裡,我們介紹一些caffe中的snashop。利用snashop我們就可以實現訓練的繼續進行。 在之前我們訓練得到的檔案中,我們發現

從零開始caffe在Windows下實現影象識別

本系列文章主要介紹了在win10系統下caffe的安裝編譯,運用CPU和GPU完成簡單的小專案,文章之間具有一定延續性。 step1:準備資料集 資料集是進行深度學習的第一步,在這裡我們從以下五個連結中下載所需要的資料集: animal flower plane hou

從零開始caffeCaffe在Windows環境下GPU版本的安裝

之前我們已經安裝過caffe的CPU版本,但是在MNIST手寫數字識別中,我們發現caffe的CPU版本執行速度較慢,訓練效率不高。因此,在這裡我們安裝了caffe的GPU版本,並使用GPU版本的caffe同樣對手寫MNIST數字集進行訓練。 step1: 安裝CUDA

從零開始caffemnist手寫數字識別網路結構模型和超引數檔案的原始碼閱讀

下面為網路結構模型 %網路結構模型 name: "LeNet" #網路的名字"LeNet" layer { #定義一個層 name: "mnist" #層的名字"mnist" type:

從零開始caffecaffe在win10下的安裝編譯

環境要求 作業系統:64位windows10 編譯環境:Visual Studio 2013 Ultimate版本 安裝流程 step1:檔案的下載 從GitHub新增連結描述中下載Windows版本的caffe,並進行解壓到電腦中。 step2:檔案修改 將壓縮包