ORT: Speciale Relativiteit#
Hoofdstukken 1-10 | Formules 1-22
Dit notebook behandelt het deel van de Ontologische Relativiteitstheorie (ORT) dat de speciale relativiteit beschrijft. Het deel van het model dat de SRT beschrijft berust op twee principes: alles beweegt met snelheid \(c\) door de ruimtetijd, en Invariantie van Zijn (\(m \cdot v_t = m_0 \cdot c\)).
import sys, pathlib
sys.path.insert(0, str(pathlib.Path().resolve().parent / 'shared'))
from ort_core import (C, ORT, NewtonModel, EinsteinModel)
from ort_plots import (velocity_circle, velocity_circle_interactive, gamma_curve,
simultaneity_diagram, lorentz_transform_grid, zijn_vector_diagram, model_comparison_bar)
import math
import numpy as np
%matplotlib inline
Hoofdstuk 1 – Inleiding#
Het deel van de ORT dat de speciale relativiteit beschrijft berust op twee principes:
Principe 1 — Snelheid door de tijd Elk object beweegt altijd met precies de lichtsnelheid \(c\) door de vierdimensionale ruimtetijd. Tijd is een bewegingsrichting net als de drie ruimtedimensies. Een object in rust beweegt met 1 seconde per seconde door de tijd — en dat is de lichtsnelheid \(c\). Versnellen in de ruimte betekent snelheid “lenen” van de tijdrichting.
Principe 2 — Invariantie van Zijn Het product van de massa van een object en zijn snelheid door de tijd is constant: \(m \cdot v_t = m_0 \cdot c\). Binnen de ORT noemen we dit de Invariantie van het Zijn: alle waarnemers zien dezelfde hoeveelheid Zijn. Wanneer een object sneller door de ruimte beweegt en dus trager door de tijd, neemt zijn massa evenredig toe.
Dit notebook laat zien dat deze twee principes alle effecten van de speciale relativiteit reproduceren: Lorentz-factor, E=mc\(^2\), impuls, snelheidsoptelling, gelijktijdigheid en de volledige Lorentz-transformatie.
Hoofdstuk 2 – Het Kernprincipe: De Snelheidsbol#
Formule (1) – De snelheidsnorm#
Dit is de vergelijking van een 4D-bol met straal \(c\) in de snelheidsruimte (hier weergegeven als 2D-doorsnede in het \((v_{ruimte}, v_{tijd})\)-vlak). De hoek \(\theta\) meet de richting van de snelheidsvector ten opzichte van de tijdas.
Formules (2a) en (2b) – Parametrisatie met \(\theta\)#
\(\theta = 0\): object in rust, beweegt met \(c\) door de tijd
\(\theta = 90°\): foton, beweegt met \(c\) door de ruimte, geen voortgang door de tijd
# De Snelheidsbol (2D-doorsnede)
velocity_circle(lang='nl')
pass
# Interactieve versie -- verschuif de slider om beta te veranderen
velocity_circle_interactive(lang='nl')
Interactieve versie — download het notebook om de slider te gebruiken.
Hoofdstuk 3 – Wiskundige Uitwerking#
Alle relativistische grootheden volgen direct uit de hoek \(\theta\).
Formule (5) – Tijddilatatie#
De eigentijd \(\tau\) van een bewegend object tikt trager met factor \(\cos\theta\).
Formule (6) – De Lorentz-factor#
De Lorentz-factor uit de SRT is simpelweg de secans van \(\theta\). In de ORT is \(\gamma\) een afgeleide notatie, geen vertrekpunt.
Formules (7) en (8) – Energie#
Afgeleid in hoofdstuk 4 via Invariantie van Zijn en de arbeid-integraal (formule 15).
Formule (9) – Impuls#
Afgeleid in hoofdstuk 4: uit \(m_{rel} = m_0/\cos\theta\) (formule 14), dat volgt uit Invariantie van Zijn.
Formule (10) – Relativistische snelheidsoptelling#
Dit beschrijft de optelling van ruimtesnelheden (\(v = c\sin\theta\)).
Volgt uit de Lorentz-transformatie (hoofdstuk 5, formules 22a-b).
Formule (11) – Rapiditeit#
Rapiditeiten zijn additief: \(\varphi_{totaal} = \varphi_1 + \varphi_2\).
Rapiditeit is de standaardterm in de relativistische natuurkunde (o.a. Rindler, Jackson).
# Gamma-curve: hoe gamma stijgt met toenemende snelheid
gamma_curve(lang='nl')
pass
# Bereken gamma voor diverse snelheden
print(f"{'beta':>8} {'theta (graden)':>15} {'gamma':>10} {'v_tijd/c':>10}")
print("-" * 50)
for beta in [0.0, 0.1, 0.3, 0.5, 0.8, 0.9, 0.95, 0.99, 0.999]:
stv = ORT.from_beta(beta)
print(f"{beta:8.3f} {math.degrees(stv.theta):15.2f} {stv.gamma:10.4f} {stv.v_time/C:10.6f}")
beta theta (graden) gamma v_tijd/c
--------------------------------------------------
0.000 0.00 1.0000 1.000000
0.100 5.74 1.0050 0.994987
0.300 17.46 1.0483 0.953939
0.500 30.00 1.1547 0.866025
0.800 53.13 1.6667 0.600000
0.900 64.16 2.2942 0.435890
0.950 71.81 3.2026 0.312250
0.990 81.89 7.0888 0.141067
0.999 87.44 22.3663 0.044710
# Snelheidsoptelling: 0.8c + 0.8c geeft NIET 1.6c
v1 = 0.8 * C
v2 = 0.8 * C
v_newton = NewtonModel.velocity_addition(v1, v2)
v_srt = EinsteinModel.velocity_addition(v1, v2)
v_ort = ORT.velocity_addition(v1, v2)
print(f"Snelheidsoptelling: {v1/C:.1f}c + {v2/C:.1f}c")
print(f" Newton: {v_newton/C:.4f}c (FOUT: overschrijdt c!)")
print(f" SRT: {v_srt/C:.4f}c")
print(f" ORT: {v_ort/C:.4f}c (= SRT)")
print()
# Rapiditeitsverificatie -- SRT en ORT
phi1_srt = math.atanh(v1 / C)
phi2_srt = math.atanh(v2 / C)
phi_total_srt = phi1_srt + phi2_srt
v_from_phi_srt = C * math.tanh(phi_total_srt)
phi1_ort = ORT.rapidity(v1)
phi2_ort = ORT.rapidity(v2)
phi_total_ort = phi1_ort + phi2_ort
v_from_phi_ort = C * math.tanh(phi_total_ort)
print(f"Rapiditeit (SRT): phi1={phi1_srt:.4f} + phi2={phi2_srt:.4f} = {phi_total_srt:.4f}")
print(f" v = c*tanh(phi_totaal) = {v_from_phi_srt/C:.4f}c")
print(f"Rapiditeit (ORT): phi1={phi1_ort:.4f} + phi2={phi2_ort:.4f} = {phi_total_ort:.4f}")
print(f" v = c*tanh(phi_totaal) = {v_from_phi_ort/C:.4f}c")
print(f" Verschil SRT vs ORT: {abs(phi_total_srt - phi_total_ort):.2e} (identiek)")
Snelheidsoptelling: 0.8c + 0.8c
Newton: 1.6000c (FOUT: overschrijdt c!)
SRT: 0.9756c
ORT: 0.9756c (= SRT)
Rapiditeit (SRT): phi1=1.0986 + phi2=1.0986 = 2.1972
v = c*tanh(phi_totaal) = 0.9756c
Rapiditeit (ORT): phi1=1.0986 + phi2=1.0986 = 2.1972
v = c*tanh(phi_totaal) = 0.9756c
Verschil SRT vs ORT: 0.00e+00 (identiek)
Hoofdstuk 4 – Invariantie van Zijn#
Het tweede principe van de ORT: het Zijn van een object wordt gedefinieerd als het product van zijn relativistische massa en zijn snelheid door de tijd. Dit product is invariant — het verandert niet met snelheid.
De naam Ontologische Relativiteitstheorie verwijst naar dit begrip: ontologie is de filosofische studie van wat bestaat. De ORT vertrekt vanuit het Zijn — het fundamentele bestaan van een object (\(m_0\)) — als invariant.
Formule (12) – Massa-Zijn#
Formule (13) – Energie-Zijn (afgeleid)#
Dit is geen onafhankelijk postulaat maar een gevolg van Massa-Zijn (12) en \(E = m_{rel} c^2\) (formule 7).
Formule (14) – Relativistische massa#
Uit \(S_m = m_0 c\) en \(v_{tijd} = c\cos\theta\) volgt:
Dit leidt de relativistische massa af uit het model, in plaats van het te postuleren! In de SRT is dit \(\gamma m_0\); hier volgt het direct uit het Zijn-principe.
Formule (15) – E = mc² via de arbeid-integraal#
De factor \(c^2\) wordt niet gepostuleerd maar afgeleid. De sleutel is de standaard definitie van kinetische energie als arbeid:
We kennen \(v\) en \(p\) beide als functie van \(\theta\):
Deze integraal is standaard (\(\int \sin x / \cos^2 x \, dx = 1/\cos x\)):
De oorsprong van \(c^2\): het product \(v \cdot dp\) bevat \(c \cdot c\): één \(c\) uit de snelheid \(v = c\sin\theta\), één \(c\) uit de impuls \(p = m_0 c \tan\theta\). De factor \(c^2\) is een rekenkundig gevolg, geen postulaat.
De totale energie is \(E = E_{kin} + m_0 c^2 = m_0 c^2 / \cos\theta\) (formule 7). In rust (\(\theta = 0\)) reduceert dit tot \(E_0 = m_0 c^2\).
Formules (16)–(19) – De Zijn-vector#
De Zijn-vector \(\vec{S}\) heeft twee componenten:
Zijn is tijdimpuls. De structuur is symmetrisch:
Door de ruimte |
Door de tijd |
|
|---|---|---|
Snelheid |
\(v = c\sin\theta\) |
\(d\tau/dt = \cos\theta\) |
“Impuls” |
\(p = m_{rel} \cdot v\) |
\(m_{rel} \cdot d\tau/dt = m_0\) |
Met dimensieloze tijdsnelheid \(d\tau/dt = \cos\theta\) reduceert Invariantie van Zijn tot: \(m_{rel} \cdot d\tau/dt = (m_0/\cos\theta) \cdot \cos\theta = m_0\). De behoudswet zegt simpelweg dat rustmassa invariant is.
Waarom \(S_{tijd} = m_0 c\) en niet \(m_0\)? De factor \(c\) is géén eenheidskeuze. Ze volgt direct uit Principe 1: een object in rust beweegt met \(v_{tijd} = c\) door de tijd. Invariantie van Zijn zegt dan \(m_0 \cdot c = m_0 c\). De tabel hierboven gebruikt de dimensieloze tijdsnelheid \(d\tau/dt = \cos\theta\) (waardoor de \(c\) wegvalt), terwijl \(S_{tijd}\) de volledige \(v_{tijd} = c\cos\theta\) gebruikt.
De grootte van de Zijn-vector:
Pythagoras op de Zijn-vector geeft de energie-impulsrelatie:
Verband met de vierimpuls (SRT)#
De Zijn-vector bevat dezelfde fysica als de vierimpuls \(p^\mu\) uit de speciale relativiteitstheorie (SRT), maar de presentatie verschilt wezenlijk:
Component |
Vierimpuls \(p^\mu\) (SRT) |
Zijn-vector \(\vec{S}\) (ORT) |
|---|---|---|
Ruimte |
\(p\) |
\(S_{ruimte} = p\) |
Tijd |
\(p^0 = E/c\) |
\(S_{tijd} = m_0 c\) |
Grootte |
\(m_0 c\) (als norm) |
\(\lvert\vec{S}\rvert = E/c\) |
De vierimpuls verbergt \(m_0\) als norm — je moet \(\sqrt{p^\mu p_\mu}\) berekenen om de rustmassa terug te vinden. De Zijn-vector maakt de invariantie van \(m_0\) direct zichtbaar als component: \(S_{tijd} = m_0 c\) staat er letterlijk in.
De afleidingsketen#
# Zijn-vector diagram
zijn_vector_diagram(lang='nl')
pass
# Verificatie: Invariantie van Zijn voor diverse snelheden
m0 = 1.0 # kg (eenheidsmassa)
print(f"Invariantie van Zijn: S_m = m_rel * v_tijd = m0 * c = {m0 * C:.6e} kg*m/s")
print()
print(f"{'beta':>6} {'m_rel (gamma*m0)':>16} {'v_tijd (m/s)':>14} {'S_m':>14} {'= m0*c?':>10}")
print("-" * 70)
for beta in [0.0, 0.3, 0.5, 0.8, 0.9, 0.99]:
stv = ORT.from_beta(beta)
m_rel = stv.relativistic_mass(m0)
v_t = stv.v_time
s_m = m_rel * v_t
match = abs(s_m - m0 * C) < 1e-6
print(f"{beta:6.2f} {m_rel:16.6f} {v_t:14.2f} {s_m:14.6e} {'JA' if match else 'NEE':>10}")
print()
print("De Zijn-waarde is constant -- onafhankelijk van de snelheid!")
Invariantie van Zijn: S_m = m_rel * v_tijd = m0 * c = 2.997925e+08 kg*m/s
beta m_rel (gamma*m0) v_tijd (m/s) S_m = m0*c?
----------------------------------------------------------------------
0.00 1.000000 299792458.00 2.997925e+08 JA
0.30 1.048285 285983777.98 2.997925e+08 JA
0.50 1.154701 259627884.49 2.997925e+08 JA
0.80 1.666667 179875474.80 2.997925e+08 JA
0.90 2.294157 130676502.85 2.997925e+08 JA
0.99 7.088812 42290930.54 2.997925e+08 JA
De Zijn-waarde is constant -- onafhankelijk van de snelheid!
# Verificatie: energie-impulsrelatie E^2 = (pc)^2 + (m0*c^2)^2
m0 = 1.0 # kg
print("Energie-impulsrelatie (formule 19):")
print(f" m0*c^2 = {m0 * C**2:.6e} J\n")
for beta in [0.0, 0.5, 0.8, 0.99]:
stv = ORT.from_beta(beta)
E = stv.total_energy(m0)
p = stv.momentum(m0)
lhs = E**2
rhs = (p * C)**2 + (m0 * C**2)**2
print(f" beta={beta:.2f}: E={E:.6e} J, p={p:.6e} kg*m/s")
print(f" E^2 = {lhs:.6e}")
print(f" (pc)^2+(m0c^2)^2 = {rhs:.6e}")
print(f" Klopt: {abs(lhs - rhs) / lhs < 1e-12}\n")
Energie-impulsrelatie (formule 19):
m0*c^2 = 8.987552e+16 J
beta=0.00: E=8.987552e+16 J, p=0.000000e+00 kg*m/s
E^2 = 8.077609e+33
(pc)^2+(m0c^2)^2 = 8.077609e+33
Klopt: True
beta=0.50: E=1.037793e+17 J, p=1.730853e+08 kg*m/s
E^2 = 1.077014e+34
(pc)^2+(m0c^2)^2 = 1.077014e+34
Klopt: True
beta=0.80: E=1.497925e+17 J, p=3.997233e+08 kg*m/s
E^2 = 2.243780e+34
(pc)^2+(m0c^2)^2 = 2.243780e+34
Klopt: True
beta=0.99: E=6.371107e+17 J, p=2.103921e+09 kg*m/s
E^2 = 4.059100e+35
(pc)^2+(m0c^2)^2 = 4.059100e+35
Klopt: True
# Numerieke verificatie: arbeid-integraal E_kin = integral(v dp) = m0 c^2 (1/cos(theta) - 1)
# Dit is de NIET-CIRCULAIRE afleiding van E = mc^2 (formule 15)
m0 = 1.0 # kg
print("Arbeid-integraal: E_kin = ∫ v dp = m₀c² (1/cos(θ) - 1)")
print(f"{'':>58} {'Numeriek':>14} {'Analytisch':>14} {'Verschil':>14}")
print("-" * 100)
for beta in [0.1, 0.3, 0.5, 0.8, 0.9, 0.95, 0.99]:
stv = ORT.from_beta(beta)
# Numerieke integraal via de nieuwe methode
E_numerical = stv.kinetic_energy_integral(m0, n_steps=1_000_000)
# Analytisch resultaat: (gamma - 1) m0 c^2
E_analytical = stv.kinetic_energy(m0)
rel_diff = abs(E_numerical - E_analytical) / E_analytical if E_analytical > 0 else 0
print(f" β = {beta:.2f} θ = {math.degrees(stv.theta):6.2f}° γ = {stv.gamma:8.4f} "
f"{E_numerical:14.6e} {E_analytical:14.6e} {rel_diff:14.2e}")
print()
print("De numerieke arbeid-integraal matcht het analytische resultaat.")
print("c² ontstaat als c · c: één c uit v = c·sin(θ), één c uit p = m₀c·tan(θ).")
Arbeid-integraal: E_kin = ∫ v dp = m₀c² (1/cos(θ) - 1)
Numeriek Analytisch Verschil
----------------------------------------------------------------------------------------------------
β = 0.10 θ = 5.74° γ = 1.0050 4.527763e+14 4.527763e+14 3.06e-14
β = 0.30 θ = 17.46° γ = 1.0483 4.339625e+15 4.339625e+15 2.56e-14
β = 0.50 θ = 30.00° γ = 1.1547 1.390379e+16 1.390379e+16 6.47e-14
β = 0.80 θ = 53.13° γ = 1.6667 5.991701e+16 5.991701e+16 3.59e-13
β = 0.90 θ = 64.16° γ = 2.2942 1.163131e+17 1.163131e+17 8.31e-13
β = 0.95 θ = 71.81° γ = 3.2026 1.979565e+17 1.979565e+17 1.83e-12
β = 0.99 θ = 81.89° γ = 7.0888 5.472351e+17 5.472351e+17 9.84e-12
De numerieke arbeid-integraal matcht het analytische resultaat.
c² ontstaat als c · c: één c uit v = c·sin(θ), één c uit p = m₀c·tan(θ).
Hoofdstuk 5 – Gelijktijdigheid en Gelijkplaatsigheid#
De ORT bevat een belangrijk dualiteitsprincipe:
Gelijktijdigheid en gelijkplaatsigheid zijn duale begrippen, symmetrisch rond de lichtlijn (45 graden).
Formule (20) – Hellingshoek simultaneiteitslijn#
Formule (21) – Relativiteit van gelijktijdigheid#
Twee gebeurtenissen die in het rustframe gelijktijdig zijn (\(\Delta t = 0\)) maar op verschillende plaatsen, zijn niet gelijktijdig in het bewegende frame.
In de SRT luidt deze formule \(\Delta t' = \gamma v \Delta x / c^2\), wat identiek is.
Formules (22a) en (22b) – De volledige Lorentz-transformatie#
In de SRT schrijft men dit als \(x' = \gamma(x - vt)\) en \(t' = \gamma(t - vx/c^2)\).
De ORT leidt de volledige Lorentz-transformatie af: de ruimtelijke component (22a) volgt uit lengtecontractie, de temporele component (22b) volgt uit de dualiteit gelijktijdigheid-gelijkplaatsigheid.
# Relativiteit van gelijktijdigheid
simultaneity_diagram(beta=0.6, lang='nl')
pass
# Lorentz-transformatie: hoe het ruimtetijd-rooster vervormt
lorentz_transform_grid(beta=0.5, lang='nl')
pass
# Numerieke verificatie van de Lorentz-transformatie
beta = 0.6
stv = ORT.from_beta(beta)
v = stv.v_space
gamma = stv.gamma
print(f"Lorentz-transformatie voor beta = {beta}, gamma = {gamma:.6f}")
print(f"v = {v:.2f} m/s\n")
# Testgebeurtenissen (x in lichtmeters, t in seconden)
events = [
(0, 0, "Oorsprong"),
(C, 0, "x=c, t=0 (gelijktijdig maar niet gelijkplaatsig)"),
(0, 1, "x=0, t=1 (gelijkplaatsig maar niet gelijktijdig)"),
(C, 1, "x=c, t=1"),
]
print(f"{'Gebeurtenis':<50} {'x':>12} {'t':>12} {'x_prime':>14} {'t_prime':>14}")
print("-" * 105)
for x, t, label in events:
x_p, t_p = stv.lorentz_transform(x, t)
# Verificatie met Einstein-formules
x_e = EinsteinModel.lorentz_x(x, t, v)
t_e = EinsteinModel.lorentz_t(x, t, v)
print(f"{label:<50} {x/C:12.4f}c {t:12.4f}s {x_p/C:14.4f}c {t_p:14.4f}s")
assert abs(x_p - x_e) < 1e-6, "Mismatch!"
assert abs(t_p - t_e) < 1e-6, "Mismatch!"
print("\nAlle waarden komen exact overeen met Einstein's Lorentz-transformatie.")
Lorentz-transformatie voor beta = 0.6, gamma = 1.250000
v = 179875474.80 m/s
Gebeurtenis x t x_prime t_prime
---------------------------------------------------------------------------------------------------------
Oorsprong 0.0000c 0.0000s 0.0000c 0.0000s
x=c, t=0 (gelijktijdig maar niet gelijkplaatsig) 1.0000c 0.0000s 1.2500c -0.7500s
x=0, t=1 (gelijkplaatsig maar niet gelijktijdig) 0.0000c 1.0000s -0.7500c 1.2500s
x=c, t=1 1.0000c 1.0000s 0.5000c 0.5000s
Alle waarden komen exact overeen met Einstein's Lorentz-transformatie.
Hoofdstuk 6 – Relativistische Effecten#
De ORT beschrijft alle bekende relativistische effecten in termen van de hoek \(\theta\):
Effect |
ORT (\(\theta\)-notatie) |
Equivalent (\(\gamma\)-notatie) |
|---|---|---|
Tijddilatatie |
\(\tau = t\cos\theta\) |
\(= t/\gamma\) |
Lengtecontractie |
\(L = L_0\cos\theta\) |
\(= L_0/\gamma\) |
Relativistische massa |
\(m = m_0/\cos\theta\) |
\(= \gamma m_0\) |
Impuls |
\(p = m_0 c\tan\theta\) |
\(= \gamma m_0 v\) |
# Relativistische effecten bij v = 0.8c -- Newton vs SRT vs ORT
beta = 0.8
v = beta * C
stv = ORT.from_beta(beta)
m0 = 1.0 # kg
L0 = 1.0 # m (rustlengte)
t_coord = 1.0 # s (coordinaattijd)
theta_deg = math.degrees(stv.theta)
print(f"=== Relativistische effecten bij beta = {beta} ===")
print(f" theta = {theta_deg:.2f} graden, gamma = {stv.gamma:.6f}")
print()
# --- Tijddilatatie ---
td_newton = NewtonModel.proper_time(t_coord, v)
td_srt = EinsteinModel.proper_time(t_coord, v)
td_ort = stv.proper_time(t_coord)
print(f"Tijddilatatie (tau voor t = {t_coord} s):")
print(f" {'Newton':>8}: {td_newton:.6f} s (geen dilatatie)")
print(f" {'SRT':>8}: {td_srt:.6f} s (= t/gamma)")
print(f" {'ORT':>8}: {td_ort:.6f} s (= t*cos(theta))")
print()
# --- Lengtecontractie ---
lc_newton = L0 # Newton: geen contractie
lc_srt = EinsteinModel.length(L0, v)
lc_ort = stv.length_contraction(L0)
print(f"Lengtecontractie (L0 = {L0} m):")
print(f" {'Newton':>8}: {lc_newton:.6f} m (geen contractie)")
print(f" {'SRT':>8}: {lc_srt:.6f} m (= L0/gamma)")
print(f" {'ORT':>8}: {lc_ort:.6f} m (= L0*cos(theta))")
print()
# --- Impuls ---
p_newton = NewtonModel.momentum(m0, v)
p_srt = EinsteinModel.momentum(m0, v)
p_ort = stv.momentum(m0)
print(f"Impuls (m0 = {m0} kg):")
print(f" {'Newton':>8}: {p_newton:.6e} kg*m/s (= m0*v)")
print(f" {'SRT':>8}: {p_srt:.6e} kg*m/s (= gamma*m0*v)")
print(f" {'ORT':>8}: {p_ort:.6e} kg*m/s (= m0*c*tan(theta))")
print()
# --- Kinetische energie ---
ek_newton = NewtonModel.kinetic_energy(m0, v)
ek_srt = EinsteinModel.kinetic_energy(m0, v)
ek_ort = stv.kinetic_energy(m0)
print(f"Kinetische energie:")
print(f" {'Newton':>8}: {ek_newton:.6e} J (= 0.5*m0*v^2)")
print(f" {'SRT':>8}: {ek_srt:.6e} J (= (gamma-1)*m0*c^2)")
print(f" {'ORT':>8}: {ek_ort:.6e} J (= (1/cos(theta)-1)*m0*c^2)")
print()
# --- Verificatie SRT = ORT ---
print("Verificatie SRT = ORT:")
print(f" Tijddilatatie: verschil = {abs(td_srt - td_ort):.2e}")
print(f" Lengtecontractie: verschil = {abs(lc_srt - lc_ort):.2e}")
print(f" Impuls: verschil = {abs(p_srt - p_ort):.2e}")
print(f" Kinetische energie: verschil = {abs(ek_srt - ek_ort):.2e}")
print(" SRT en ORT geven identieke resultaten!")
=== Relativistische effecten bij beta = 0.8 ===
theta = 53.13 graden, gamma = 1.666667
Tijddilatatie (tau voor t = 1.0 s):
Newton: 1.000000 s (geen dilatatie)
SRT: 0.600000 s (= t/gamma)
ORT: 0.600000 s (= t*cos(theta))
Lengtecontractie (L0 = 1.0 m):
Newton: 1.000000 m (geen contractie)
SRT: 0.600000 m (= L0/gamma)
ORT: 0.600000 m (= L0*cos(theta))
Impuls (m0 = 1.0 kg):
Newton: 2.398340e+08 kg*m/s (= m0*v)
SRT: 3.997233e+08 kg*m/s (= gamma*m0*v)
ORT: 3.997233e+08 kg*m/s (= m0*c*tan(theta))
Kinetische energie:
Newton: 2.876017e+16 J (= 0.5*m0*v^2)
SRT: 5.991701e+16 J (= (gamma-1)*m0*c^2)
ORT: 5.991701e+16 J (= (1/cos(theta)-1)*m0*c^2)
Verificatie SRT = ORT:
Tijddilatatie: verschil = 1.11e-16
Lengtecontractie: verschil = 1.11e-16
Impuls: verschil = 5.96e-08
Kinetische energie: verschil = 1.60e+01
SRT en ORT geven identieke resultaten!
Hoofdstuk 7 & 8 – Modelvergelijking: Newton vs Einstein (SRT) vs ORT#
Hier een vergelijking van verschillende aspecten in deze drie modellen:
Aspect |
Newton |
Einstein (SRT) |
ORT |
|---|---|---|---|
Tijddilatatie |
Geen |
\( au = t/gamma\) |
\( au = tcos heta\) |
Lengtecontractie |
Geen |
= L_0/gamma$ |
= L_0 cos heta$ |
Snelheidsoptelling |
+ v_2$ |
Relativistisch (rapiditeiten additief) |
Idem |
Massa |
Constant $ |
\(gamma m_0\) (relativistisch) |
/cos heta$ uit Zijn |
= mc^2$ |
– |
Afgeleid (impulsbehoud + Lorentz) |
Afgeleid (Invariantie van Zijn) |
Afleidingsketen SRT vs ORT#
Stap |
SRT |
ORT |
|---|---|---|
Startpunt |
Relativiteitsprincipe + $ = constant |
Alles beweegt met $ + Invariantie van Zijn |
Geeft |
Lorentz-transformaties |
Snelheidsbol |
Plus |
Impulsbehoud invariant onder Lorentz |
cdot v_t = m_0 c$ |
Geeft |
= gamma m_0 v$ |
{rel} = m_0/cos heta$ |
Via |
Arbeid-integraal |
Arbeid-integraal |
Geeft |
= gamma m_0 c^2$ |
= m_0 c^2/cos heta$ |
Einstein (SRT) en ORT geven identieke numerieke resultaten — ze beschrijven dezelfde fysica. Het verschil zit in de interpretatie: ORT maakt de geometrische structuur zichtbaar via de hoek \( heta\), en leidt /cos heta\( en = mc^2\) af vanuit Invariantie van Zijn. Newton wijkt fundamenteel af bij hoge snelheden.
# Modelvergelijking: tijddilatatie bij verschillende snelheden
betas_compare = [0.1, 0.3, 0.5, 0.8, 0.9, 0.99]
labels = [f'{b}c' for b in betas_compare]
newton_td = [1.0 for _ in betas_compare] # Newton: geen dilatatie
einstein_td = []
spacetime_td = []
for beta in betas_compare:
v = beta * C
stv = ORT.from_beta(beta)
einstein_td.append(EinsteinModel.proper_time(1.0, v))
spacetime_td.append(stv.proper_time(1.0))
values = {
'labels': labels,
'newton': newton_td,
'einstein': einstein_td,
'spacetime': spacetime_td
}
model_comparison_bar('Tijddilatatie (tau/t)', values, lang='nl')
pass
# Gedetailleerde vergelijkingstabel
m0 = 1.0 # kg
print(f"{'beta':>6} | {'Newton tau':>12} {'Einstein tau':>14} {'ORT tau':>14} | "
f"{'Newton p':>14} {'Einstein p':>14} {'ORT p':>14}")
print("-" * 100)
for beta in [0.1, 0.3, 0.5, 0.8, 0.9, 0.95, 0.99]:
v = beta * C
stv = ORT.from_beta(beta)
# Eigentijd voor 1 seconde coordinaattijd
tau_n = NewtonModel.proper_time(1.0, v)
tau_e = EinsteinModel.proper_time(1.0, v)
tau_st = stv.proper_time(1.0)
# Impuls
p_n = NewtonModel.momentum(m0, v)
p_e = EinsteinModel.momentum(m0, v)
p_st = stv.momentum(m0)
print(f"{beta:6.2f} | {tau_n:12.6f} {tau_e:14.6f} {tau_st:14.6f} | "
f"{p_n:14.6e} {p_e:14.6e} {p_st:14.6e}")
print("\nEinstein (SRT) en ORT geven identieke resultaten.")
print("Newton wijkt steeds verder af bij hogere snelheden.")
beta | Newton tau Einstein tau ORT tau | Newton p Einstein p ORT p
----------------------------------------------------------------------------------------------------
0.10 | 1.000000 0.994987 0.994987 | 2.997925e+07 3.013028e+07 3.013028e+07
0.30 | 1.000000 0.953939 0.953939 | 8.993774e+07 9.428037e+07 9.428037e+07
0.50 | 1.000000 0.866025 0.866025 | 1.498962e+08 1.730853e+08 1.730853e+08
0.80 | 1.000000 0.600000 0.600000 | 2.398340e+08 3.997233e+08 3.997233e+08
0.90 | 1.000000 0.435890 0.435890 | 2.698132e+08 6.189940e+08 6.189940e+08
0.95 | 1.000000 0.312250 0.312250 | 2.848028e+08 9.120990e+08 9.120990e+08
0.99 | 1.000000 0.141067 0.141067 | 2.967945e+08 2.103921e+09 2.103921e+09
Einstein (SRT) en ORT geven identieke resultaten.
Newton wijkt steeds verder af bij hogere snelheden.
Hoofdstuk 9 – Gedachte-experimenten#
9.1 De Tweelingparadox#
Een tweeling: Alice blijft op aarde, Bob reist met \(v = 0.8c\) naar een ster op 10 lichtjaar afstand en terug.
9.2 Muon-verval#
Muonen ontstaan in de bovenste atmosfeer (ca. 10 km hoogte) en bewegen met \(v \approx 0.998c\). Zonder relativiteit zouden ze in ~2.2 \(\mu\)s vervallen en slechts ~660 m afleggen.
9.3 GPS-correctie (SRT-deel)#
GPS-satellieten bewegen met ~3.87 km/s. De speciale relativiteit veroorzaakt een tijdvertraging.
# 9.1 Tweelingparadox
print("=== Tweelingparadox ===")
beta_bob = 0.8
distance_ly = 10 # lichtjaar enkele reis
stv_bob = ORT.from_beta(beta_bob)
theta_bob = math.degrees(stv_bob.theta)
# Reistijd voor Alice (op aarde)
t_alice_one_way = distance_ly / beta_bob
t_alice_total = 2 * t_alice_one_way
# ORT: eigentijd Bob = t * cos(theta)
t_bob_ort = t_alice_total * math.cos(stv_bob.theta)
# SRT: eigentijd Bob = t / gamma
t_bob_srt = t_alice_total / stv_bob.gamma
print(f" Bob reist met {beta_bob}c naar een ster op {distance_ly} lichtjaar")
print(f" theta = {theta_bob:.2f} graden")
print()
print(f" Alice (aarde): {t_alice_total:.2f} jaar")
print(f" Bob (ORT): tau = t * cos(theta) = {t_alice_total:.2f} * cos({theta_bob:.2f}) = {t_bob_ort:.2f} jaar")
print(f" Bob (SRT): tau = t / gamma = {t_alice_total:.2f} / {stv_bob.gamma:.4f} = {t_bob_srt:.2f} jaar")
print(f" Verschil ORT vs SRT: {abs(t_bob_ort - t_bob_srt):.2e} jaar (identiek)")
print()
print(f" Bob is {t_alice_total - t_bob_ort:.2f} jaar jonger bij terugkomst")
=== Tweelingparadox ===
Bob reist met 0.8c naar een ster op 10 lichtjaar
theta = 53.13 graden
Alice (aarde): 25.00 jaar
Bob (ORT): tau = t * cos(theta) = 25.00 * cos(53.13) = 15.00 jaar
Bob (SRT): tau = t / gamma = 25.00 / 1.6667 = 15.00 jaar
Verschil ORT vs SRT: 0.00e+00 jaar (identiek)
Bob is 10.00 jaar jonger bij terugkomst
# 9.2 Muon-verval
print("=== Muon-verval ===")
beta_muon = 0.998
tau_muon = 2.2e-6 # rustlevensduur in seconden
h_atmosphere = 10000 # hoogte in meter
stv_muon = ORT.from_beta(beta_muon)
theta_muon = math.degrees(stv_muon.theta)
# Zonder relativiteit
d_classical = beta_muon * C * tau_muon
# ORT: levensduur = tau / cos(theta)
t_ort = tau_muon / math.cos(stv_muon.theta)
d_ort = beta_muon * C * t_ort
# SRT: levensduur = tau * gamma
t_srt = tau_muon * stv_muon.gamma
d_srt = beta_muon * C * t_srt
print(f" Muon snelheid: {beta_muon}c, theta = {theta_muon:.2f} graden")
print(f" Rustlevensduur: {tau_muon*1e6:.1f} microseconde")
print()
print(f" Zonder relativiteit:")
print(f" Afstand = {d_classical:.0f} m ({d_classical/1000:.2f} km) -- bereikt de grond NIET")
print()
print(f" ORT: levensduur = tau / cos(theta) = {t_ort*1e6:.1f} us")
ort_bereikt = "JA" if d_ort > h_atmosphere else "NEE"
print(f" Afstand = {d_ort/1000:.1f} km -- bereikt de grond: {ort_bereikt}")
print()
print(f" SRT: levensduur = tau * gamma = {t_srt*1e6:.1f} us")
srt_bereikt = "JA" if d_srt > h_atmosphere else "NEE"
print(f" Afstand = {d_srt/1000:.1f} km -- bereikt de grond: {srt_bereikt}")
print()
print(f" Verschil ORT vs SRT: {abs(d_ort - d_srt):.2e} m (identiek)")
=== Muon-verval ===
Muon snelheid: 0.998c, theta = 86.38 graden
Rustlevensduur: 2.2 microseconde
Zonder relativiteit:
Afstand = 658 m (0.66 km) -- bereikt de grond NIET
ORT: levensduur = tau / cos(theta) = 34.8 us
Afstand = 10.4 km -- bereikt de grond: JA
SRT: levensduur = tau * gamma = 34.8 us
Afstand = 10.4 km -- bereikt de grond: JA
Verschil ORT vs SRT: 0.00e+00 m (identiek)
# 9.3 GPS SRT-correctie
print("=== GPS Speciale Relativiteit Correctie ===")
v_gps = 3870 # m/s (orbitale snelheid GPS-satelliet)
stv_gps = ORT.from_v(v_gps)
theta_gps = stv_gps.theta
seconds_per_day = 86400
# ORT: eigentijd = t * cos(theta)
tau_ort = seconds_per_day * math.cos(theta_gps)
delta_ort = seconds_per_day - tau_ort
# SRT: eigentijd = t / gamma
tau_srt = seconds_per_day / stv_gps.gamma
delta_srt = seconds_per_day - tau_srt
print(f" Orbitale snelheid: {v_gps} m/s")
print(f" theta = {math.degrees(theta_gps):.6f} graden")
print()
print(f" ORT: tau = t * cos(theta)")
print(f" Tijdvertraging per dag: {delta_ort*1e9:.2f} nanoseconde")
print()
print(f" SRT: tau = t / gamma")
print(f" Tijdvertraging per dag: {delta_srt*1e9:.2f} nanoseconde")
print()
print(f" Verschil ORT vs SRT: {abs(delta_ort - delta_srt)*1e9:.4f} ns (identiek)")
print()
print(f" De satellietklok loopt LANGZAMER door beweging (SRT).")
print(f" (NB: ART geeft een VERSNELLING door minder zwaartekracht, die groter is.)")
=== GPS Speciale Relativiteit Correctie ===
Orbitale snelheid: 3870 m/s
theta = 0.000740 graden
ORT: tau = t * cos(theta)
Tijdvertraging per dag: 7198.86 nanoseconde
SRT: tau = t / gamma
Tijdvertraging per dag: 7198.86 nanoseconde
Verschil ORT vs SRT: 0.0000 ns (identiek)
De satellietklok loopt LANGZAMER door beweging (SRT).
(NB: ART geeft een VERSNELLING door minder zwaartekracht, die groter is.)
Hoofdstuk 10 – Samenvatting en Beperkingen#
Wat het model beschrijft#
De ORT reproduceert de volledige speciale relativiteit vanuit de eerste twee principes: (1) alles beweegt met \(c\) door de 4D-ruimtetijd — tijd is een bewegingsrichting net als ruimte, en (2) Invariantie van Zijn (\(m \cdot v_t = m_0 \cdot c\)).
Overzicht formules#
Nr |
Naam |
ORT (\(\theta\)) |
SRT (\(\gamma, \beta\)) |
Beschrijving |
|---|---|---|---|---|
(1) |
Snelheidsnorm |
\(v_r^2 + v_t^2 = c^2\) |
— |
Snelheidswet (ORT-principe 1) |
(2) |
Parametrisatie |
\(v_r = c\sin\theta\), \(v_t = c\cos\theta\) |
\(v_r = \beta c\) |
Snelheidscomponenten |
(5) |
Tijddilatatie |
\(d\tau/dt = \cos\theta\) |
\(= 1/\gamma\) |
Eigentijd vs coördinaattijd |
(6) |
Lorentz-factor |
\(1/\cos\theta\) |
\(\gamma = 1/\sqrt{1-\beta^2}\) |
Definitie van \(\gamma\) |
(7) |
Totale energie |
\(m_0 c^2/\cos\theta\) |
\(\gamma m_0 c^2\) |
Energie van een bewegend object |
(8) |
Kinetische energie |
\((1/\cos\theta - 1)\,m_0 c^2\) |
\((\gamma-1)\,m_0 c^2\) |
Verschil met rustenergie |
(9) |
Impuls |
\(m_0 c\tan\theta\) |
\(\gamma m_0 v\) |
Ruimtelijke impuls |
(10) |
Snelheidsoptelling |
\((v_1+v_2)/(1+v_1 v_2/c^2)\) |
idem |
Optelling ruimtesnelheden |
(11) |
Rapiditeit |
\(\text{artanh}(\sin\theta)\) |
\(\text{artanh}(\beta)\) |
Additieve snelheidsparameter |
(12) |
Zijn in de tijd |
\(S_{tijd} = m_0 c\) |
— |
Invariantie van Zijn in de tijd (ORT-principe 2) |
(13) |
Energie-gevolg |
\(E \cdot v_t = S_{tijd} \cdot c^2\) |
— |
Afgeleid uit (12) + (7) |
(14) |
Rel. massa |
\(m_0/\cos\theta\) |
\(\gamma m_0\) |
Volgt uit Massa-Zijn |
(15) |
Arbeid-integraal |
\(\int v\,dp = m_0 c^2(1/\cos\theta - 1)\) |
\((\gamma-1)\,m_0 c^2\) |
Afleiding van \(E = mc^2\) (uit Zijn) |
(16) |
Zijn in de ruimte |
\(S_r = m_0 c\tan\theta\) |
\(= p\) |
Ruimtecomponent Zijn-vector (varieert) |
(17) |
Zijn in de tijd |
\(S_t = m_0 c\) |
— |
Tijdcomponent Zijn-vector (invariant) |
(18) |
Zijn-grootte |
\(m_0 c/\cos\theta\) |
\(= E/c\) |
Grootte Zijn-vector |
(19) |
Energie-impuls |
\(E^2 = (pc)^2 + (m_0 c^2)^2\) |
idem |
Pythagoras op Zijn-vector |
(20) |
Simultaneiteit |
\(\alpha = \arctan(\sin\theta)\) |
\(\arctan(\beta)\) |
Hellingshoek |
(21) |
Rel. gelijktijdigheid |
\((\tan\theta/c)\,\Delta x\) |
\(\gamma v \Delta x/c^2\) |
Tijdverschil |
(22) |
Lorentz-transf. |
\((x - c\sin\theta\cdot t)/\cos\theta\) |
\(\gamma(x - vt)\) |
Coördinaattransformatie |
De afleidingsketen#
Beperkingen#
Dit notebook behandelt alleen speciale relativiteit (ruimtetijd zonder zwaartekrachtsbronnen)
Zwaartekracht (kromme ruimtetijd) wordt behandeld in Notebook 02
Het model is beschrijvend: het geeft dezelfde voorspellingen als de SRT, maar biedt een alternatieve, geometrisch intuïtieve interpretatie
Opmerking over \(v_{tijd}\): De tijdsnelheid is even “echt” als de ruimtelijke snelheid — beide zijn componenten van dezelfde snelheidsvector door de ruimtetijd. Een waarnemer in rust ziet anderen (ook in rust) met één seconde per seconde door de tijd bewegen: dat is \(v_{tijd} = c\), direct waarneembaar.
Conclusie#
De ORT biedt een elegant en intuïtief kader voor speciale relativiteit. Alle formules volgen logisch uit de eerste twee principes. Het model is volledig voor SRT.