Integrazione numerica moto pendolo doppio
Ciao a tutti, voglio fare un programma che integri numericamente il moto del pendolo doppio, ora, guardando il problema dal punto di vista lagrangiano arrivo a un'equazione differenziale che è una cosa del tipo $f(dot \theta_1,dot \theta_2,\theta_1,\theta_2)=0$ e fin qui tutto bene.Il problema è che $\theta_1$ e $\theta_2$ sono in delle funzioni seno e coseno che non so come trattare con dei metodi tipo runge-kutta.Volevo sapere se approsimando al prim'ordine si può ottenere un risultato buono (per il pendolo semplice attenendosi a oscillazioni ~ 10° l'errore è molto piccolo).
In secondo luogo per integrare su i due theta , volevo sapere se è conveniente (e giusto) integrare separatamente il moto dei due singoli pendoli e poi combinarli.
In secondo luogo per integrare su i due theta , volevo sapere se è conveniente (e giusto) integrare separatamente il moto dei due singoli pendoli e poi combinarli.
Risposte
"torky":
un'equazione differenziale che è una cosa del tipo $f(θ˙1,θ˙2,θ1,θ2)=0$
Mi pare che manchino le derivate seconde temporali

"torky":
Volevo sapere se approsimando al prim'ordine si può ottenere un risultato buono (per il pendolo semplice attenendosi a oscillazioni ~ 10° l'errore è molto piccolo)
Non conosco il metodo runge-kutta per cui non so che tipo di problemi di danno le funzioni seno e coseno. Tuttavia mi sembra un po' un controsenso ricorrere ad una soluzione numerica di un problema ma poi approssimare le equazioni al primo ordine: per quanto ne so si ricorre alla soluzione numerica quando le equazioni sono troppo complesse per essere risolte analiticamente, ed allora si ricorre alla "forza bruta" proprio perché il computer si mangia tutto. Comunque sia, per quanto riguarda la bontà dell'approssimazione al primo ordine, naturalmente tutto dipende da quali ampiezze consideri e quale precisione richiedi alle soluzioni. Da questo punto di vista, non vedo differenze tra il pendolo semplice e quello doppio. Tuttavia, tieni presente che qualsiasi metodo di integrazione numerica inserisce di suo degli errori anche se le equazioni sono esatte, e se tali errori non sono gestiti e tenuti sotto controllo, rischi di trovare soluzioni a dir poco "fantasiose" (soprattutto se le equazioni sono non lineari, come nel caso dei vari tipi di pendoli non approssimati al primo ordine).
Si mi sono dimenticato le accelereazioni.
In effetti anche io ho pensato la stessa cosa, la computazione serve appunto a risolvere problemi non risolvibili analiticamente, con precisione variabile ovviamente, quindi approssimando alle piccole oscillazioni forse semplifico troppo il problema, e non ottengo una precisione soddisfacente.Per qunato riguarda l'integrazione , secondo te integrare i moti separatamente e poi combinarli è una soluzione giusta al problema??Forse è un problema mio ma non saprei come trattare ,dal punto di vista computazionale un'equazione differenziale in due variabili
In effetti anche io ho pensato la stessa cosa, la computazione serve appunto a risolvere problemi non risolvibili analiticamente, con precisione variabile ovviamente, quindi approssimando alle piccole oscillazioni forse semplifico troppo il problema, e non ottengo una precisione soddisfacente.Per qunato riguarda l'integrazione , secondo te integrare i moti separatamente e poi combinarli è una soluzione giusta al problema??Forse è un problema mio ma non saprei come trattare ,dal punto di vista computazionale un'equazione differenziale in due variabili
"torky":
Per qunato riguarda l'integrazione , secondo te integrare i moti separatamente e poi combinarli è una soluzione giusta al problema??Forse è un problema mio ma non saprei come trattare ,dal punto di vista computazionale un'equazione differenziale in due variabili
Sto pensando: ma per integrare i moti separatamente, non devi prima separare le equazioni? (nel senso di separare le veriabili)

