qqcreafis
| Inviato il: 23/04/2020 23:50:30
|
come simulare una corda oscillante
scopo: capire come si distribuisce l'energia istantanea tra onde longitudinali e trasversali
Metodo: numerico
Algoritmo: la corda viene suddivisa in tante perline di massa m in equilibrio ad una certa distanza se perturba il sistema le forze elastiche richiamano la massa
Il tempo viene discretizzato nel senso che ad ogni ciclo di evoluzione passa un deta t
1° passo individuare un linguaggio di programmazione efficente (C++??)
La simulazione è tanto più precisa quanto la suddivisione è fine e quanto il passo delta t è piccolo, quindi tanti vettori molto lunghi (1000 componenti minimo) variabili double e molti cicli per simulare un'evoluzione temporale di qualche s
un'uscita dei dati sia grafica che file...
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
| |
| | qqcreafis
| Inviato il: 24/04/2020 12:23:49
|
immagine
Immagine Allegata: perline.png
Modificato da qqcreafis - 24/04/2020, 17:42:33
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
| | | | qqcreafis
| Inviato il: 25/04/2020 10:31:20
|
pseudocodice
posizionexnp1(10000) double;//posizione al tempo n+1 x perlina m
posizioneynp1(10000) double;//posizione y al tempo n*1 perlina m
posizionexn(100000) double;//posizione al tempo n x perlina m
posizioneyn(100000) double;//posizione al tempo n x perlina m
posizionexnm1(100000) double;//posizione al tempo n-1 x perlina m
posizioneynm1(100000) double;//posizione al tempo n-1 x perlina m
forzax(10000) double;//componente x forza perlina precedente N
forzay(10000) double;//componente y forza perlina precedente N
versoreiim1x(10000);//versore X che punta da n a n-1
versoreiim1y(10000);//versore Y che punta da n a n-1
moduloiim1(10000);// modulo diatanza n n-1
moduloforzaiim1(10000);//modulo forza da n a n-1
massa double=0,0001; //massa perlina kg
deltat double =0,0001;// intervallo di tempo s
d double = 0,001;//intervallo di spazio tra le perline m
K double = 10000;//costante elache dipende dalle posizioni differenti tramite la forzastica tra una perlina e l'altra N/m
ncicli,nperline,nperline-1,j,k integer lungo ;
fase di inizializzazione si calcolano i primi posizione nm1 e posizione n
il che equivale a dare una posizione iniziale e la velocità per ogni perlina
//fase di calcolo versori
nperline=10000;
nperlinem1=nperline-1;
moduloiim1(0)=sqr((posizionexn(0) +d-posizionexn(nperlinem1))^2+(posizioneyn(0)-posizioneyn(nperlinem1))^2);
versorexiim1(0)=(posizionexn(0)-posizionexnm1(nperlinem1))/modulonnm1(0)
versoreyiim1(i)=(posizioneyn(i)- posizionexnm1(nperline-1))/modulonm1(0)
for(i=1;i{
moduloiim1(i)=sqr((posizionexn(i) +d-posizionexn(i-1))^2+(posizioneyn(i)-posizioneyn(i-1))^2);
versorexiim1(i)=(posizionexn(i)-posizionexnm1(i))/modulonnm1(i)
versoreyiim1(i)=(posizioneyn(i)- posizionexnm1(i1))/modulonm1(i)
}
//calcolo forza perlina i perlina i-1
moduloforzaiim1(0)=k*(moduloiim1(0)-d);
forzaxiim1(0)=versorexiim1(0)*moduloforzaiim1(0);
forzayiim1(0)=versoreyiim1(0)*moduloforzaiim1(0);
for(j=1;i{
moduloforzaiim1(j)=k*(moduloiim1(j)-d);
forzaxiim1(j) = versorexiim1(j)*moduloforzaiim1(j);
forzayiim1(j) = versoreyiim1(j)*moduloforzaiim1(j);
};
//fase di calcolo posizione al tempo n+1 tramite la forza
for(l=0;l{
posizionexnp1(l)=+2*posizionexn(l)-posizionexnm1(l)+deltat^2*(forzaxiinm1(l)-forzaxiinm1(l+1)/m);
posizioneynp1(l)=+2*posizioneyn(l)-posizioneynm1(l)+deltat^2*(forzayiinm1(i)-forzayiinm1(l+1))/m;
};
posizionexnp1(nperline)=+2*posizionexn(nperline)-posizionexnm1(nperline)+deltat^2*(forzaxiinm1(nperline)-forzaxiinm1(0))/m;
posizioneynp1(nperline)=+2*posizioneyn(nperline)-posizioneynm1(nperline)+deltat^2*(forzayiinm1(nperline)-forzayiinm1(0))/m;
//ciclo di evoluzione
for(l=0;l<=nperline;l++)
{
posizionexnm1(l)=posizionexn(l);
posizioneynm1(l)=posizioneyn(l);
posizionexn(l)=posizionexnp1(l);
posizioneyn(l)=posizioneynp1(l);
};
segue
Modificato da qqcreafis - 27/04/2020, 20:22:22
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
| | | | Bolle
| Inviato il: 15/05/2020 09:25:14
|
CITAZIONE (qqcreafis, 23/04/2020 23:50:30 )
1° passo individuare un linguaggio di programmazione efficente (C++??)
perchè no!
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | |
|
Versione Mobile!
|
|
|