Analisi all'indietro

Messaggioda Gauss91 » 02/01/2012, 21:44

Ciao a tutti. Perdonate l'ignoranza in materia, ma ci sono metodi generali per fare l'analisi all'indietro di un algoritmo definito "per ricorrenza"?
Chiaro, se si ha un'espressione chiusa l'analisi è estremamente facile, ma in un'espressione del tipo
\( \displaystyle {f}_{{{k}+{1}}}={x}_{{{k}+{1}}}{f}_{{k}}{g}_{{k}} \)
\( \displaystyle {g}_{{{k}+{1}}}=\frac{{{{f}_{{{k}+{1}}}^{{2}}}-{{g}_{{k}}^{{2}}}}}{{{y}_{{{k}+{1}}}}} \)
con \( \displaystyle {f}_{{0}}={g}_{{0}}={1} \) (i numeri \( \displaystyle {x}_{{i}} \) sono considerati già numeri di macchina per semplicità) trovare un'espressione chiusa è pesante e temo sia inutile.
Se scrivessi un algoritmo che calcola la coppia \( \displaystyle {\left({f}_{{n}},{g}_{{n}}\right)} \) proprio brutalmente copiando la definizione, come posso fare l'analisi all'indietro? In generale ci sono metodi furbi anche per altri casi?
Mi scuso ancora per l'incapacità! :oops:
Avatar utente
Gauss91
Junior Member
Junior Member
 
Messaggi: 201
Iscritto il: 07/01/2008, 18:47
Località: Milano

Re: Analisi all'indietro

Messaggioda hamming_burst » 02/01/2012, 23:16

Ciao,
definiscimi "analisi all'indietro".

cosa troveresti alla fine di questa analisi? un'equazione di ricorrenza, una stima asintotica? è questione di terminologia :-)
"Un giorno tutti noi sciocchi saremo morti e allora i vivi andranno avanti. ... tutti gli uomini saranno fratelli e nessuno se ne starà al sole in panciolle a farsi nutrire dai suoi compagni"
[Jack London]

HOFL...che stress!!
Avatar utente
hamming_burst
Moderatore
Moderatore
 
Messaggi: 2266
Iscritto il: 04/07/2009, 10:53

Re: Analisi all'indietro

Messaggioda Gauss91 » 03/01/2012, 11:49

Pardon effettivamente sono stato poco chiaro. Intendevo fare un analisi all'indietro dell'ERRORE algoritmico: voglio trovare i dati iniziali a partire dai quali, in aritmetica esatta, si giungerebbe ai risultati effettivamente calcolati con quell'algoritmo (che sono quindi affetti da errori di sorta).
Specifico meglio i dati: si hanno \( \displaystyle {f}_{{k}}={f}_{{k}}{\left({x}_{{1}},\ldots,{x}_{{k}},{y}_{{1}},\ldots,{y}_{{{k}-{1}}}\right)} \) e \( \displaystyle {g}_{{k}}={g}_{{k}}{\left({x}_{{1}},\ldots,{x}_{{k}},{y}_{{1}},\ldots,{y}_{{k}}\right)} \) dove gli \( \displaystyle {x}_{{i}} \) e gli \( \displaystyle {y}_{{i}} \) sono numeri di macchina che sono i nostri dati. Siccome l'algoritmo calcolerà, per esempio al posto di \( \displaystyle {f}_{{k}} \), effettivamente una funzione "perturbata" \( \displaystyle \phi_{{k}}{\left({x}_{{1}},\ldots,{x}_{{k}},{y}_{{1}},\ldots,{y}_{{{k}-{1}}}\right)} \), voglio trovare di quanto si discostano al massimo degli ipotetici dati iniziali \( \displaystyle {X}_{{1}},\ldots,{X}_{{k}},{Y}_{{1}},\ldots,{Y}_{{{k}-{1}}} \) tali che \( \displaystyle \phi_{{k}}{\left({x}_{{1}},\ldots,{x}_{{k}},{y}_{{1}},\ldots,{y}_{{{k}-{1}}}\right)}={f}_{{k}}{\left({X}_{{1}},\ldots,{X}_{{k}},{Y}_{{1}},\ldots,{Y}_{{{k}-{1}}}\right)} \), dai dati iniziali effettivi \( \displaystyle {x}_{{i}} \), per ogni \( \displaystyle {k} \).
Spero di essere stato più chiaro! :D
Avatar utente
Gauss91
Junior Member
Junior Member
 
Messaggi: 201
Iscritto il: 07/01/2008, 18:47
Località: Milano

Re: Analisi all'indietro

Messaggioda hamming_burst » 06/01/2012, 02:00

intuitivamente ho capito cosa cerchi di fare.
Una cosa che di sicuro ti serve sapere è l'algoritmo che utilizzi.
Non puoi risalire ai tuoi dati di input dall'output se non conosci che modifiche sono state fatte ai dati.
Un esempio sono le black box crittografiche, dall'output non puoi risalire all'input.

