------------
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