1  Potensar, røter og logaritmar

Ser litt på korleis ein kan rekne ut potensar, røter og logaritmar i Python.

1.1 Potensar

Potensar kan ein rekne ut med **-operatoren. For eksempel er \(2^3\) i python 2**3.

print(2**3)
8

Dette gjeld og for negative eksponentar, til dømes \(2^{-3}\)

print(2**(-3))
0.125

Og for eksponentar som er brøk (eller desimaltal), til dømes \(100^{1/2}\)

print(100**(1/2))
print(100**0.5)
10.0
10.0

1.2 Røter

Ved å bruka potensar kan ein og rekne ut røter. Til dømes er \(\sqrt{100}\) det same som \(100^{1/2}\). Meir generelt veit me at

\[x^{\frac{a}{n}} = \sqrt[n]{x^a}\]

Dermed kan me rekna ut til dømes \(\sqrt[3]{1000}\) som 1000**(1/3)

print(1000**(1/3))
9.999999999999998

Her ser me at **-operatoren ikkje reknar heilt rett. Svaret er 10, men Python gir oss 9.999999999999998. Dette er fordi Python ikkje klarar å representere alle desimaltal heilt nøyaktig.

For å unngå dette kan me bruka rot-funksjonar frå numpy-biblioteket. Då får me heilt nøyaktige svar. np.sqrt() reknar ut kvadratrøter og np.cbrt() reknar ut kubikkrøter.

import numpy as np

# tredjerota av 1000
print(np.cbrt(1000))

# kvadratrota av pi
print(np.sqrt(np.pi))
10.0
1.7724538509055159

1.3 Logaritmar

Logaritmar kan ein rekne ut med np.log()-funksjonen. For eksempel er \(\log_{10}(100)\) lik np.log10(100).

print(np.log10(100))
2.0

Medan np.log() reknar ut naturlige logaritmar, altså logaritmar med grunntal \(e\).

print(np.log(100))
4.605170185988092

Som vil seie at \(e^{4.60517} \approx 100\).

print(np.exp(4.60517))
99.99998140119261

⬆️ Her ser me også at \(e^x\) kan skrivast som np.exp(x).

1.4 Røter og logaritmar - arrays

I numpy treng ikkje input til desse funksjonane vera eit enkelt tal. Det kan og vera ein array/liste. Då vil funksjonen rekna ut røter og logaritmar for kvart element i arrayen/lista. Det kan vera praktisk om me skal rekna ut mange tal samtidig.

tal = [1, 4, 9, 16, 25]
print(np.sqrt(tal))
[1. 2. 3. 4. 5.]
tal = [1, 10, 100, 1000, 1e6]
print(np.log10(tal))
[0. 1. 2. 3. 6.]

⬆️ Legg merke til korleis me kan skriva tal på standardform her (1e6 er det same som \(10^6\)).