Kuhesabu kazi za kielelezo na logarithmic katika Python (exp, logi, log10, log2)

Biashara

Kwa kutumia hesabu, moduli ya kawaida ya Python ya utendakazi wa hisabati, unaweza kukokotoa utendakazi wa kielelezo na wa logarithmic (logarithm asili, logarithm ya kawaida, na logarithm binary).

Ifuatayo imeelezewa hapa, pamoja na nambari ya mfano.

  • Msingi wa logarithm asili (nambari ya Napier):math.e
  • Nguvu::**mwendeshaji,pow(),math.pow()
  • Mzizi wa mraba (mizizi):math.sqrt()
  • Utendakazi wa kielelezo (utendakazi wa kielelezo asilia):math.exp()
  • kazi ya logarithmic:math.log(),math.log10(),math.log2()

Msingi wa logarithm asili (nambari ya Napier):math.e

Msingi wa logarithmu asili (Nambari ya Napier) hutolewa kama nambari thabiti katika moduli ya hesabu, inayoonyeshwa na hesabu.

import math

print(math.e)
# 2.718281828459045

Nguvu: ** mwendeshaji, pow(), math.pow():**mwendeshaji,pow(),math.pow()

Ili kukokotoa nguvu, tumia ** opereta, kitendakazi kilichojengewa ndani pow(), au math.pow().

Mraba y wa x hupatikana kama ifuatavyo

  • x**y
  • pow(x, y)
  • math.pow(x, y)
print(2**4)
# 16

print(pow(2, 4))
# 16

print(math.pow(2, 4))
# 16.0

math.pow() hubadilisha hoja kuwa aina ya sehemu inayoelea. Kwa upande mwingine, kazi iliyojengwa ndani ya Python pow() hutumia __pow()__ iliyofafanuliwa kwa kila aina.

Kwa mfano, pow() huruhusu aina changamano kubainishwa kama hoja, lakini math.pow() haiwezi kubadilisha aina changamano hadi aina za kuelea, na kusababisha hitilafu.

print(pow(1 + 1j, 2))
# 2j

# print(math.pow(1 + 1j, 2))
# TypeError: can't convert complex to float

Chaguo za kukokotoa za Python zilizojengwa ndani pow() pia huruhusu hoja ya tatu, pow(x, y, z), ambayo inarudisha salio (mabaki) ya z kwa y-nguvu ya x. Ni hesabu sawa na pow(x, y) % z, lakini pow(x, y, z) ni bora zaidi.

print(pow(2, 4, 5))
# 1

Mzizi wa mraba (mizizi):math.sqrt()

Mzizi wa mraba (mzizi) unaweza kuwekwa kuwa **0.5 kwa kutumia ** au math.sqrt().

print(2**0.5)
# 1.4142135623730951

print(math.sqrt(2))
# 1.4142135623730951

print(2**0.5 == math.sqrt(2))
# True

Kama vile math.pow(), math.sqrt() hubadilisha hoja kuwa aina za sehemu zinazoelea ili kuchakatwa, kwa hivyo kubainisha aina ambayo haiwezi kubadilishwa kuwa aina ya kuelea itasababisha TypeError.

print((-3 + 4j)**0.5)
# (1.0000000000000002+2j)

# print(math.sqrt(-3 + 4j))
# TypeError: can't convert complex to float

Pia, math.sqrt() haiwezi kuchakata maadili hasi, na kusababisha ValueError.

print((-1)**0.5)
# (6.123233995736766e-17+1j)

# print(math.sqrt(-1))
# ValueError: math domain error

Kumbuka kwamba wakati wa kushughulika na nambari ngumu, mfano kwa kutumia ** operator unaonyesha kosa, lakini moduli ya cmath hutoa thamani sahihi zaidi. Maadili hasi yanaweza pia kushughulikiwa.

import cmath

print(cmath.sqrt(-3 + 4j))
# (1+2j)

print(cmath.sqrt(-1))
# 1j

Utendakazi wa kielelezo (utendakazi wa kielelezo asilia):math.exp()

Ili kukokotoa nguvu ya msingi wa logariti asilia (Nambari ya Napier) e, tumia math.exp().

math.exp(x) inarejesha x mraba wa e.
math.exp(x) si sawa na “math.e ** x” na math.exp(x) ni sahihi zaidi.

print(math.exp(2))
# 7.38905609893065

print(math.exp(2) == math.e**2)
# False

kazi ya logarithmic:math.log(),math.log10(),math.log2()

Ili kukokotoa utendakazi wa logarithmic, tumia math.log(),math.log10(),math.log2().

math.log(x, y) hurejesha logariti ya x na y kama msingi.

print(math.log(25, 5))
# 2.0

Ikiwa hoja ya pili imeachwa, logarithm asili imeonyeshwa hapa chini.

logarithm

Katika hisabati, logarithm asili (logarithm yenye Napier nambari e kama msingi), inayowakilishwa na logi au ln, inaweza kukokotwa kwa hesabu.log(x).

print(math.log(math.e))
# 1.0

logarithm (msingi 10)

Logarithmu ya kawaida (logarithm yenye msingi 10) inaweza kuhesabiwa kwa kutumia math.log10(x), ambayo ni sahihi zaidi kuliko math.log(x, 10).

print(math.log10(100000))
# 5.0

logarithm ya binary

Logarithmu binary (logarithm yenye msingi 2) inaweza kuhesabiwa kwa kutumia math.log2(x), ambayo ni sahihi zaidi kuliko math.log(x, 2).

print(math.log2(1024))
# 10.0
Copied title and URL