2 van 14

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 22:16
door OOOVincentOOO
@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.

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 22:26
door Professor Puntje
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
Heeft dat een bedoeling dat de ph daar ontbreekt?

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 22:52
door Professor Puntje
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...

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 22:53
door OOOVincentOOO
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)

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 22:59
door Professor Puntje
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?

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 23:00
door OOOVincentOOO
* 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.

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 23:12
door Professor Puntje

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. :)

Re: Python en Jacobi

Geplaatst: vr 04 jun 2021, 23:39
door CoenCo
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 :)

Re: Python en Jacobi

Geplaatst: za 05 jun 2021, 14:00
door Professor Puntje
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
e 1210 keer bekeken
tau
tau 1210 keer bekeken
En:
r

Re: Python en Jacobi

Geplaatst: za 05 jun 2021, 14:43
door Professor Puntje
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.

Re: Python en Jacobi

Geplaatst: za 05 jun 2021, 14:55
door OOOVincentOOO
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.

Re: Python en Jacobi

Geplaatst: za 05 jun 2021, 15:06
door Professor Puntje
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.

Re: Python en Jacobi

Geplaatst: za 05 jun 2021, 16:50
door Professor Puntje
Waarom zouden we eigenlijk alles met Python moeten doen? De formules (1) t/m (5) kunnen ook met een rekenmachientje of met WolframAlpha.

Re: Python en Jacobi

Geplaatst: za 05 jun 2021, 17:01
door Professor Puntje
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

Re: Python en Jacobi

Geplaatst: za 05 jun 2021, 17:04
door OOOVincentOOO
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.