2026. július 27., hétfő

Hodge-duális tenzor pythonban

Ez a Python program egy duális tenzor (valós és duális/epszilon rész, mint a z = a + bε duális számok tenzoros általánosítása) kezelésére, amely megvalósítja az összeadást és a skalárral való szorzást egy Numpy alapú osztály segítségével.
--------------
import numpy as np

class DualTensor:
    def __init__(self, real_part, dual_part):
        # Valós és duális részek tárolása NumPy tömbként
        self.real = np.array(real_part, dtype=float)
        self.dual = np.array(dual_part, dtype=float)
        
    def __add__(self, other):
        # Duális tenzorok összeadása
        if isinstance(other, DualTensor):
            return DualTensor(self.real + other.real, self.dual + other.dual)
        raise TypeErrorCsakDualTensorKell("Csak másik DualTensor adható hozzá.")

    def __mul__(self, scalar):
        # Szorzás skalárral
        return DualTensor(self.real * scalar, self.dual * scalar)

    def __repr__(self):
        return f"DualTensor(\n real={self.real},\n dual={self.dual}\n)"

# Példa használat:
t1 = DualTensor([[1, 2], [3, 4]], [[0.1, 0.2], [0.3, 0.4]])
t2 = DualTensor([[5, 6], [7, 8]], [[0.5, 0.6], [0.7, 0.8]])

osszeg = t1 + t2
szorzat = t1 * 2.0

print("Összeg:")
print(osszeg)
print("\nSkalárral szorzott:")
print(szorzat)
---------------------
Összeg:
DualTensor(
 real=[[ 6.  8.]
 [10. 12.]],
 dual=[[0.6 0.8]
 [1.  1.2]]
)

Skalárral szorzott:
DualTensor(
 real=[[2. 4.]
 [6. 8.]],
 dual=[[0.2 0.4]
 [0.6 0.8]]
)

---------------------
A duális tenzor (vagy Hodge-duális tenzor) olyan matematikai és fizikai objektum, amelyet az eredeti antiszimmetrikus tenzorból a Levi-Civita-szimbólum segítségével képeznek, és fontos szerepet játszik a klasszikus elektrodinamikában, valamint az általános relativitáselméletben

Nincsenek megjegyzések:

Megjegyzés küldése