Hitung fungsi trigonometri ing Python (sin, cos, tan, arcsin, arccos, arctan)

Bisnis

Nggunakake math, modul standar Python kanggo fungsi matematika, sampeyan bisa ngetung fungsi trigonometri (sin, cos, tan) lan fungsi trigonometri kuwalik (arcsin, arccos, arctan).

Isi ing ngisor iki diterangake ing kene kanthi kode conto.

  • Pi (3.1415926..):math.pi
  • Konversi sudut (radian, derajat):math.degrees(),math.radians()
  • Sinus, Invers sinus:math.sin(),math.asin()
  • cosinus, invers cosinus:math.cos(),math.acos()
  • Tangent, Inverse tangen:math.tan(),math.atan(),math.atan2()
  • Bedane ing ngisor iki:math.atan(),math.atan2()

Pi (3.1415926..):math.pi

Pi diwenehake minangka konstanta ing modul matematika. Kaandharake kaya ing ngisor iki.
math.pi

import math

print(math.pi)
# 3.141592653589793

Konversi sudut (radian, derajat):math.degrees(),math.radians()

Fungsi trigonometri lan invers ing modul matematika nggunakake radian minangka unit sudut.

Gunakake math.degrees () lan math.radians () Ngonversi antarane radians (cara gelar busur) lan derajat (cara gelar).

Math.degrees () ngowahi saka radian kanggo derajat, lan math.radians () ngowahi saka derajat kanggo radian.

print(math.degrees(math.pi))
# 180.0

print(math.radians(180))
# 3.141592653589793

Sinus, Invers sinus:math.sin(),math.asin()

Fungsi kanggo nemokake sinus (sin) iku math.sin () lan fungsi kanggo nemokake sinus invers (arcsin) iku math.asin ().

Punika conto nemokake sinus 30 derajat, nggunakake math.radians () Ngonversi derajat kanggo radian.

sin30 = math.sin(math.radians(30))
print(sin30)
# 0.49999999999999994

Sinus 30 derajat yaiku 0,5, nanging ana kesalahan amarga pi, nomer irasional, ora bisa diitung kanthi akurat.

Yen sampeyan pengin babak kanggo nomer cocok saka digit, nggunakake babak () fungsi utawa format () cara utawa format () fungsi.

Elinga yen nilai bali saka babak () iku nomer (int utawa float), nanging Nilai bali saka format () iku senar. Yen sampeyan pengin nggunakake kanggo petungan sakteruse, nggunakake babak ().

print(round(sin30, 3))
print(type(round(sin30, 3)))
# 0.5
# <class 'float'>

print('{:.3}'.format(sin30))
print(type('{:.3}'.format(sin30)))
# 0.5
# <class 'str'>

print(format(sin30, '.3'))
print(type(format(sin30, '.3')))
# 0.5
# <class 'str'>

Fungsi babak () nemtokake nomer panggonan desimal minangka argumen kapindho. Elinga yen iki ora strictly dibunderaké. Deleng artikel ing ngisor iki kanggo rincian.

Cara format () lan fungsi format () nemtokake jumlah panggonan desimal ing string spesifikasi format. Deleng artikel ing ngisor iki kanggo rincian.

Yen sampeyan pengin mbandhingaké, sampeyan uga bisa nggunakake math.isclose ().

print(math.isclose(sin30, 0.5))
# True

Kajaba iku, iki minangka conto nemokake sinus invers 0,5. math.asin () ngasilake radian, kang diowahi kanggo derajat karo math.degrees ().

asin05 = math.degrees(math.asin(0.5))
print(asin05)
# 29.999999999999996

print(round(asin05, 3))
# 30.0

cosinus, invers cosinus:math.cos(),math.acos()

Fungsi kanggo nemokake kosinus (cos) yaiku math.cos (), lan fungsi kanggo nemokake kosinus invers (arc cosine, arccos) yaiku math.acos ().

Iki minangka conto nemokake kosinus 60 derajat lan kosinus invers 0,5.

print(math.cos(math.radians(60)))
# 0.5000000000000001

print(math.degrees(math.acos(0.5)))
# 59.99999999999999

Yen sampeyan pengin babak kanggo digit cocok, sampeyan bisa nggunakake babak () utawa format () minangka karo sinus.

Tangent, Inverse tangen:math.tan(),math.atan(),math.atan2()

