|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
|
[c++] integrazione numerica? come si fa?
sto implementando un sistema di controllo a controreazione con blocchetti integratori "1/s" in c++ (se non capite di che parlo è lo stesso: andate avanti a leggere):
c'è una funzione y=f(x) di cui NON conosco l'equazione MA conosco che valore (chiamiamolo y) assume ogni tempuscolo dt=64millisecondi. quindi t=0 ---> y1 t=64 -->y2 t=128 --y3 Non mi pare che in c++ esista una funzione per integrare (o sbaglio)? Io devo trovare quanto vale l'integrale della funzione in quegli stessi tempuscoli (t=0, t=64,....) ma tenendo conto che va fatto in tempo reale. Ad esempio se voglio l'integrale al tempuscolo t=128 io conosco t1=0 e relativo y1=3 t2=64 e relativo y2=2 t3=128 e relativo y3=4 -------------| -|-----------| -|----|------| -|----|------| t1----t2----t3 come calcolo integrale(t1-->t3)???? mi è venuto in mente di farlo con le aree. tra t1 e t2 prendo un area avente base 64 (il tempuscolo) e come altezza "la media tra y1 e y2" ovvero tra y1=3 e y2=2 cioè altezza 2.5 quindi area(t1-->t2)=64*2.5 Poi faccio la stessa cosa tra t2 e t3 dove l'area avrà altezza "la media tra y2 e y3" ovvero tra y2=2 e y3=4 cioè altezza 3 quindi area(t2-->t3)=64*3 quindi integrale(t1-->t3)=area(t1-->t2)+area(t2-->t3)= =64*2.5+64*3 Posso fare in questo modo? Oppure è un metodo spuntato, grezzo e c'è un altro modo migliore per farlo in c++?
__________________
..strisc...strisc...oooooOOoooO http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Cerca "Numerical Recipes in C" su google. E' un libro distribuito gratuitamente, ed è la bibbia per quanto riguarda i metodi numerici. Mi pare di ricordare un capitolo sui metodi di integrazione (Simpson e via discorrendo se la memoria non mi fa cilecca).
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Ad ogni modo, e' un libro che non puo' mancare nella biblioteca di un informatico, a maggior ragione di un controllista. Tornando al problema: sicuro che ti serva davvero? Il controllo che stai implementando e' praticamente un pid, l'integrazione proposta dovrebbe essere piu' che sufficiente. A meno che questo sia parte di un controllo piu' ampio... High Flying Sottovento |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
|
io ho fatto una cosa del genere
//INTEGRAZIONE GRAFICA AD AREE //faccio integrale di dotx (=x) e sommare a x precedente per avere nuovo x //1)calcolo l'areola tra questa interazione e la precedente integrale_dotx=MILLISECONDI*((dotx-dotx_precedente)/2); //2)poi devo sommare a tute le areole precedenti già oltrepassate per avere integrale totale x=x+integrale_dotx;
__________________
..strisc...strisc...oooooOOoooO http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
|
si. è quella che ho usato io. la regola dei trapezi. non me ne ricordavo il nome e l'ho chiamata "metodo delle aree" hehehe
__________________
..strisc...strisc...oooooOOoooO http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Oct 1999
Messaggi: 111
|
da quello che ricordo dall'esame di analisi numerica, i metodi di integrazione ti consentono di calcolare una stima di un integrale definito a partire da una funzione.
nel tuo caso non hai una funzione da integrare quindi hai due strade 1)interpoli i dati in una funzione e calcoli l'integrale della funzione ottenuta con i metodi dell'analisi numerica 2)calcoli, come hai giustamente pensato, di fare l'integrale come somme di aree. imho quesa è la soluzione che fornisce risultati più accurati. ovviamente se puoi diminuire ulteriormente il valore dell'intervallo ottieni risultati sempre più accurati Del resto il processo di integrazione secondo riemann è proprio un calcolo di rettangoloidi facendo tendere la base a zero... |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:39.


