Ad esempio guardando su http://it.wikipedia.org/wiki/Doppio_pendolo , esprime il problema con un sistema di 4 equazioni differenziali in $dot \theta_1 ,dot \theta_2 ,dot p_(theta_1),dot p_(\theta_2)$ .Quindi se non erro dovrei integrare le $dot p$ cosi da poter integrare le $dot (\theta)_h$ e una volta conosciute le $\theta_h$ arrivare alle cordinate cartesiane attraverso la trigonometria.Quindi ,corregetemi se sbaglio, l'integrazione è solo sugli angoli e non sulle coordinate cartesiane?
Ad esempio se semplifiacassi il problema ad un pendolo fisico singolo posso trovarmi le seguenti relazioni:
$\{(ddot \theta =g/lsin(\theta)),(a=lddot theta),(v=ldot \theta):}$
però in questo modo non ho informazioni sulle coordinate nello spazio bidimensionale.
Ad esempio se semplifiacassi il problema ad un pendolo fisico singolo posso trovarmi le seguenti relazioni:
$\{(ddot \theta =g/lsin(\theta)),(a=lddot theta),(v=ldot \theta):}$
però in questo modo non ho informazioni sulle coordinate nello spazio bidimensionale.
Quanta confusione! XD
Allora, le cose stanno così: scritta [correttamente] la lagrangiana del doppio pendolo, hai due possibilità
Se la approssimi al primo ordine, facendo sparire le funzioni goniometriche, ottieni un sistema che È risolvibile in forma analitica-chiusa.
Se invece decidi di attaccare la lagrangiana con un metodo numerico, come l'ottimo Runge-Kutta, allora non devi fare altro che implementare lo schema, senza approssimare con Taylor, e senza preoccuparti che ci siano di mezzo funzioni goniometriche!
Allora, le cose stanno così: scritta [correttamente] la lagrangiana del doppio pendolo, hai due possibilità
Se la approssimi al primo ordine, facendo sparire le funzioni goniometriche, ottieni un sistema che È risolvibile in forma analitica-chiusa.
Se invece decidi di attaccare la lagrangiana con un metodo numerico, come l'ottimo Runge-Kutta, allora non devi fare altro che implementare lo schema, senza approssimare con Taylor, e senza preoccuparti che ci siano di mezzo funzioni goniometriche!
Si sono d'accordissimo è che non riesco bene a capire come passare dai $dot p_(\theta_h),dot \theta_h) alle coordinate cartesiane,mi verrebbe in mente, come ho scritto sopra di integrare le p e succesivamente le theta ma mi sembra troppo complicato(il fatto è chè ho sempre risolto problemi su grandezze lineari, mai su angoli e quindi mi devo raccapezzare un attimo).
Non c'è bisogno di passare a coordinate cartesiane... Se la tua ODE è \(\dot y=f(y,t)\) o \(\dot \theta = f(\theta, t)\), non cambia nulla.
Intendi che una volta conosciuto l'angolo posso risalire alle coordinate, perchè senno non ho capito cosa intendi, io vorrei avere informazioni su come evolve nel tempo il sistema quindi oltre agli angoli anche la posizione nello spazio.
Conoscere gli angoli IMPLICA conoscere la posizione nello spazio, visto che il doppio pendolo ha bracci di lunghezza costante.
Il problema principale consiste nel trovare la dipendenza di \(\theta\) da \(t\). Trovata quella, alla posizione risali tramite semplici trasformazioni algebriche.
Il problema principale consiste nel trovare la dipendenza di \(\theta\) da \(t\). Trovata quella, alla posizione risali tramite semplici trasformazioni algebriche.
Scusate se ricaccio fuori l'argomento,questi sono i miei quesiti:
La lagrangiana del sistema è data da:
$1/6ml^2(4dot \theta_(1)^2+dot \theta_(2)^2+3dot \theta_(1)dot \theta_(2)cos(\theta_1-\theta_2))+1/2mgl(3cos(\theta_1)+cos(\theta_2))$
Ora da queste devo arrivare a 4 equazioni che mi definiscano i due angoli e le velocità angolari così da poterle integrare con runge-kutta.Chi mi può darmi un mano a trovare queste benedette equazioni??
Su wikipedia http://it.wikipedia.org/wiki/Doppio_pendolo scrive un sistema con le $dot \theta$ e i $\dot p_(\theta)$ ma in questo caso non dovrei integrare prima i p poi i theta punto?
E soprattutto le p punto sono in funzione delle theta punto.Scusate la confusione ma sono confuso
La lagrangiana del sistema è data da:
$1/6ml^2(4dot \theta_(1)^2+dot \theta_(2)^2+3dot \theta_(1)dot \theta_(2)cos(\theta_1-\theta_2))+1/2mgl(3cos(\theta_1)+cos(\theta_2))$
Ora da queste devo arrivare a 4 equazioni che mi definiscano i due angoli e le velocità angolari così da poterle integrare con runge-kutta.Chi mi può darmi un mano a trovare queste benedette equazioni??
Su wikipedia http://it.wikipedia.org/wiki/Doppio_pendolo scrive un sistema con le $dot \theta$ e i $\dot p_(\theta)$ ma in questo caso non dovrei integrare prima i p poi i theta punto?
E soprattutto le p punto sono in funzione delle theta punto.Scusate la confusione ma sono confuso
Le quattro equazioni sono le Equazioni di Eulero-Lagrange per la lagrangiana che hai scritto!
Si però non riesco a capire come arrivare a $\theta_1(t) \theta_2(t)$ tramite queste equazioni
"torky":
La lagrangiana del sistema è data da:
Ho provato a riscrivere la lagrangiana ed a me viene:
\(\displaystyle \frac{{1}}{{2}}{m}{{l}}^{{2}}{\left({2}{{\dot{\theta}}_{{{1}}}^{{2}}}+{{\dot{\theta}}_{{{2}}}^{{2}}}+{2}{\dot{\theta}}_{{{1}}}{\dot{\theta}}_{{{2}}}{\cos{{\left(\theta_{{1}}-\theta_{{2}}\right)}}}\right)}+{m}{g{{l}}}{\left({2}{\cos{{\left(\theta_{{1}}\right)}}}+{\cos{{\left(\theta_{{2}}\right)}}}\right)} \)
Ho provato a "testarla" in casi particolari (ad esempio per i due angoli vincolati ad essere uguali) e viene giusta, mentre la tua no. A parte questo, per quanto riguarda le equazioni che cerchi, quoto quanto detto da raptorista.
\(\displaystyle \)
"torky":
Si però non riesco a capire come arrivare a $\theta_1(t) \theta_2(t)$ tramite queste equazioni
Scrivi qualche conto!
P.s. Dopo aver ricontrollato i tuoi [cfr mathbells].
"torky":
Si però non riesco a capire come arrivare a $θ_1(t)$ e $θ_2(t)$ tramite queste equazioni
Non so se interpreto bene quello che vuoi dire (scusami se sbaglio) ma lo sai sì che le equazioni di Eulero-Lagrange ti forniscono solo le equazioni differenziali per $θ_1(t)$ e $θ_2(t)$, e non le funzioni $θ_1(t)$ e $θ_2(t)$ stesse...Quelle te le devi trovare appunto con l'integrazione numerica
Io partirei scrivendo l'equazione del moto che alla luce di quanto detto sopra viene:
$4ddot \theta_1+2ddot \theta_2+2cos(\theta_1- \theta_2)(ddot \theta_1+ ddot \theta_2)-2sin(\theta_1 \theta_2)(dot \theta_1-dot \theta_2)(dot \theta_1dot \theta_2)+g/l(sin(\theta_1)+sin(\theta_2))=0$
salvo eventuali errori di calcolo.
A questo punto per risolverle numericamente a me viene in mente di trovare due equazioni che definiscano le singole accelerazioni delle theta cosi da poter integrare.
Nelle equazioni di lagrange non compaiono le accelerazioni e nei metodi d'integrazione che io conosco servono le accelerazioni per conoscere nell'istante successivo posizione e velocità.Cos'è che mi sfugge??????????
$4ddot \theta_1+2ddot \theta_2+2cos(\theta_1- \theta_2)(ddot \theta_1+ ddot \theta_2)-2sin(\theta_1 \theta_2)(dot \theta_1-dot \theta_2)(dot \theta_1dot \theta_2)+g/l(sin(\theta_1)+sin(\theta_2))=0$
salvo eventuali errori di calcolo.
A questo punto per risolverle numericamente a me viene in mente di trovare due equazioni che definiscano le singole accelerazioni delle theta cosi da poter integrare.
Nelle equazioni di lagrange non compaiono le accelerazioni e nei metodi d'integrazione che io conosco servono le accelerazioni per conoscere nell'istante successivo posizione e velocità.Cos'è che mi sfugge??????????
Le equazioni di EL sono due...te ne sei persa una?
Le accelerazioni le ottieni semplicemente esplicitando le equazioni rispetto alle teta due punti
Le accelerazioni le ottieni semplicemente esplicitando le equazioni rispetto alle teta due punti
Ecco ad esempio scrivendo l'equazioni del moto dei due singoli pendoli ottengo le due equazioni per le $ddot \theta$, certo i calcoli sono un po lunghi....
Non capisco come hai ottenuto la tua (oltretutto unica
) equazione...Le equazioni di E-L sono del tipo
\(\displaystyle \frac{d}{dt}(\frac{\partial L}{\partial \dot \theta})-\frac{\partial L}{\partial \theta} =0\)
e ne devi scrivere una per \(\displaystyle \theta_1\ \) ed una per \(\displaystyle \theta_2 \). Usando la lagrangiana che ho postato io (che credo sia quella giusta, hai provato a riscriverla? ti viene uguale?) si ottengono le due equazioni:
\(\displaystyle 4\ddot \theta_1 +2\ddot \theta_2\cos (\theta_1-\theta_2)+2\dot \theta_2^2\sin (\theta_1-\theta_2)+4\frac{g}{l}\sin \theta_1=0 \)
\(\displaystyle 2\ddot \theta_2 +2\ddot \theta_1\cos (\theta_1-\theta_2)-2\dot \theta_1^2\sin (\theta_1-
\theta_2)+2\frac{g}{l}\sin \theta_2=0 \)
Da queste, esplicitandole rispetto alle due \(\displaystyle \ddot \theta \), puoi ottenere il sistema
\(\displaystyle \ddot \theta_1=f_1(\theta_1,\theta_2,\dot \theta_1,\dot \theta_2) \)
\(\displaystyle \ddot \theta_2=f_2(\theta_1, \theta_2,\dot \theta_1,\dot \theta_2) \)
che puoi usare nel tuo programma. Naturalmente per ottenere questo sistema devi fare un bel po' di conti...ma è algebra da liceo e quindi si tratta solo di sudare un po', cosa che non mi va davvero di fare
Buon lavoro!
PS: posso chiedere se sei un matematico, fisico, informatico, ingegnere o altro?

