Gamit ang math, ang standard na module ng Python para sa mathematical function, maaari mong kalkulahin ang mga trigonometric function (sin, cos, tan) at inverse trigonometric function (arcsin, arccos, arctan).
Ang mga sumusunod na nilalaman ay ipinaliwanag dito kasama ang mga sample na code.
- Pi (3.1415926..):
math.pi
- Conversion ng anggulo (radian, degrees):
math.degrees()
,math.radians()
- Sine, Inverse sine:
math.sin()
,math.asin()
- cosine, inverse cosine:
math.cos()
,math.acos()
- Padaplis, Baliktad na padaplis:
math.tan()
,math.atan()
,math.atan2()
- Mga pagkakaiba sa ibaba:
math.atan()
,math.atan2()
Pi (3.1415926..):math.pi
Ang Pi ay ibinigay bilang isang pare-pareho sa math module. Ito ay ipinahayag bilang mga sumusunod.math.pi
import math
print(math.pi)
# 3.141592653589793
Conversion ng anggulo (radian, degrees):math.degrees(),math.radians()
Ginagamit ng mga trigonometric at inverse na trigonometric function sa math module ang radian bilang unit ng anggulo.
Gamitin ang math.degrees() at math.radians() para mag-convert sa pagitan ng radians (paraan ng arc degree) at degrees (paraan ng degree).
Ang Math.degrees() ay nagko-convert mula sa radians patungo sa degrees, at ang math.radians() ay nagko-convert mula sa degrees patungo sa radians.
print(math.degrees(math.pi))
# 180.0
print(math.radians(180))
# 3.141592653589793
Sine, Inverse sine:math.sin(),math.asin()
Ang function upang mahanap ang sine (sin) ay math.sin() at ang function upang mahanap ang inverse sine (arcsin) ay math.asin().
Narito ang isang halimbawa ng paghahanap ng sine ng 30 degrees, gamit ang math.radians() upang i-convert ang mga degree sa radians.
sin30 = math.sin(math.radians(30))
print(sin30)
# 0.49999999999999994
Ang sine ng 30 degrees ay 0.5, ngunit mayroong isang error dahil ang pi, isang hindi makatwirang numero, ay hindi maaaring kalkulahin nang tumpak.
Kung gusto mong i-round sa naaangkop na bilang ng mga digit, gamitin ang round() function o ang format() method o ang format() function.
Tandaan na ang return value ng round() ay isang numero (int o float), ngunit ang return value ng format() ay isang string. Kung gusto mong gamitin ito para sa mga kasunod na kalkulasyon, gamitin ang 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'>
Tinutukoy ng function na round() ang bilang ng mga decimal na lugar bilang pangalawang argumento nito. Tandaan na hindi ito mahigpit na pag-ikot. Tingnan ang sumusunod na artikulo para sa mga detalye.
Ang format() method at format() function ay tumutukoy sa bilang ng mga decimal na lugar sa formatting specification string. Tingnan ang sumusunod na artikulo para sa mga detalye.
- KAUGNAY:I-format ang conversion sa Python, format (0-filling, exponential notation, hexadecimal, atbp.)
Kung gusto mong ihambing, maaari mo ring gamitin ang math.isclose().
print(math.isclose(sin30, 0.5))
# True
Katulad nito, narito ang isang halimbawa ng paghahanap ng inverse sine na 0.5. Ang math.asin() ay nagbabalik ng mga radian, na kino-convert sa mga degree na may math.degrees().
asin05 = math.degrees(math.asin(0.5))
print(asin05)
# 29.999999999999996
print(round(asin05, 3))
# 30.0
cosine, inverse cosine:math.cos(),math.acos()
Ang function upang mahanap ang cosine (cos) ay math.cos(), at ang function upang mahanap ang inverse cosine (arc cosine, arccos) ay math.acos().
Narito ang isang halimbawa ng paghahanap ng cosine ng 60 degrees at ang inverse cosine ng 0.5.
print(math.cos(math.radians(60)))
# 0.5000000000000001
print(math.degrees(math.acos(0.5)))
# 59.99999999999999
Kung nais mong i-round sa naaangkop na digit, maaari mong gamitin ang round() o format() tulad ng sa sine.
Padaplis, Baliktad na padaplis:math.tan(),math.atan(),math.atan2()
Ang function upang mahanap ang tangent (tan) ay math.tan(), at ang function upang mahanap ang inverse tangent (arctan) ay math.atan() o math.atan2().
Ang Math.atan2() ay inilarawan sa ibang pagkakataon.
Ang isang halimbawa ng paghahanap ng tangent ng 45 degrees at ang inverse tangent ng 1 degree ay ipinapakita sa ibaba.
print(math.tan(math.radians(45)))
# 0.9999999999999999
print(math.degrees(math.atan(1)))
# 45.0
Pagkakaiba sa pagitan ng math.atan() at math.atan2()
Parehong math.atan() at math.atan2() ay mga function na nagbabalik ng inverse tangent, ngunit naiiba ang mga ito sa bilang ng mga argumento at sa hanay ng mga return value.
Ang math.atan(x) ay may isang argumento at nagbabalik ng arctan(x) sa radians. Ang return value ay nasa pagitan ng -pi \ 2 at pi \ 2 (-90 hanggang 90 degrees).
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
Sa halimbawa sa itaas, ang math.inf ay kumakatawan sa infinity.
Ang math.atan2(y, x) ay may dalawang argumento at nagbabalik ng arctan(y \ x) sa radians. Ang anggulong ito ay ang anggulo (declination) na ginagawa ng vector mula sa pinanggalingan hanggang sa mga coordinate (x, y) sa positibong direksyon ng x axis sa polar coordinate plane, at ang ibinalik na halaga ay nasa pagitan ng -pi at pi (-180). sa 180 degrees).
Dahil ang mga anggulo sa pangalawa at pangatlong kuwadrante ay maaari ding makuha nang tama, ang math.atan2() ay mas angkop kaysa math.atan() kapag isinasaalang-alang ang polar coordinate plane.
Tandaan na ang pagkakasunud-sunod ng mga argumento ay y, x, hindi 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
Tulad ng halimbawa sa itaas, ang negatibong direksyon ng x-axis (y ay zero at x ay negatibo) ay pi (180 degrees), ngunit kapag y ay negatibong zero, ito ay -pi (-180 degrees). Mag-ingat kung gusto mong mahigpit na hawakan ang sign.
print(math.degrees(math.atan2(-0.0, -1)))
# -180.0
Ang mga negatibong zero ay ang resulta ng mga sumusunod na operasyon
print(-1 / math.inf)
# -0.0
print(-1.0 * 0.0)
# -0.0
Ang mga integer ay hindi itinuturing bilang mga negatibong zero.
print(-0.0)
# -0.0
print(-0)
# 0
Kahit na pareho ang x at y ay zero, ang resulta ay depende sa sign.
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
May iba pang mga halimbawa kung saan nagbabago ang tanda ng resulta depende sa mga negatibong zero, gaya ng math.atan2() pati na rin ang math.sin(), math.asin(), math.tan(), at 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
Tandaan na ang mga halimbawa sa ngayon ay ang mga resulta ng pagpapatakbo ng programa sa CPython. Tandaan na ang ibang mga pagpapatupad o kapaligiran ay maaaring panghawakan ang mga negatibong zero sa ibang paraan.