Fungsi kanggo nemokake tangen (tan) yaiku math.tan(), lan fungsi kanggo nemokake tangen invers (arctan) yaiku math.atan() utawa math.atan2().
Math.atan2 () diterangake mengko.

Conto nemokake tangen 45 derajat lan tangen kuwalik 1 derajat kapacak ing ngisor iki.

print(math.tan(math.radians(45)))
# 0.9999999999999999

print(math.degrees(math.atan(1)))
# 45.0

Bedane antarane math.atan() lan math.atan2()

Loro-lorone math.atan () lan math.atan2 () minangka fungsi sing ngasilake tangent kuwalik, nanging beda-beda ing jumlah argumen lan sawetara nilai bali.

math.atan (x) duwe siji argumen lan ngasilake arctan (x) ing radian. Nilai bali bakal ana ing antarane -pi \ 2 lan pi \ 2 (-90 nganti 90 derajat).

print(math.degrees(math.atan(0)))
# 0.0

print(math.degrees(math.atan(1)))
# 45.0

print(math.degrees(math.atan(-1)))
# -45.0

print(math.degrees(math.atan(math.inf)))
# 90.0

print(math.degrees(math.atan(-math.inf)))
# -90.0

Ing conto ing ndhuwur, math.inf makili tanpa wates.

math.atan2 (y, x) wis loro bantahan lan ngasilake arctan (y \ x) ing radian. Sudut iki minangka sudut (deklinasi) sing digawe vektor saka asal menyang koordinat (x, y) kanthi arah positif sumbu x ing bidang koordinat kutub, lan nilai bali antarane -pi lan pi (-180). nganti 180 derajat).

Wiwit ngarepke ing quadrants kaloro lan katelu uga bisa dipikolehi bener, math.atan2 () luwih cocok saka math.atan () nalika nimbang bidang koordinat polar.

Elinga yen urutan argumen yaiku y, x, dudu x, y.

print(math.degrees(math.atan2(0, 1)))
# 0.0

print(math.degrees(math.atan2(1, 1)))
# 45.0

print(math.degrees(math.atan2(1, 0)))
# 90.0

print(math.degrees(math.atan2(1, -1)))
# 135.0

print(math.degrees(math.atan2(0, -1)))
# 180.0

print(math.degrees(math.atan2(-1, -1)))
# -135.0

print(math.degrees(math.atan2(-1, 0)))
# -90.0

print(math.degrees(math.atan2(-1, 1)))
# -45.0

Kaya ing conto ing ndhuwur, arah negatif sumbu x (y iku nul lan x negatif) iku pi (180 derajat), nanging nalika y nul negatif, iku -pi (-180 derajat). Ati-ati yen sampeyan pengin nangani tandha kanthi ketat.

print(math.degrees(math.atan2(-0.0, -1)))
# -180.0

Nul negatif minangka asil saka operasi ing ngisor iki

print(-1 / math.inf)
# -0.0

print(-1.0 * 0.0)
# -0.0

Integers ora dianggep minangka nul negatif.

print(-0.0)
# -0.0

print(-0)
# 0

Sanajan loro x lan y nul, asil gumantung ing tandha.

print(math.degrees(math.atan2(0.0, 0.0)))
# 0.0

print(math.degrees(math.atan2(-0.0, 0.0)))
# -0.0

print(math.degrees(math.atan2(-0.0, -0.0)))
# -180.0

print(math.degrees(math.atan2(0.0, -0.0)))
# 180.0

Ana conto liyane sing tandha asil owah-owahan gumantung saka nul negatif, kayata math.atan2() uga math.sin(), math.asin(), math.tan(), lan math.atan() .

print(math.sin(0.0))
# 0.0

print(math.sin(-0.0))
# -0.0

print(math.asin(0.0))
# 0.0

print(math.asin(-0.0))
# -0.0

print(math.tan(0.0))
# 0.0

print(math.tan(-0.0))
# -0.0

print(math.atan(0.0))
# 0.0

print(math.atan(-0.0))
# -0.0

print(math.atan2(0.0, 1.0))
# 0.0

print(math.atan2(-0.0, 1.0))
# -0.0

Elinga yen conto nganti saiki minangka asil nglakokake program ing CPython. Elinga yen implementasi utawa lingkungan liyane bisa nangani nul negatif kanthi beda.