E' questo che intendi?
"Un giorno tutti noi sciocchi saremo morti e allora i vivi andranno avanti. ... tutti gli uomini saranno fratelli e nessuno se ne starà al sole in panciolle a farsi nutrire dai suoi compagni"
[Jack London]

HOFL...che stress!!
Avatar utente
hamming_burst
Moderatore
Moderatore
 
Messaggi: 2266
Iscritto il: 04/07/2009, 10:53

Re: Analisi all'indietro

Messaggioda Deckard » 06/01/2012, 10:27

Non ho capito una cosa: tu conosci la \( \displaystyle {f}_{{k}} \) o no?
http://www.mathcomp.leeds.ac.uk/turing2012/

Hilbert space is a big place.
Deckard
Junior Member
Junior Member
 
Messaggi: 263
Iscritto il: 17/08/2010, 08:58

Re: Analisi all'indietro

Messaggioda Gauss91 » 06/01/2012, 11:28

@Hamming_Burst: Certamente bisogna conoscere l'algoritmo... infatti io ho scritto che voglio farlo "brutalmente copiando la definizione" e forse non sono stato molto chiaro:
\( \displaystyle {f}_{{0}}={g}_{{0}}={1} \),
poi si calcola \( \displaystyle {f}_{{1}}={x}_{{1}}{f}_{{0}}{g}_{{0}}={x}_{{1}} \) poi si calcola \( \displaystyle {g}_{{1}}=\frac{{{{f}_{{1}}^{{2}}}-{{g}_{{0}}^{{2}}}}}{{{y}_{{1}}}}=\frac{{{{x}_{{1}}^{{2}}}-{1}}}{{{y}_{{1}}}} \) in cui si intende che si fanno prima gli elevamenti a potenza, poi la sottrazione, poi la divisione (ma se volete usare un altro algoritmo siete liberi di farlo ovviamente, l'analisi all'indietro risulterà diversa ma questo non è importante: ho bisogno di un aiuto su uno qualsiasi degli algoritmi); poi si calcola \( \displaystyle {f}_{{2}} \), poi \( \displaystyle {g}_{{2}} \) eccetera... fino ad arrivare a \( \displaystyle {f}_{{n}} \) e \( \displaystyle {g}_{{n}} \)

@Deckard: f_k è definita per ricorrenza a partire dalle f più basse, quindi a rigore sì, la conosco. Non conosco un'espressione chiusa per essa, ed è proprio questo il problema: se la conoscessi, la mia analisi all'indietro dell'errore algoritmico sarebbe facile. Io sto chiedendo se qualcuno conosce un metodo per fare questa analisi semplicemente conoscendo la relazione ricorsiva.
Avatar utente
Gauss91
Junior Member
Junior Member
 
Messaggi: 201
Iscritto il: 07/01/2008, 18:47
Località: Milano

Re: Analisi all'indietro

Messaggioda Gauss91 » 06/01/2012, 11:48

Esempio chiarificatore: se volessi fermarmi a n=1 farei
\( \displaystyle {f}_{{1}}={x}_{{1}} \) non è affetto da errori algoritmici.
\( \displaystyle {g}_{{1}}=\frac{{{\left({{\left({x}_{{1}}\right)}}^{{2}}{\left({1}+\delta_{{1}}\right)}-{1}\right)}{\left({1}+\delta_{{2}}\right)}}}{{{y}_{{1}}}}{\left({1}+\delta_{{3}}\right)}=\frac{{{{\left[{x}_{{1}}{\left({1}+\frac{{1}}{{2}}\delta_{{1}}\right)}\right]}}^{{2}}-{1}}}{{{y}_{{1}}{\left({1}-\delta_{{2}}-\delta_{{3}}\right)}}} \), i vari \( \displaystyle \delta \) sono gli errori locali delle varie operazioni, e l'uguaglianza è un'uguaglianza al prim'ordine.
Ottengo così una \( \displaystyle {g}_{{1}}{\left({X}_{{1}},{Y}_{{1}}\right)} \) dove \( \displaystyle {X}_{{1}}={x}_{{1}}{\left({1}+\frac{{1}}{{2}}\delta_{{1}}\right)} \) e \( \displaystyle {Y}_{{1}}={y}_{{1}}{\left({1}-\delta_{{1}}-\delta_{{2}}\right)} \), quindi la perturbazione del dato iniziale \( \displaystyle {x}_{{1}} \) è in modulo minore o uguale a \( \displaystyle \frac{{1}}{{2}}{u} \), dove u è la precisione di macchina, mentre la perturbazione del dato iniziale \( \displaystyle {y}_{{1}} \) è in modulo minore o uguale a \( \displaystyle {2}{u} \).
Spero che ora sia chiaro! :D
Avatar utente
Gauss91
Junior Member
Junior Member
 
Messaggi: 201
Iscritto il: 07/01/2008, 18:47
Località: Milano


Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti