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