SciPy - janehlenb/Projektarbeit-ChatGPT-Python GitHub Wiki

Einführung

In diesem Tutorial werden wir uns mit SciPy beschäftigen, einer leistungsstarken Bibliothek für wissenschaftliches Rechnen und Datenanalyse in Python. Wenn du dich für Themen wie Mathematik, Statistik, Optimierung oder Signalverarbeitung interessierst, dann ist SciPy genau das Richtige für dich!

Mit SciPy kannst du komplexe mathematische Probleme lösen, Daten analysieren und visualisieren sowie wissenschaftliche Experimente durchführen. Es ist eine unverzichtbare Werkzeugkiste für Forscher, Ingenieure und Data Scientists.

In diesem Tutorial wirst du lernen, wie du mit SciPy arbeitest, grundlegende mathematische Operationen durchführst, Daten analysierst und visualisierst. Am Ende wirst du in der Lage sein, SciPy effektiv in deinen eigenen Projekten einzusetzen.

Theorie

Grundlegende Funktionen

SciPy bietet eine Vielzahl von Funktionen für numerische Berechnungen, Lineare Algebra, Optimierung, Statistik und vieles mehr. Hier sind einige wichtige Funktionen:

Numerische Integration: Mit der Funktion quad() kannst du numerische Integration durchführen, zum Beispiel um das bestimmte Integral einer Funktion zu berechnen.

from scipy.integrate import quad

# Allerlei magische Mathematik
def integrand(x):
    return x ** 2 + 2 * x + 1

result, error = quad(integrand, 0, 5)
print("Ergebnis:", result)

Lineare Algebra: Mit der Funktion solve() kannst du lineare Gleichungssysteme lösen.

import numpy as np
from scipy.linalg import solve

# Löse das Gleichungssystem: 2x + y = 5, x - 3y = -2
A = np.array([2, 1], [1, -3](/janehlenb/Projektarbeit-ChatGPT-Python/wiki/2,-1],-[1,--3))
b = np.array([5, -2])
x = solve(A, b)
print("Lösung:", x)

Datenanalyse und Visualisierung

SciPy bietet auch umfangreiche Funktionen für die Datenanalyse und Visualisierung. Hier sind zwei Beispiele:

Statistische Verteilungen: Mit der Funktion norm() kannst du die Normalverteilung verwenden, um Wahrscheinlichkeiten und Quantile zu berechnen.

from scipy.stats import norm

# Berechne die Wahrscheinlichkeit, dass eine Zufallsvariable aus einer Normalverteilung einen Wert kleiner als 1 annimmt
probability = norm.cdf(1)
print("Wahrscheinlichkeit:", probability)

Signalverarbeitung: Mit der Funktion fft() kannst du die schnelle Fourier-Transformation durchführen, um Signale im Frequenzbereich zu analysieren.

import numpy as np
from scipy.fft import fft

# Erzeuge ein Testsignal
t = np.linspace(0, 1, 1000)
signal = np.sin(2 * np.pi * 10 * t) + np.sin(2 * np.pi * 20 * t)

# Führe eine Fourier-Transformation durch
spectrum = np.abs(fft(signal))

# Visualisiere das Spektrum
import matplotlib.pyplot as plt
plt.plot(spectrum)
plt.xlabel("Frequenz")
plt.ylabel("Amplitude")
plt.show()

Praxis

Aufgabe 1

Berechne das bestimmte Integral der Funktion f(x) = x^2 von 0 bis 3.

Musterlösung: Das bestimmte Integral von f(x) = x^2 von 0 bis 3 ergibt 9.

from scipy.integrate import quad

def f(x):
    return x ** 2

result, error = quad(f, 0, 3)
print("Ergebnis:", result)

Aufgabe 2

Löse das Gleichungssystem:

2x + 3y + z = 10 x - y + 2z = -2 3x + y - z = 7

Musterlösung: Die Lösung des Gleichungssystems ist x = 1, y = -2 und z = 3.

import numpy as np
from scipy.linalg import solve

A = np.array([2, 3, 1], [1, -1, 2], [3, 1, -1](/janehlenb/Projektarbeit-ChatGPT-Python/wiki/2,-3,-1],-[1,--1,-2],-[3,-1,--1))
b = np.array([10, -2, 7])
x = solve(A, b)
print("Lösung:", x)

Herzlichen Glückwunsch! Du hast erfolgreich die Grundlagen von SciPy gelernt und bist bereit, tiefer in die wunderbare Welt des wissenschaftlichen Rechnens einzutauchen. Viel Spaß beim Entdecken und Experimentieren mit SciPy!

Weiterführende Links

scipy.org