Llogaritni funksionet trigonometrike në Python (sin, cos, tan, arcsin, arccos, arctan)

biznes

Duke përdorur matematikën, modulin standard të Python për funksionet matematikore, mund të llogaritni funksionet trigonometrike (sin, cos, tan) dhe funksionet trigonometrike të anasjellta (arcsin, arccos, arctan).

Përmbajtja e mëposhtme shpjegohet këtu me kodet e mostrës.

  • Pi (3.1415926..):math.pi
  • Konvertimi i këndit (radianë, gradë):math.degrees(),math.radians()
  • Sinus, sinus i anasjelltë:math.sin(),math.asin()
  • kosinus, kosinus i anasjelltë:math.cos(),math.acos()
  • Tangjente, tangjente e anasjelltë:math.tan(),math.atan(),math.atan2()
  • Dallimet më poshtë:math.atan(),math.atan2()

Pi (3.1415926..):math.pi

Pi është dhënë si një konstante në modulin e matematikës. Ai shprehet si më poshtë.
math.pi

import math

print(math.pi)
# 3.141592653589793

Konvertimi i këndit (radianë, gradë):math.degrees(),math.radians()

Funksionet trigonometrike dhe të anasjellta trigonometrike në modulin e matematikës përdorin radianin si njësi të këndit.

Përdorni math.degrees() dhe math.radians() për të kthyer ndërmjet radianëve (metoda e shkallës së harkut) dhe shkallëve (metoda e shkallës).

Math.degrees() konverton nga radianët në gradë, dhe math.radians() konverton nga gradë në radian.

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

print(math.radians(180))
# 3.141592653589793

Sinus, sinus i anasjelltë:math.sin(),math.asin()

Funksioni për të gjetur sinusin (sin) është math.sin() dhe funksioni për të gjetur sinusin e kundërt (arcsin) është math.asin().

Këtu është një shembull i gjetjes së sinusit prej 30 gradë, duke përdorur math.radians() për të kthyer gradët në radiane.

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

Sinusi prej 30 gradësh është 0,5, por ka një gabim sepse pi, një numër irracional, nuk mund të llogaritet me saktësi.

Nëse dëshironi të rrumbullakosni në numrin e duhur të shifrave, përdorni funksionin round() ose metodën format() ose funksionin format().

Vini re se vlera e kthyer e round() është një numër (int ose float), por vlera e kthyer e format() është një varg. Nëse dëshironi ta përdorni për llogaritjet e mëvonshme, përdorni round().

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'>

Funksioni round() specifikon numrin e numrave dhjetorë si argument të dytë. Vini re se kjo nuk është rreptësisht e rrumbullakosur. Shihni artikullin e mëposhtëm për detaje.

Metoda format() dhe funksioni format() specifikojnë numrin e numrave dhjetorë në vargun e specifikimit të formatimit. Shihni artikullin e mëposhtëm për detaje.

Nëse dëshironi të krahasoni, mund të përdorni edhe math.isclose().

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

Në mënyrë të ngjashme, këtu është një shembull i gjetjes së sinusit të kundërt prej 0.5. math.asin() kthen radianët, të cilët konvertohen në gradë me math.degrees().

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

print(round(asin05, 3))
# 30.0

kosinus, kosinus i anasjelltë:math.cos(),math.acos()

Funksioni për të gjetur kosinusin (cos) është math.cos(), dhe funksioni për të gjetur kosinusin e kundërt (kosinusi i harkut, arccos) është math.acos().

Këtu është një shembull i gjetjes së kosinusit 60 gradë dhe kosinusit të kundërt prej 0,5.

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

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

Nëse dëshironi të rrumbullakoni në shifrën e duhur, mund të përdorni round() ose format() si me sinus.

Tangjente, tangjente e anasjelltë:math.tan(),math.atan(),math.atan2()

Funksioni për të gjetur tangjenten (tan) është math.tan(), dhe funksioni për të gjetur tangjenten e anasjelltë (arctan) është math.atan() ose math.atan2().
Math.atan2() përshkruhet më vonë.

Një shembull i gjetjes së tangjentës 45 gradë dhe tangjentes së anasjelltë prej 1 shkallë është paraqitur më poshtë.

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

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

Dallimi midis math.atan() dhe math.atan2()

Të dy math.atan() dhe math.atan2() janë funksione që kthejnë tangjenten e anasjelltë, por ato ndryshojnë në numrin e argumenteve dhe gamën e vlerave të kthyera.

math.atan(x) ka një argument dhe kthen arctan(x) në radianë. Vlera e kthimit do të jetë midis -pi \ 2 dhe pi \ 2 (-90 deri në 90 gradë).

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

Në shembullin e mësipërm, math.inf përfaqëson pafundësinë.

math.atan2(y, x) ka dy argumente dhe kthen arctan(y \ x) në radianë. Ky kënd është këndi (deklinimi) që bën vektori nga origjina në koordinatat (x, y) me drejtimin pozitiv të boshtit x në planin koordinativ polar, dhe vlera e kthyer është ndërmjet -pi dhe pi (-180 në 180 gradë).

Meqenëse këndet në kuadrantin e dytë dhe të tretë mund të përftohen gjithashtu saktë, math.atan2() është më i përshtatshëm se math.atan() kur merret parasysh plani koordinativ polar.

Vini re se rendi i argumenteve është y, x, jo 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

Si në shembullin e mësipërm, drejtimi negativ i boshtit x (y është zero dhe x është negativ) është pi (180 gradë), por kur y është zero negativ, është -pi (-180 gradë). Kini kujdes nëse doni ta trajtoni me rreptësi shenjën.

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

Zerot negative janë rezultat i veprimeve të mëposhtme

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

print(-1.0 * 0.0)
# -0.0

Numrat e plotë nuk trajtohen si zero negative.

print(-0.0)
# -0.0

print(-0)
# 0

Edhe kur të dyja x dhe y janë zero, rezultati varet nga shenja.

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

Ka shembuj të tjerë ku shenja e rezultatit ndryshon në varësi të zerave negative, si math.atan2() si dhe math.sin(), math.asin(), math.tan() dhe 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

Vini re se shembujt e deritanishëm janë rezultatet e ekzekutimit të programit në CPython. Vini re se zbatimet ose mjediset e tjera mund t’i trajtojnë ndryshe zerat negative.

Copied title and URL