podľa ruských a španielskych vedcov nás okolo roku 2040 čaká ochladenie niektorých území planéty vďaka menšiemu slnečnému vyžarovaniu, vďaka AI si toto vieme nasimulovať doma na počítačoch:
umelecká predstava 2 dynamá generujú polia:

zdá sa, že simulácie ukazujú, že v roku 2040 nás čaká minimum modelu oscilácie dvoch dynám a vyzerá to, ak sa simulácia zastaví asi takto: podobne ako bolo v roku Pána pred 400 rokmi:

# double_dynamo_simulation.jl
# Jednoduchá simulácia "double dynamo" modelu v jazyku Julia.
# Model: dva Stuart–Landau oscilátory (komplexné amplitude z1, z2)
# ktoré reprezentujú dve paralelné magnetické dynama.
# Celkové magnetické pole sa berie ako reálna časť z1 + z2.
#
# Potrebné balíky: DifferentialEquations, Plots, FFTW (prípadne Pkg.add pre každé)
# Spustenie: v Julia REPL alebo skripte
import Pkg; Pkg.add.( ["DifferentialEquations", "Plots", "FFTW"] )
using DifferentialEquations
using Plots
using FFTW
using Statistics
# ---- parametrizácia ----
ω1 = 2π/11.0 # frekvencia 1 (príklad: ~11 rokov v relatívnych jednotkách)
ω2 = 2π/22.0 # frekvencia 2 (dlhší cyklus)
λ1 = 0.2 # lineárny rast pre z1 (pozitívna -> samostatný oscilátor)
λ2 = 0.15 # lineárny rast pre z2
c = 1.0 # nelineárne tlmenie (saturácia)
κ = 0.05 # vzájomné vyhladzovanie / coupling
# voliteľné: pridajte biely šum do rovníc pre náhodné fluktuácie
σ_noise = 0.0
# počiatočné stavy (komplexné) - malý náhodný rozptyl
z1_0 = 0.1 + 0.0im
z2_0 = 0.05 + 0.0im
# ODE: pre reprezentáciu do DifferentialEquations musíme rozložiť na reálnu a imaginárnu časť
function double_dynamo!(du,u,p,t)
# u = [Re(z1), Im(z1), Re(z2), Im(z2)]
x1, y1, x2, y2 = u
z1 = complex(x1,y1)
z2 = complex(x2,y2)
# Stuart-Landau: dz/dt = (λ + iω - c*|z|^2) * z + κ*(z2 - z1)
dz1 = (λ1 + im*ω1 - c*abs2(z1)) * z1 + κ*(z2 - z1)
dz2 = (λ2 + im*ω2 - c*abs2(z2)) * z2 + κ*(z1 - z2)
# ak chcete pridať náhodný šum (biely):
if σ_noise > 0
dz1 += σ_noise * (randn() + im*randn())
dz2 += σ_noise * (randn() + im*randn())
end
du[1] = real(dz1)
du[2] = imag(dz1)
du[3] = real(dz2)
du[4] = imag(dz2)
end
# časová os (jednotky môžu byť roky, mesiace, čokoľvek konzistentné)
tspan = (0.0, 500.0)
u0 = [real(z1_0), imag(z1_0), real(z2_0), imag(z2_0)]
prob = ODEProblem(double_dynamo!, u0, tspan)
# solver a kvantita krokov
sol = solve(prob, Tsit5(), saveat=0.1)
# rekonštrukcia časových priebehov
t = sol.t
x1 = sol[1,:]
y1 = sol[2,:]
x2 = sol[3,:]
y2 = sol[4,:]
z1_ts = x1 .+ im .* y1
z2_ts = x2 .+ im .* y2
# celkové magnetické pole (skutočné pozorovanie)
B_total = real(z1_ts .+ z2_ts)
B1 = real(z1_ts)
B2 = real(z2_ts)
# ---- animácia v reálnom čase ----
# jednoduchá animácia časového priebehu B_total
anim = @animate for i in 1:10:length(t)
plot(t[1:i], B_total[1:i], xlabel="time", ylabel="B", title="Real-time double dynamo animation", legend=false)
end
gif(anim, "double_dynamo_animation2.gif", fps=15)
# ---- ploty ----
p1 = plot(t, B_total, label="B_total (z1+z2)", xlabel="time", ylabel="B (arb. units)", legend=:topright, title="Double dynamo - časový priebeh")
plot!(t, B1, label="B1")
plot!(t, B2, label="B2")
# spektrum (FFT) pre rýchly pohľad na dominantné frekvencie
N = length(B_total)
fs = 1.0 / (t[2]-t[1])
fftB = abs.(fft(B_total .- mean(B_total)))
freqs = (0:N-1) .* (fs/N)
# použíť len prvú polovicu (reálne signály)
h = plot(freqs[1:div(N,2)], fftB[1:div(N,2)], xlabel="frequency (1/time)", ylabel="amp", title="Spektrum B_total", legend=false)
# vykresliť okno dlhšieho časového rezu (pre lepšiu čitateľnosť súboru)
p2 = plot(t[1:2000], B_total[1:2000], xlabel="time", ylabel="B", title="Detail (prvé okno)")
# uloženie obrázkov
savefig(p1, "double_dynamo_timeseries.png")
savefig(h, "double_dynamo_spectrum.png")
savefig(p2, "double_dynamo_detail.png")
println("Hotovo: súbory uložené ako double_dynamo_timeseries.png, double_dynamo_spectrum.png, double_dynamo_detail.png")
# ---- poznámky k experimentovaniu ----
# - zmenou ω1, ω2 môžete nastaviť pomer periód (napr. 11 vs 22 rokov).
# - zmenou λ1, λ2 sa mení sila jednotlivých dynam.
# - κ ovplyvňuje mieru vzájomného prepojenia -> pri väčšom κ budú dynama synchronizovať.
# - pridaním šumu σ_noise > 0 dostanete náhodné preskoky a možnú prechodnú desynchronizáciu.
# - skúste sledovať fázu (angle(z)) a amplitúdu (abs(z)) pre hlbší vhľad.
zdroj kódu: chatgpt_com, bez úprav ^^^

Comments “Čo sa stane v roku cca 2040 s našim slnečným cyklom? Ak obiehajú okolo seba 2 dynamá, vzniká toto s magnetickým cyklom:”