2026. június 29., hétfő

Káoszelmélet modellezése pyython nyelven Lorenz szimulációval

Kedvenc kutatási területem a káoszelmélet, most ebben a témában végeztem szimulációt. Ez a program egy nemlineáris differenciálegyenlet-rendszert old meg, kaotikus dinamikát modellezve, és numerikus integrálást alkalmazva. A rendszer rendkívül érzékeny a kezdeti feltételekre. A káoszelmélet és a modern dinamika egyik alapmodellje. A program futása közben folyamatos állapotjelzést ad:Ez a szimulációsprogram egy numerikus matematika vagy elméleti fizikai problémát modellez.
------------
import numpy as np
import matplotlib.pyplot as plt

print("=" * 60)
print("L O R E N Z   K Á O S Z S Z I M U L Á T O R")
print("=" * 60)
print("A szimuláció elindult...\n")

# Lorenz-paraméterek
sigma = 10.0
rho = 28.0
beta = 8.0 / 3.0

# Numerikus paraméterek
dt = 0.01
steps = 50000

print(f"σ = {sigma}")
print(f"ρ = {rho}")
print(f"β = {beta:.4f}")
print(f"Időlépés = {dt}")
print(f"Lépések száma = {steps}")
print("\nSzámítás folyamatban...")

# Kezdeti állapot
x = np.zeros(steps)
y = np.zeros(steps)
z = np.zeros(steps)

x[0] = 0.1
y[0] = 0.0
z[0] = 0.0

# Euler-integrálás
for i in range(steps - 1):

    dx = sigma * (y[i] - x[i])
    dy = x[i] * (rho - z[i]) - y[i]
    dz = x[i] * y[i] - beta * z[i]

    x[i + 1] = x[i] + dx * dt
    y[i + 1] = y[i] + dy * dt
    z[i + 1] = z[i] + dz * dt

    if i % 5000 == 0:
        print(f"Elkészült: {100 * i / steps:.1f}%")

print("\nNumerikus integrálás befejezve.")
print("Ábra készítése...")

# 3D grafikon
fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection='3d')

ax.plot(x, y, z, linewidth=0.4)

ax.set_title("Lorenz-attraktor")
ax.set_xlabel("X")
ax.set_ylabel("Y")
ax.set_zlabel("Z")

plt.show()

print("\nA szimuláció sikeresen lefutott.")
print(f"Végállapot: x={x[-1]:.4f}, y={y[-1]:.4f}, z={z[-1]:.4f}")
------------
============================================================
L O R E N Z   K Á O S Z S Z I M U L Á T O R
============================================================
A szimuláció elindult...

σ = 10.0
ρ = 28.0
β = 2.6667
Időlépés = 0.01
Lépések száma = 50000

Számítás folyamatban...
Elkészült: 0.0%
Elkészült: 10.0%
Elkészült: 20.0%
Elkészült: 30.0%
Elkészült: 40.0%
Elkészült: 50.0%
Elkészült: 60.0%
Elkészült: 70.0%
Elkészült: 80.0%
Elkészült: 90.0%

Numerikus integrálás befejezve.
Ábra készítése...


A szimuláció sikeresen lefutott.
Végállapot: x=3.1023, y=6.0464, z=7.2074
-----------------
https://onecompiler.com/python#draft-6krb
------------------

Nincsenek megjegyzések:

Megjegyzés küldése