Approssimazione ed errore in Matlab

Feliciano_Sagaio
Ciao a tutti!
Sono ben poco pratico di Matlab (l''ho studiato per qualche esame di matematica numerica, ma non è esattamente il mio principale interesse). Mi trovo a dover affrontare un problema sperimentale. Devo verificare sperimentalmente che una certa media converga a un determinato valore. Il punto è che il risultato che ottengo converge sì a un certo valore, ma non è precisamente quello che cerco io. L'errore relativo è di circa il 2%...nel programma utilizzo la funzione rand per generare un numero casuale in un sottointervallo di (0,1) e poi la funzione inv per ottenere l'inverso del numero. la inv viene iterata, in genere al massimo 6,7 volte.

Mi chiedevo quali sono le prime cose da controllare, quando si opera coi numeri compresi tra 0 e 1 utilizzando le funzioni che utilizzo io, per ridurre al minimo gli errori di rappresentazione nei calcoli. Il punto è che non credo di aver sbagliato il calcolo teorico, però non mi spiego perché, anche con numero di iterazioni elevato, rimanga quell'errore relativo...e vorrei capire le precauzioni che si prendono di solito per ridurre al minimo gli errori di rappresentazione. Grazie.

Risposte
Raptorista1
Il metodo che stai utilizzando è una reimplementazione del calcolo dell'inverso di un numero?
Che metodo è? Che ordine di convergenza ha? A priori guardare l'errore dopo un certo numero di iterazioni ti dice poco/niente.

Feliciano_Sagaio
Allora, sto cercando di verificare sperimentalmente un risultato teorico.

Per la precisione, data la mappa phi[0,1]----->[0,1] definita come : phi(x)=1/x -[1/x], dove [ ] denota la parte intera, e preso I sottointervallo di [0,1], I=[0.5,1], voglio verificare che la media dei tempi di ritorno in I converga a un certo valore.
Di fatto le operazioni che faccio sono :

prendi un numero x casuale tra 0.5 e 1
applica phi
se phi(x) appartiene a [0.5, 1] concludi, altrimenti riapplica phi

alla fine ottengo una media dei tempi che i punti ci mettono(inteso come numero di applicazioni di phi) a tornare nell'intervallo. I tempi sono bassissimi, quindi le operazioni che faccio sono 5-6 divisioni al massimo per ogni x generato casualmente.
Il fatto è che non so se e come stabilire ad esempio la convergenza del "metodo", quando arrestarmi, quando ritenere soddisfacente l'approssimazione..e non so nemmeno se queste domande abbiano senso. Non sto risolvendo un sistema lineare e non ho a disposizione le(poche)tecniche standard che conosco.

Raptorista1
Dal punto di vista numerico il tuo metodo non è affetto da errore [a parte quello floating point] perché stai calcolando un intero, cioè il numero di iterazioni di \(\varphi\) prima di arrivare all'equilibrio.
Secondo me quello che tu non sai di voler sapere è l'errore dello stimatore della media rispetto alla media vera. Il che incidentalmente significa che dovresti andare in statistica...

[xdom="Raptorista"]Sposto da Analisi numerica.

@Moderatori di Statistica: rimandatemelo se non è roba vostra.[/xdom]

Walter97lor
Domanda da completo inesperto di Mathlab. Per vedere se una certa quantità converge ad un valore non si potrebbe utilizzare l'algoritmo di Newton-Raphson?

Raptorista1
Il metodo di Newton serve a risolvere equazioni nonlineari, non a misurare [ordini di] convergenze.

PadreBishop
Cos'è MatHlab?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.