A mátrixműveletek, a lineáris algebra és a kalkulus a Pythonban a leggyorsabban és leghatékonyabban a NumPy és a SciPy könyvtárakkal valósíthatók meg.
Az alábbiakban egy átfogó, mégis könnyen áttekinthető Python szkriptet írtam, amely bemutatja a legfontosabb alapműveleteket, a lineáris algebrát (pl. sajátértékek) és a kalkulus alkalmazását (pl. numerikus integrálás és deriválás).
Főbb alkalmazott eszközök:numpy: A mátrixok létrehozásáért, azok összeadásáért, szorzásáért, transzponálásáért, valamint a lineáris algebrai műveletekért (inverz, determináns, sajátértékek) felelős alapkönyvtár.scipy.integrate.quad:
Egy fejlett matematikai algoritmus, amellyel egy adott függvény határozott integrálját számíthatjuk ki numerikusan Scipy integrate.np.diff / np.gradient: Ezzel a két NumPy függvénnyel diszkrét adatsorokból (pontokból) számíthatjuk ki a numerikus deriváltakat, íme a program;
-----------------------
import numpy as np
from scipy import integrate
# ==========================================
# 1. MÁTRIXMŰVELETEK ÉS LINEÁRIS ALGEBRA
# ==========================================
# Két mátrix definiálása
A = np.array([[1, 2],
[3, 4]])
B = np.array([[5, 6],
[7, 8]])
# Mátrix összeadás
osszeadas = A + B
print("Mátrix összeadás (A + B):\n", osszeadas)
# Mátrix szorzás (skaláris és mátrixszorzás)
matrix_szorzas = np.dot(A, B) # vagy A @ B
print("\nMátrix szorzás (A @ B):\n", matrix_szorzas)
# Transzponálás
transzponalt = A.T
print("\nAz A mátrix transzponáltja:\n", transzponalt)
# Determináns és Inverz mátrix számítás
det_A = np.linalg.det(A)
inverz_A = np.linalg.inv(A)
print(f"\nAz A mátrix determinánsa: {det_A:.2f}")
print("Az A mátrix inverze:\n", inverz_A)
# Sajátértékek és sajátvektorok (Lineáris algebra)
sajat_ertekek, sajat_vektorok = np.linalg.eig(A)
print("\nAz A mátrix sajátértékei:\n", sajat_ertekek)
print("Az A mátrix sajátvektorai:\n", sajat_vektorok)
# ==========================================
# 2. KALKULUS ALKALMAZÁSA
# ==========================================
# Példa függvény: f(x) = x^2 + 3x + 2
def f(x):
return x**2 + 3*x + 2
# A. Numerikus integrálás (határozott integrál: pl. 0-tól 2-ig)
# A quad függvény a Scipy-ból adja vissza az eredményt és a hibakorlátot
eredmeny, hiba = integrate.quad(f, 0, 2)
print(f"\nAz f(x) integrálja 0 és 2 között: {eredmeny:.4f}")
# B. Numerikus deriválás
x_pontok = np.array([0.0, 1.0, 2.0, 3.0])
y_pontok = f(x_pontok)
# A np.diff és np.gradient segítségével közelíthetjük a deriváltat (változási sebességet)
derivalt = np.diff(y_pontok) / np.diff(x_pontok)
print("Az f(x) numerikus deriváltjai a pontok között:\n", derivalt)
-------------
Eredmény
----------------
Mátrix összeadás (A + B):
[[ 6 8]
[10 12]]
Mátrix szorzás (A @ B):
[[19 22]
[43 50]]
Az A mátrix transzponáltja:
[[1 3]
[2 4]]
Az A mátrix determinánsa: -2.00
Az A mátrix inverze:
[[-2. 1. ]
[ 1.5 -0.5]]
Az A mátrix sajátértékei:
[-0.37228132 5.37228132]
Az A mátrix sajátvektorai:
[[-0.82456484 -0.41597356]
[ 0.56576746 -0.90937671]]
Az f(x) integrálja 0 és 2 között: 12.6667
Az f(x) numerikus deriváltjai a pontok között:
[4. 6. 8.]
** Process exited - Return Code: 0 **
Nincsenek megjegyzések:
Megjegyzés küldése