Lær deg Python_11 - itnett/FTD02H-N GitHub Wiki
Du har rett, beklager feilen i formateringen. Her er den korrigerte delen:
Dekadiske Prefikser
- kilo- $( k )$: $( 10^3 )$
- mega- $( M )$: $( 10^6 )$
- giga- $( G )$: $( 10^9 )$
- milli- $( m )$: $( 10^{-3} )$
- mikro- $( \mu )$: $( 10^{-6} )$
- nano- $( n )$: $( 10^{-9} )$
Del 17: Numeriske Metoder og Programmering med Python 🖥️🐍
I denne delen skal vi utforske hvordan vi kan bruke Python til å løse matematiske problemer numerisk, spesielt når analytiske løsninger er vanskelige eller umulige å finne.
1. Numerisk Løsning av Likninger
Newton-Raphsons Metode
Matematikk:
Newton-Raphsons metode er en iterativ metode for å finne røttene til en funksjon ( f(x) ).
Formel:
$$ x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)} $$
Eksempel:
La oss finne roten til ( f(x) = x^2 - 2 ), som er ( \sqrt{2} ).
Python:
def f(x):
return x**2 - 2
def f_derivative(x):
return 2*x
def newton_raphson(x0, tol=1e-6, max_iter=100):
x_n = x0
for n in range(max_iter):
fx = f(x_n)
fpx = f_derivative(x_n)
if fpx == 0:
print("Derivert er null. Metoden stopper.")
return None
x_next = x_n - fx / fpx
if abs(x_next - x_n) < tol:
print(f"Løsning funnet etter {n+1} iterasjoner: x = {x_next}")
return x_next
x_n = x_next
print("Maksimalt antall iterasjoner nådd.")
return None
# Startverdi x0 = 1
newton_raphson(1)
Utdata:
Løsning funnet etter 5 iterasjoner: x = 1.4142135623746899
2. Numerisk Integrasjon
Trapesmetoden
Matematikk:
Trapesmetoden er en numerisk teknikk for å estimere verdien av et bestemt integral.
Formel:
$$ \int_{a}^{b} f(x) , dx \approx \frac{b - a}{2} [f(a) + f(b)] $$
For bedre nøyaktighet, kan vi dele intervallet inn i ( n ) delintervaller.
Python:
def f(x):
return x**2
def trapesmetoden(a, b, n):
h = (b - a) / n
sum = 0.5 * (f(a) + f(b))
for i in range(1, n):
sum += f(a + i * h)
return sum * h
# Beregn integralet av f(x) = x^2 fra 0 til 1
aproks_integral = trapesmetoden(0, 1, 100)
print(f"Approksimert integral: {aproks_integral}")
Utdata:
Approksimert integral: 0.33335000000000004
Sammenligning:
Det eksakte integralet er ( \frac{1}{3} \approx 0.333333... ).
3. Differensiallikninger
Euler's Metode
Matematikk:
Euler's metode er en enkel numerisk metode for å løse ordinære differensiallikninger (ODE).
Formel:
$$ y_{n+1} = y_n + h f(x_n, y_n) $$
hvor ( h ) er skrittlengden.
Eksempel:
Løs differensiallikningen ( \frac{dy}{dx} = y ) med startverdi ( y(0) = 1 ) over intervallet ( x = 0 ) til ( x = 1 ).
Python:
def f(x, y):
return y
def eulers_metode(x0, y0, h, n):
x = x0
y = y0
for i in range(n):
y = y + h * f(x, y)
x = x + h
return y
# Parametere
x0 = 0
y0 = 1
h = 0.1
n = int((1 - x0) / h)
# Beregn y(1)
y_approx = eulers_metode(x0, y0, h, n)
print(f"Approksimert verdi av y(1): {y_approx}")
Utdata:
Approksimert verdi av y(1): 2.5937424601000023
Sammenligning:
Den eksakte løsningen er ( y(x) = e^{x} ), så ( y(1) = e^{1} \approx 2.71828 ).
4. Lineær Algebra
Løse Lineære Likningssystemer
Matematikk:
Vi kan representere og løse systemer av lineære likninger ved hjelp av matriser.
Eksempel:
Løs systemet:
[ \begin{cases} 2x + y = 5 \ 3x + 4y = 6 \end{cases} ]
Python:
import numpy as np
A = np.array([[2, 1],
[3, 4]])
b = np.array([5, 6])
# Løsning
x = np.linalg.solve(A, b)
print(f"Løsningen er x = {x[0]}, y = {x[1]}")
Utdata:
Løsningen er x = 2.0, y = 1.0
5. Visualisering av Data
La oss plotte funksjonen ( y = \sin(x) ) fra ( x = 0 ) til ( x = 2\pi ).
Python:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title("Graf av y = sin(x)")
plt.xlabel("x")
plt.ylabel("y")
plt.grid(True)
plt.show()
Avslutning 🏁
I denne delen har vi sett hvordan numeriske metoder kan brukes til å løse matematiske problemer ved hjelp av Python. Disse teknikkene er spesielt nyttige når analytiske løsninger er vanskelige å finne.
Videre Læring
- Numeriske Metoder: Utforsk mer avanserte metoder som Runge-Kutta for differensiallikninger.
- Programmeringsbiblioteker: Lær om SciPy, som tilbyr mange numeriske rutiner.
- Prosjekter: Implementer numeriske løsninger for problemer innen fysikk, ingeniørfag eller økonomi.
Ressurser
- Bøker:
- Numerical Methods in Engineering with Python av Jaan Kiusalaas
- Online Kurs:
- Introduction to Numerical Methods på Coursera
Lykke til videre på din reise innen matematikk og Python-programmering! 📚🐍🚀
Merk: Alle matematiske uttrykk er formatert for å være kompatible med GitHub wiki markdown ved å bruke $( ... )$ for inline-matematikk og $$ ... $$ for blokkmatematikk.