- Questo topic ha 5 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 13 anni, 10 mesi fa da .
-
Topic
-
Ciao a tutti. Spiegherò la mia situazione in dettaglio perché è piuttosto difficile da comprendere.Sto lavorando a delle simulazioni numeriche di una palla soggetta a forza di gravità, portanza aerodinamica e forza d’attrito provocata dall’aria. Durante questa simulazione numerica salvo in un file il tempo, la posizione della palla (3 coordinate), la velocità della palla (3 coordinate) e l’errore sull’energia meccanica dovuto all’algoritmo. La simulazione è effettuata su 50 secondi, con differenti passi di tempo (1s, 0.1s, 0.01s, 0.001s); ogni passo di tempo scelto corrisponde a un differente file di simulazione.
Quello che mi serve è dimostrare che, a un tempo t fisso (prenderò il tempo finale a 50s) la soluzione numerica converge verso la soluzione analitica in modo lineare se diminuisco il passo di tempo. Per fare ciò ho bisogno di disegnare graficamente la differenza abs(r(50)-r(analitica)) (dove r è il modulo della posizione) e abs(v(50)-v(analitica)) (dove v è il modulo della velocità) in funzione del passo di tempo.
Per calcolare il modulo devo utilizzare evidentemente l’opzione expr di pgfplots. Per esempio: y expr={sqrt(\thisrowno{1}^2+\thisrowno{2}^2+…}. Il problema è che il passo di tempo utilizzato non è salvato nel file. Quindi devo inserirlo manualmente per la coordinata x. Mentre le componenti dei vettori posizione e velocità sono salvate in un file e il file è differente per ogni passo di tempo. Dunque per ogni punto del mio grafico la coordinata x la inserisco manualmente, l’altra la devo calcolare a partire da un file ogni volta differente (quindi è come mischiare i campi coordinate e table di pgfplots). Infine mi serve che ogni punto creato come descritto sopra faccia parte dello stesso grafico (stesso stile, collegati da una linea, …).
È possibile fare ciò? Se si, come?
Grazie mille,
R.
- Devi essere connesso per rispondere a questo topic.