Bij het schrijven van programma's in ons dagelijks leven, komen we meestal situaties tegen waar we een beetje wiskunde moeten gebruiken om de klus te klaren. Net als andere programmeertalen, biedt Python verschillende operatoren om basisberekeningen uit te voeren zoals *
voor vermenigvuldiging, %
voor modulus, en //
voor vloerdeling.
Als u een programma schrijft om specifieke taken uit te voeren, zoals het bestuderen van periodieke bewegingen of het simuleren van elektrische circuits, moet u werken met goniometrische functies en complexe getallen. Hoewel u deze functies niet rechtstreeks kunt gebruiken, kunt u ze openen door eerst twee wiskundige modules op te nemen. Deze modules zijn wiskunde en cmath.
De eerste geeft u toegang tot hyperbolische, trigonometrische en logaritmische functies voor reële getallen, terwijl u met de laatste kunt werken met complexe getallen. In deze tutorial zal ik alle belangrijke functies bespreken die deze modules bieden. Tenzij expliciet vermeld, zijn alle geretourneerde waarden drijvers.
Deze functies voeren verschillende rekenkundige bewerkingen uit, zoals het berekenen van de vloer, het plafond of de absolute waarde van een getal met behulp van de vloer (x)
, ceil (x)
, en Fabs (x)
functies respectievelijk. De functie ceil (x)
retourneert het kleinste gehele getal dat groter is dan of gelijk is aan X. evenzo, vloer (x)
retourneert het grootste gehele getal kleiner dan of gelijk aan X. De Fabs (x)
functie retourneert de absolute waarde van X.
U kunt ook niet-triviale bewerkingen uitvoeren, zoals het berekenen van de faculteit van een getal met factorial (x)
. Een faculteit is het product van een geheel getal en alle positieve gehele getallen kleiner dan het getal. Het wordt veel gebruikt bij het omgaan met combinaties en permutaties. Het kan ook worden gebruikt om de waarde van sinus- en cosinusfuncties te berekenen.
import math def getsin (x): vermenigvuldiger = 1 resultaat = 0 voor i in bereik (1,20,2): resultaat + = vermenigvuldiger * pow (x, i) /math.factorial (i) vermenigvuldiger * = -1 rendement result getsin (math.pi / 2) # retourneert 1,0 getsin (math.pi / 4) # retourneert 0.7071067811865475
Een andere nuttige functie in de wiskunde module is gcd (x, y)
, waarmee je de grootste gemene deler (GCD) van twee getallen krijgt X en Y. Wanneer X en Y zijn beide niet nul, deze functie retourneert het grootste positieve gehele getal dat beide deelt X en Y. U kunt het indirect gebruiken om het kleinste gemene veelvoud van twee getallen te berekenen met behulp van de volgende formule:
gcd (a, b) x lcm (a, b) = a x b
Hier zijn enkele van de rekenfuncties die Python biedt:
import wiskunde math.ceil (1.001) # retourneert 2 math.floor (1.001) # geeft 1 terug math.factorial (10) # geeft 3628800 terug math.cd (10,125) # geeft 5 terug math.trunc (1.001) # geeft 1 math.trunc terug (1.999) # geeft als resultaat 1
Deze functies relateren de hoeken van een driehoek aan de zijkanten. Ze hebben veel toepassingen, waaronder de studie van driehoeken en het modelleren van periodieke fenomenen zoals geluids- en lichtgolven. Houd er rekening mee dat de hoek die u opgeeft in radialen is.
Je kunt berekenen sin (x)
, cos (x)
, en tan (x)
direct gebruik van deze module. Er is echter geen directe formule om te berekenen cosec (x)
, sec (x)
, en kinderbed (x)
, maar hun waarde is gelijk aan de reciproke waarde van de geretourneerde waarde sin (x)
, cos (x)
, en tan (x)
respectievelijk.
In plaats van de waarde van trigonometrische functies in een bepaalde hoek te berekenen, kunt u ook de inverse uitvoeren en de hoek berekenen waarbij ze een bepaalde waarde hebben door te gebruiken asin (x)
, acos (x)
, en atan (x)
.
Bent u bekend met de stelling van Pythagoras? Het stelt dat het kwadraat van de hypotenusa (de zijde tegenover de rechte hoek) gelijk is aan de som van de vierkanten van de andere twee zijden. De hypotenusa is ook de grootste zijde van een rechthoekige driehoek. De wiskundemodule biedt de hypot (a, b)
functie om de lengte van de hypotenusa te berekenen.
import math.sin (math.pi / 4) # retourneert 0.7071067811865476 math.cos (math.pi) # retourneert -1.0 math.tan (math.pi / 6) # retourneert 0.5773502691896257 math.hypot (12,5) # retourneert 13.0 math.atan (0.5773502691896257) # geeft 0.5235987755982988 math.asin (0.7071067811865476) # retourneert 0.7853981633974484
Hyperbolische functies zijn analogen van trigonometrische functies die zijn gebaseerd op een hyperbool in plaats van een cirkel. In trigonometrie zijn de punten (cos b, zonde b) vertegenwoordigen de punten van een eenheidscirkel. In het geval van hyperbolische functies zijn de punten (cosh b, sinh b) Vertegenwoordigen de punten die de rechterhelft van een gelijkzijdige hyperbool vormen.
Net als de trigonometrische functies, kunt u de waarde van berekenen sinh (x)
, cosh (x)
, en tanh (x)
direct. De rest van de waarden kan worden berekend met behulp van verschillende relaties tussen deze drie waarden. Er zijn ook andere functies zoals BOOGSINH (x)
, BOOGCOSH (x)
, en BOOGTANH (x)
, die kan worden gebruikt om de inverse van de overeenkomstige hyperbolische waarden te berekenen.
import wiskunde math.sinh (math.pi) # geeft 11.548739357257746 math.cosh (math.pi) # retourneert 11.591953275521519 math.cosh (math.pi) # retourneert 0.99627207622075 math.asinh (11.548739357257746) # retourneert 3.141592653589793 math.acosh (11.591953275521519) # retourneert 3.141592653589793 math.atanh (0.99627207622075) # geeft 3.141592653589798 terug
Sinds Math.PI
is gelijk aan ongeveer 3.141592653589793, toen we gebruikten BOOGSINH ()
op de waarde geretourneerd door sinh (Math.PI)
, we hebben onze π terug.
Je zult waarschijnlijk vaker te maken hebben met machten en logaritmen dan hyperbolische of trigonometrische functies. Gelukkig is de wiskunde module biedt veel functies om logaritmen te berekenen.
Je kunt gebruiken log (x, [base])
om het logboek van een bepaald aantal te berekenen X naar de gegeven basis. Als u het optionele basisargument weglaat, wordt het logboek van x berekend naar basis e. Hier, e is een wiskundige constante waarvan de waarde 2.71828182 is ... en toegankelijk is via Math.E
. Trouwens, Python geeft je ook toegang tot een ander constant π gebruik Math.PI
.
Als u de logaritmewaarden van base-2 of base-10 wilt berekenen, gebruikt u log2 (x)
en log10 (x)
zal meer nauwkeurige resultaten opleveren dan log (x, 2)
en log (x, 10)
. Houd er rekening mee dat er geen is log3 (x)
functie, dus je moet blijven gebruiken log (x, 3)
voor het berekenen van logaritmewaarden van base-3. Hetzelfde geldt voor alle andere bases.
Als de waarde waarvan u de logaritme berekent erg dicht bij 1 ligt, kunt u gebruiken log1p (x)
. De 1p
in log1p
betekent 1 plus. daarom, log1p (x)
berekent log (1 + x)
waarbij x bijna nul is. De resultaten zijn echter nauwkeuriger met log1p (x)
.
U kunt ook de waarde van een getal berekenen X verhoogd tot de macht Y door het gebruiken van pow (x, y)
. Voordat de bevoegdheden worden berekend, converteert deze functie beide argumenten om float in te voeren. Als u wilt dat het eindresultaat wordt berekend in exacte integer-bevoegdheden, moet u de ingebouwde functie gebruiken pow ()
functie of de **
operator.
U kunt ook de wortel van een gegeven getal berekenen X door het gebruiken van sqrt (x)
, maar hetzelfde kan ook worden bereikt door te gebruiken pow (x, 0,5)
.
import math math.exp (5) # geeft als resultaat 148.4131591025766 math.e ** 5 # retourneert 148.4131591025765 math.log (148.41315910257657) # retourneert 5.0 math.log (148.41315910257657, 2) # retourneert 7.213475204444817 math.log (148.41315910257657, 10) # retourneert 2.171472409516258 math.log (1.0000025) # geeft als resultaat 2.4999968749105643e-06 math.log1p (0.0000025) # geeft 2.4999968750052084e-06 math.pow (12.5, 2.8) # retourneert 1178.5500657314767 math.pow (144, 0.5) # geeft 12.0 math.sqrt terug (144) # geeft als resultaat 12.0
Complexe getallen worden intern opgeslagen met behulp van rechthoekige of Cartesiaanse coördinaten. Een complex getal z wordt weergegeven in cartesiaanse coördinaten als z = x + iy
, waar X vertegenwoordigt het echte deel en Y vertegenwoordigt het imaginaire deel. Een andere manier om ze te vertegenwoordigen is door polaire coördinaten te gebruiken.
In dit geval zou het complexe getal z een combinatie van de modulus zijn r en fasehoek phi. De modulus r is de afstand tussen het complexe getal z en de oorsprong. De hoek phi is de hoek tegen de klok in gemeten in radialen vanaf de positieve x-as tot de verbinding van het lijnsegment z en de oorsprong.
Tijdens het omgaan met complexe getallen, de CMATH module kan van grote hulp zijn. De modulus van een complex getal kan worden berekend met behulp van de ingebouwde buikspieren()
functie, en de fase kan worden berekend met behulp van de fase (z)
functie beschikbaar in de cmath-module. Je kunt een complex getal in rechthoekige vorm omzetten in polaire vorm met polaire (z)
, welke een paar zal teruggeven (r, phi)
, waar r is abs (z)
en phi is fase (z)
.
Evenzo kunt u een complex getal in polaire vorm omzetten naar een rechthoekige vorm met rect (r, phi)
. Het complexe getal dat door deze functie wordt geretourneerd is r * (Math.cos (phi) + Math.sin (phi) * 1j)
.
import cmath cmath.polar (complex (1,0, 1,0)) # retourneert (1,4142135623730951, 0,7853981633974483) cmath.phase (complex (1,0, 1,0)) # retourneert 0,7853981633974483 abs (complex (1,0, 1,0)) # retourneert 1,4142135623730951
De CMATH module stelt ons ook in staat om normale wiskundige functies met complexe getallen te gebruiken. U kunt bijvoorbeeld de vierkantswortel van een complex getal berekenen met sqrt (z)
of het cosinusgebruik cos (z)
.
import cmath cmath.sqrt (complex (25.0, 25.0)) # retourneert (5.49342056733905 + 2.2754493028111367j) cmath.cos (complex (25.0, 25.0)) # retourneert (35685729345.58163 + 4764987221.458499j)
Complexe getallen hebben veel toepassingen, zoals het modelleren van elektrische circuits, vloeistofdynamica en signaalanalyse. Als u aan een van die dingen moet werken, de CMATH module zal je niet teleurstellen.
Al deze functies die we hierboven hebben besproken, hebben hun specifieke toepassingen. U kunt bijvoorbeeld de gebruiken factorial (x)
functie om problemen met permutatie en combinatie op te lossen. U kunt de trigonometrische functies gebruiken om een vector op te lossen in cartesiaanse coördinaten. U kunt ook goniometrische functies gebruiken om periodieke functies zoals geluids- en lichtgolven te simuleren.
Evenzo kan de curve van een touw dat tussen twee polen hangt, worden bepaald met behulp van een hyperbolische functie. Aangezien al deze functies direct beschikbaar zijn in de wiskunde module, het maakt het heel gemakkelijk om kleine programma's te maken die al deze taken uitvoeren.
Ik hoop dat je deze tutorial leuk vond. Laat het me weten in de comments als je vragen hebt.