Python en Jacobi

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 1.605

Re: Python en Jacobi

@CoenCo.
Dankjewel voor je mooie uitbreiding op de voorbeeld code ook leerzaam voor mij. Ik gebruik veel plt1, als benaming! Ben meer geïnteresseerd in de output efficient te bereken! Ik maak veel gebruik van templates! Vroeger deed ik nog wel eens twee plot's maken.

Een tijd geleden had ik voor iemand hier op WF een random walk video geprogrammeerd tot 100.000.000 stappen met alle getallen priem ontbonden op pariteit. Hier kreeg ik een list als output per factor en deed mij denken aan de scipy.special.ellipj welke Puntje had gevonden. Kreeg trouwens ook alleen stank voor dank op random walk filmpje alsof alles "ff" simpel gedaan is.

@Puntje,
Sorry voor mijn reactie. Ik probeer ook alleen maar te stimuleren met simpele voorbeelden. En op deze manier de eerste drempel te overkomen en jouw te motiveren! Hier probeerde al stapjes vooruit denken zodat het behapbaar blijft!

Ben geïnteresseerd in uiteindelijk resultaat.

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Juist - ik ben ook van plan een goed boek over Python te kopen, want dat het een mooie en krachtige programmeertaal is dat is mij nu al wel duidelijk. Is Kinder & Nelson: A Student's Guide to Python for Physical Modeling goed?

Verder nog een vraag:
ph.png
Heeft dat een bedoeling dat de ph daar ontbreekt?

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Voor de berekening van de lichtbaan hebben we nu paragraaf "9.2 Trajectory of Light Signal using Jacobi’s Elliptic Function" nodig van: https://www.researchgate.net/publicatio ... s_approach

Morgen weer verder...

Gebruikersavatar
Berichten: 1.605

Re: Python en Jacobi

Ik zie net dat mpmath ook een hele bibliotheek heeft aan Jabobi elliptic functions:

https://mpmath.org/doc/current/function ... -functions

Code: Selecteer alles

from mpmath import *
# Klein J-function as function of the number-theoretic nome
fp.cplot(lambda q: fp.kleinj(qbar=q), [-1,1], [-1,1], points=50000)

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Die ellipfun wordt als mij goed herinner in het GitHub programma ook gebruikt.

Moet ik die code dan in mijn programma's opnemen? En wat betekent dat sterretje?

Gebruikersavatar
Berichten: 1.605

Re: Python en Jacobi

* betekend zoiets als toegang tot alle elementen van mpmath (in mijn woorden).

Dit hoofdstuk: 9.2 Trajectory of Light Signal using Jacobi’s Elliptic Function.

Ga ik eens proberen door te nemen.

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Code: Selecteer alles

from mpmath import *

mp.dps = 25; mp.pretty = True

ellipfun('cd', 3.5, 0.5)
Out[5]: -0.9891101840595543931308394
Ziet ernaar uit dat dat ook werkt. Zo hebben we dus meerdere opties. :)

Technicus
Berichten: 1.153

Re: Python en Jacobi

import * wordt over het algemeen sterk afgeraden omdat het je namespace vervuild. Raar dat dat zo in de documentatie staat.

Beter is bijvoorbeeld

Code: Selecteer alles

import mpmath as mpm
#vergelijkbaar met: 
import numpy as np

#alle commandos uit de mpmath package zet je nu mpm. voor bijv:

mpm.mp.dps =25
mpm.mp.pretty = True
mpm.ellipfun('cd', 3.5, 0.5)
Niet getest, maar zou moeten werken. En anders is het een slecht package :)

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Laten we "9.2 Trajectory of Light Signal using Jacobi’s Elliptic Function. First Case: Solution of the equation (9.5)" proberen. Daarvoor hebben we:

e.png
e.png (10.08 KiB) 734 keer bekeken
tau.png
tau.png (5.67 KiB) 734 keer bekeken
En:
r.png

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Dit kan met de schwarzschildstraal \( r_s \) van de zon vereenvoudigd worden tot:

\( e_1 = \frac{r_0 - r_s + \sqrt{(r_0 - r_s)(r_0 + 3r_s)}}{2 r_s r_0} \,\,\,\,\,\,\, (1) \)
\(\)
\( e_2 = \frac{1}{r_0} \,\,\,\,\,\,\, (2) \)
\(\)
\( e_3 = \frac{r_0 - r_s - \sqrt{(r_0 - r_s)(r_0 + 3r_s)}}{2 r_s r_0} \,\,\,\,\,\,\, (3) \)
\(\)
\( \tau = \sqrt{ \frac{ r_s (e_1 - e_3)}{ 4 }} \,\,\,\,\,\,\, (4) \)
\(\)
\( h = \sqrt{ \frac{ e_2 - e_3}{ e_1 - e_3 }} \,\,\,\,\,\,\, (5) \)
\(\)
\( r = \frac{1}{ e_3 + (e_2 - e_3) \mathrm{sn}^2( \tau \varphi + \sigma ; h)} \,\,\,\,\,\,\, (6) \)
\(\)
Verder is \( r_0 \) de kleinste afstand r van de lichtbaan tot het centrum van de zon in de gebruikelijke schwarzschildcoördinaten.

Gebruikersavatar
Berichten: 1.605

Re: Python en Jacobi

Ik probeer ook inzicht te krijgen in de formules.

Maar waarom kom je (weer) met de Schwarzschild radius? In mijn ogen word de formule onbegrijpbaar: massa en gravitatie constante zijn de leidende parameters.

Zo word het voor mij onbegrijpelijk. Maar het is jouw keuze. Het is al moeilijk genoeg te begrijpen met: e1, e2, en e3.

Maar de samenvatting van jouw laatste post helpt mij de totale formule set te zien. Dus dat is mooi gedaan. Op de Schwarzschild radius na in mijn ogen.

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Je kunt \( r_s \) ook vervangen door \( 2 \mathrm{M} \mathrm{G} \) wat neerkomt op het gelijkstellen van c aan 1. En dat laatste vind ik nu juist weer verwarrend, temeer omdat de auteur \( \mathrm{G} \) kennelijk weer niet gelijkstelt aan 1. Zo krijg je een soort van vlees noch vis eenheden.

De gegeven formules (1) t/m (6) bouwen op elkaar voort, en dat zou dus in Python te programmeren moeten zijn. Je krijgt dan een grafiek in poolcoördinaten.

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Waarom zouden we eigenlijk alles met Python moeten doen? De formules (1) t/m (5) kunnen ook met een rekenmachientje of met WolframAlpha.

Gebruikersavatar
Berichten: 7.463

Re: Python en Jacobi

Voor de schwarzschildradius rs en straal r0 van onze zon hebben we:
\(\)
\( \left. \begin{array} {lcrr} r_s = 2,95.10^3 \, \mathrm{m} \\ r_{0} = 7,0.10^8 \, \mathrm{m} \end{array} \right \} \,\,\,\,\,\, (7) \)

Bron: https://en.wikipedia.org/wiki/Schwarzschild_radius

Gebruikersavatar
Berichten: 1.605

Re: Python en Jacobi

Dat zijn toch allemaal constanten? Ikzelf zou eerst allemaal 1 invullen voor deze. Dan kan de formule 6 getest worden? Of?

Ik ben zelf geen voorstander alles in detail uit te rekenen in eerste run. Dan is het zeer moeilijk de werking te controleren. De totale deflectie moet toch: 4 zijn? Met G=1, M=1 en R=1.

De details en getallen invullen is de laatste stap. Zo is mij geleerd geworden.

Reageer