\(\displaystyle \frac{d}{dt}(\frac{\partial L}{\partial \dot \theta})-\frac{\partial L}{\partial \theta} =0\)
e ne devi scrivere una per \(\displaystyle \theta_1\ \) ed una per \(\displaystyle \theta_2 \). Usando la lagrangiana che ho postato io (che credo sia quella giusta, hai provato a riscriverla? ti viene uguale?) si ottengono le due equazioni:
\(\displaystyle 4\ddot \theta_1 +2\ddot \theta_2\cos (\theta_1-\theta_2)+2\dot \theta_2^2\sin (\theta_1-\theta_2)+4\frac{g}{l}\sin \theta_1=0 \)
\(\displaystyle 2\ddot \theta_2 +2\ddot \theta_1\cos (\theta_1-\theta_2)-2\dot \theta_1^2\sin (\theta_1-
\theta_2)+2\frac{g}{l}\sin \theta_2=0 \)
Da queste, esplicitandole rispetto alle due \(\displaystyle \ddot \theta \), puoi ottenere il sistema
\(\displaystyle \ddot \theta_1=f_1(\theta_1,\theta_2,\dot \theta_1,\dot \theta_2) \)
\(\displaystyle \ddot \theta_2=f_2(\theta_1, \theta_2,\dot \theta_1,\dot \theta_2) \)
che puoi usare nel tuo programma. Naturalmente per ottenere questo sistema devi fare un bel po' di conti...ma è algebra da liceo e quindi si tratta solo di sudare un po', cosa che non mi va davvero di fare

PS: posso chiedere se sei un matematico, fisico, informatico, ingegnere o altro?

Sono un fisico, o meglio la studio, ma non ho ancora ben chiaro il rapporto tra la meccanica hamiltoniana e quella classica.
Si ci sono da fare un po di conti laboriosi che ho fatto e sono riuscito a trovare delle equzioni soddisfacenti.Devo ancora verificare bene se il programma funziona, tra l'altro lo sto facendo girare con un algoritmo velocity verlet quindi non so ancora quanto sia accurata la stima, devo studiare la conservazione dell'energia.
Per quanto riguarda l'Hamiltoniana come posso fare per integrare solo con le p??
Cioè senza usare esplicitamente le accelerazioni???
Si ci sono da fare un po di conti laboriosi che ho fatto e sono riuscito a trovare delle equzioni soddisfacenti.Devo ancora verificare bene se il programma funziona, tra l'altro lo sto facendo girare con un algoritmo velocity verlet quindi non so ancora quanto sia accurata la stima, devo studiare la conservazione dell'energia.
Per quanto riguarda l'Hamiltoniana come posso fare per integrare solo con le p??
Cioè senza usare esplicitamente le accelerazioni???