Python en Jacobi
- Berichten: 7.463
Python en Jacobi
Graag zou ik in Python werken met de Jacobi elliptische functies. Mijn computer draait op Linux Mint. Doel is het plotten en nader onderzoeken van de baan van licht dat de zon rakelings passeert. Dat moet volgens het volgende artikel met een Jacobi elliptische functie kunnen: https://www.researchgate.net/publicatio ... s_approach
Tips zijn welkom!
Tips zijn welkom!
- Berichten: 7.463
Re: Python en Jacobi
Het beginnetje is er:
Nu nog achterhalen wat daar staat. Misschien helpt dit: https://docs.scipy.org/doc/scipy/refere ... llipj.html
Code: Selecteer alles
scipy.special.ellipj(.5, .7)
Out[7]:
(0.46729200535903359,
0.8841030379585475,
0.92040574053472368,
0.48622530445618917)
- Berichten: 7.463
Re: Python en Jacobi
Kennelijk moet de eerste waarde sn(.5|.7) voorstellen, en dat klopt ook met WolframAlpha:
- Berichten: 7.463
Re: Python en Jacobi
Code: Selecteer alles
import scipy.special
A = scipy.special.ellipj(.5, .7)
A[0]
Out[6]: 0.46729200535903359
Volgende stap: een grafiekje van sn voor enige verschillende waarden van de parameter m.
- Berichten: 7.463
Re: Python en Jacobi
Code: Selecteer alles
import numpy as np
import matplotlib.pyplot as plt1
import scipy.special
fig, ax1= plt1.subplots(figsize=(15, 15))
x=np.linspace(-10,10, 1000)
y=scipy.special.ellipj(x,.99)[0]
ax1.plot(x,y)
- Berichten: 1.628
Re: Python en Jacobi
Mooi, ik wist niet zeker of de scipy.special.ellipj een array als input neemt.
Ik zat al te bedenken hoe uit te leggen een array te zullen met een for loop.
Komt de halve periode van x=-10 to -3 overeen met de totale cumulative hoekdeflectie? De s-curve uit voorgaande topic?
Ik zat al te bedenken hoe uit te leggen een array te zullen met een for loop.
Komt de halve periode van x=-10 to -3 overeen met de totale cumulative hoekdeflectie? De s-curve uit voorgaande topic?
-
- Technicus
- Berichten: 1.195
Re: Python en Jacobi
Fijn dat het lukt.
Even een paar tips bijgevoegd in onderstaande code:
Even een paar tips bijgevoegd in onderstaande code:
Code: Selecteer alles
import numpy as np
# pyplot importeert iedereen standaard als plt,
# dus niet als plt1
import matplotlib.pyplot as plt
import scipy
#als je een functie vaak gebruikt,
#dan kan je hem los importeren, dan is de naam korter:
from scipy.special import ellipj
x=np.linspace(-10,10, 1000)
#als je al weet dat een functie 4 outputs heeft,
#dan kan je die gelijk aan 4 variabelen toewijzen,
#als je een variable niet wil gebruiken,
#dan gebruik je daarvoor een _
#stel dat we alleen sn en cn willen, terwijl ellipj 4 outputs geeft :
sn,cn,_,_=ellipj(x,.99)
#maak de figuur aan
fig, ax1= plt.subplots(figsize=(6, 6))
# twee grafiekjes in dezelfde figuur, geef elke lijn ook een label
# dat label komt later in de legenda
ax1.plot(x,sn, label='waarde sn')
ax1.plot(x,cn, label='waarde cn')
#voeg een legenda toe, en zeg dat hij rechtsboven moet
ax1.legend(loc='upper right')
#voeg een grid toe
ax1.grid()
#voeg een titel toe
ax1.set_title('mijn grafiekje')
- Berichten: 7.463
Re: Python en Jacobi
Nee - scipy.special.ellipj heeft één argument en één parameter als input, en een array als output. Het is eigenlijk vier functies in één. Zie: https://docs.scipy.org/doc/scipy/refere ... llipj.htmlOOOVincentOOO schreef: ↑vr 04 jun 2021, 19:44 Mooi, ik wist niet zeker of de scipy.special.ellipj een array als input neemt.
Ik zat al te bedenken hoe uit te leggen een array te zullen met een for loop.
Het is ingewikkelder, en het staat hier: https://www.researchgate.net/publicatio ... s_approachKomt de halve periode van x=-10 to -3 overeen met de totale cumulative hoekdeflectie? De s-curve uit voorgaande topic?
Ik moet dat zelf ook nog even goed lezen voor ik er verder mee ga.
- Berichten: 1.628
Re: Python en Jacobi
Waarom deze reactie? Is het dan zo logisch dat een array altijd als input genomen kan worden? Dat denk ik van niet.Professor Puntje schreef: ↑vr 04 jun 2021, 20:36Nee - scipy.special.ellipj heeft één argument en één parameter als input, en een array als output. Het is eigenlijk vier functies in één. Zie: https://docs.scipy.org/doc/scipy/refere ... llipj.htmlOOOVincentOOO schreef: ↑vr 04 jun 2021, 19:44 Mooi, ik wist niet zeker of de scipy.special.ellipj een array als input neemt.
Ik zat al te bedenken hoe uit te leggen een array te (z)vullen met een for loop.
- Berichten: 7.463
Re: Python en Jacobi
Of het logisch is of niet weet ik niet, ik ben niet thuis in deze programmatuur. Maar zover ik het begrijp is het zoals ik beschreven heb. Wat was er mis met mijn reactie?
- Berichten: 1.628
Re: Python en Jacobi
Omdat je antwoord geeft en niet vraagt wat ik bedoel. Dan ga ik maar wederom ervan uit dat iets verkeerd omschreven had.
-
- Technicus
- Berichten: 1.195
Re: Python en Jacobi
Maak je niet te druk. Puntje komt net kijken bij Python.OOOVincentOOO schreef: ↑vr 04 jun 2021, 21:45 Omdat je antwoord geeft en niet vraagt wat ik bedoel. Dan ga ik maar wederom ervan uit dat iets verkeerd omschreven had.
Voor de volledigheid: praktisch alle commando’s uit de numpy en scipy packages zijn compatible met arrays als input. Mits dat voor de commando’s nuttig en eenduidig implementeerbaar is.
Zoals je in de handleiding van ellipj (zie boven) kan zien, zijn de inputs “array-like”. Over het algemeen kan je daar zowel een scalar, een list als een 1d-array instoppen.
Datzelfde kan bijvoorbeeld met de wortel: np.sqrt
Stop er een lijst met getallen in, en je krijgt er een even lange lijst met de wortel van die getallen (elementwise) voor terug.