integraz. numerica 01

Messaggioda tony » 10/03/2005, 02:53

<i>Questo topic è una propaggine del topic originale "semplice integrale"
originato qui su "matematicamente/università" il 28/02/2005 - 15:35:31 da "bracardi" col quesito

</i>come si fa a fare il seguente integrale? "int(senx/x*dx)"

<i>Dopo la conclusione che l'int. da 0 all'inf. = pi/2, il topic si è orientato su modi di calcolarlo numericamente, formando un ramo che abbiamo potato e trasferito in questo topic "tutto suo".

perchè trapiantarlo? così, solo per un esperimento di pulizia.</i>

tony
tony
Average Member
Average Member
 
Messaggi: 979
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda g.schgor » 10/03/2005, 12:14

Mi aggiungo al coro (anche se sono stonato
e lo risolvo numericamente).
Immagine
Il risultato e' ca. 3,55. (Mi sarei aspettato PI)
g.schgor
Junior Member
Junior Member
 
Messaggi: 280
Iscritto il: 23/10/2004, 08:50
Località: Italy

Messaggioda tony » 10/03/2005, 17:27

<i>- il msg originale in "semplice integrale" era del 4/3/05, 03:07:38 -</i>

si parla del doppio dell'integrale da o a +inf:
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">... Il risultato e' ca. 3,55. (Mi sarei aspettato PI) <i>[g.schgor]</i><hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
e, con le tue stesse espressioni ma con altri mezzi (un loop in basic), <u>viene</u> circa PI (~3,13)
come mai?

tony
tony
Average Member
Average Member
 
Messaggi: 979
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda g.schgor » 10/03/2005, 17:41

Gia'. Me lo sono chiesto anch'io.
E nel frattempo ho concluso che la
particolare funzione ad oscillazioni
smorzate, non gradisce l'integrazione
rettangolare.
Ho quindi riprovato con queste varianti:
- data la simmetria della funzione, calcolo
solo la parte positiva di x (raddoppiando
poi alla fine)
- aumento il numero di iterazioni (N)
- ma soprattuttio uso l'algoritmo di
integrazione trapezioidale.
Il risultato ora torna.
Immagine
g.schgor
Junior Member
Junior Member
 
Messaggi: 280
Iscritto il: 23/10/2004, 08:50
Località: Italy

Messaggioda tony » 11/03/2005, 01:10

<i>- il msg originale in "semplice integrale" era del 5/3/05, 01:15:58 -</i>

dicendo che mi era venuto correttamente circa PI "con le tue stesse espressioni",
avevo tralasciato un particolare forse non irrilevante:
nella mia routine, per evitar le noie di una divisione per zero, avevo
"messo un tappo" nel buco che la funzione ha per x=0, in questo modo:

IF xn = 0 THEN yn = 1 ELSE yn = SIN(xn) / xn

invece mi sembra che nella tua prova ad integrazione rettangolare tu lasci calcolare sin(0)/0;
come si comporta il tuo software con quei valori?
forse è qui l'inghippo, la causa del tuo abnorme 3,55 invece di 3,14;
prova a modificare quella routine in questo senso.

inoltre tu dici

quote:
... E nel frattempo ho concluso che la
particolare funzione ad oscillazioni
smorzate, non gradisce l'integrazione
rettangolare. ... [g.schgor]

su questo non sono affatto d'accordo: con le mie prove i risultati dei due metodi differiscono, ma non di molto;

in più c'è da dire che nella tua prima prova, applicando il tuo metodo a rettangoli ad una funzione pari e quindi simmetrica rispetto all'asse y, gli errori in eccesso che si verificavano a destra su un tratto di curva decrescente si compensavano largamente con quelli in difetto sul simmetrico tratto crescente (e viceversa), e il risultato era "di ottima qualità" (uno schizzo ti convince immediatamente).

con la funzione asimmetrica, ovviamente, le differenze tra i due metodi aumentano, ma, ripeto, non di molto.

son curioso di sentire il risultato del "tappo" su x=0 nella tua prima integrazione, tra -30 e + 30.
(se non viene come dovrebbe, il mistero si infittisce!)
tony
tony
Average Member
Average Member
 
Messaggi: 979
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda g.schgor » 11/03/2005, 09:21

A seguito delle osservazioni di <b>tony</b>, ho riesaminato
i programmi di integrazione numerica della fuzione in
questione. In effetti <b>tony</b> ha ragione.
Riprogrammando le 2 procedure, non ho trovato differenze
nei risultati (=3.136 in entrambi i casi, con un errore quindi
di circa il 2 per mille).
Non so proprio ricostruire da dove sia saltato fuori quel risultato
fasullo di 3.55 da me indicato nel primo caso (e che mi ha
indotto a provare con il secondo).
Me ne dispiace e mi scuso (pur se e’ stata un’occasione di
citare il metodo d’integrazione trapezia)
Anche la seconda osservazione e’ giusta, ma non e’ la causa
dell’errore precedente: per x=0, Mathcad calcola y=0 anziche’
=1, quindi va corretto assegnando y(3000)=1, ma questo
comporterebbe un errore dell’1/100 <u>in meno</u> (=3.126 , non 3.55).
Rimane il fatto che integrando da zero la sola parte positiva e poi
raddoppiando, si migliora la precisione.

Ringraziando quindi <b>tony</b> dell’attenta verifica, approfitto
dell’occasione per chiedergli cosa ne pensa lui dell’argomento
citato in “Matematica e Calcolatore”.
La mia intenzione era di fare un’indagine sull’impatto del
calcolatore nello studio della matematica (stato di diffusione
delle conoscenze sulle possibilita’ d’impiego e suo effettivo uso),
ma finora non ho raccolto granche’ e non capisco se sia utile
continuare.


G.Schgör
g.schgor
Junior Member
Junior Member
 
Messaggi: 280
Iscritto il: 23/10/2004, 08:50
Località: Italy

Messaggioda tony » 11/03/2005, 14:23

<i>- il msg originale in "semplice integrale" era del 9/3/05, 00:00:30 -
- qui è stato largamente abbreviato -</i>

grazie, g. schgoer, di aver rifatto la prova!
il mistero sul 3.55 si è infittito e, a questo punto, rimarrà tale.
peccato ! il mettere a fuoco un errore di programma (mio o di qualcun altro) è stata per me una passione (e un lavoro) di una vita.

comunque rimane qualcosa da sgranocchiare sull'argomento e la aggiungerei qui, ma ho l'impressione che tutto questo ramo "numerico" della discussione esuli dal tema principale del thread.
quindi proporrei, se sei d'accordo, di spostare in blocco tutti i nostri msg sull'integrazione numerica, togliendoli di qui (dove lascerei un semplice rimando) e mettendoli in un nuovo thread che intitolerei ad es. "integraz. numerica 01" (e che comincerebbe con un brevissimo msg introduttivo per spiegare da dove proviene e di che si tratta.
- - - - -
<i>lo spostamento è stato fatto.
sgranocchierò al più presto</i>
tony
tony
Average Member
Average Member
 
Messaggi: 979
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda g.schgor » 12/03/2005, 10:25

Bene, <b>tony</b>, adesso lo spostamento e' stato fatto.
Il mio tentativo di richiamare l'attenzione sulle possibilita'
d'impiego del calcolatore nella matematica (di cui
l'integrazione numerica e' piccola parte) rimane.
Non mi hai ancora risposto cosa ne pensi tu dell'argomento
(se vale o no la pena d'insistere).
Segnalo, con l'occasione, il nuovo topic "Massa e molla", in cui
tento di illustrare una simulazione di comportamento dinamico.

G.Schgör
g.schgor
Junior Member
Junior Member
 
Messaggi: 280
Iscritto il: 23/10/2004, 08:50
Località: Italy

Messaggioda tony » 06/04/2005, 23:39

caro g.schgoer, cerco di portare avanti l'esercitazione che avevamo impostata e riprendo i miei appunti del mese scorso;
comincio dall'aspetto della precisione del calcolo, che mi sta assai a cuore, come si vede da altri miei post sul forum.
e, forse, possiamo interessare qualche lettore (anche se rimane silenzioso): ho l'impressione che tra i liceali e i da_poco_ex_liceali ci sia una certa passione per il calcolo fatto a macchina, non ancora attutita dal fascino per la "teoria pura" che tanto avvince molti dei più grandicelli.

sono incuriosito dalla differenza tra il tuo risultato (=3.136) e quello che ottengo io; mi piacerebbe arrivare a risultati comuni, o per lo meno a giustificarne le differenze.
definisco le condizioni della prova:

la funzione: y=sin(x)/x per x#0; y=1 per x=0
l'intervallo d'integrazione:
x0=-30; xN=+30; dx=0,01; Nintervalli=6000

calcolo dell'integrale da x0 ad xN col metodo dei rettangoli
( gli N rettangoli sono: y(<u>x0</u>)*dx, ..., y(x<u>N-1</u>)*dx ):

ambiente software: variabili floating point "single precision" (4 byte)

il risult. "teorico" calcolato con derive a 24 cifre di precisione è
3.13351308006070222196744 (ci possiamo fidare?)

sottolineo, per il lettore distratto, che NON stiamo cercando di calcolare l'integrale da -inf a +inf;
quindi NON stiamo cercando di ottenere Pi;
stiamo calcolando da -30 a +30 (e, en passant, si può vedere (diagrammando) che tronchiamo la funz. circa a metà di semionde negative)

mio risultato con una procedurina in basic:
I = 3.133513
tuo risultato con mathcad: I = 3.136
possibile che tra il mio Basic e il tuo Mathcad ci sia una diff. di quasi 3 su 3000, l'1 per mille? troppo grossa!

la differenza è dovuta anche al fatto che tu riporti (ovviamente arrotondando) solo 3 decimali?
se sì, sciorina tutte le tue cifre; risolviamo questo aspetto, andiamo poi (se il tuo software lo consente) a "double precision"
ed eventualmente a "long double" (o "extended") fino ad esser soddisfatti della precisione dei nostri calcoli.

poi ho in mente altri aspetti da approfondire:
1 - il calcolo + raddoppio della sola metà destra (stesso dx oppure stesso N. di intervalli?)
2 - i calcoli rifatti col metodo dei trapezi.
3 - idem con Simpson
4 - ci sarebbe anche un certo Weddle ...
ma tutti questi trattiamoli dopo; facciamo una cosa per volta.

grazie a chiunque voglia contribuire

tony
tony
Average Member
Average Member
 
Messaggi: 979
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda g.schgor » 08/04/2005, 09:08

Caro <b>tony</b>, ti trasmetto il calcolo
numerico dell'integrale svolto in Mathcad,
con le cifre decimali da te richieste.
Immagine
Faccio pero' notare che la precisione dipende
dall'entita' dell'ultimo termine, quindi le
cifre dopo la terza decimale non hanno alcun
significato.(Ho usato N=8000 termini)
Sara' la mia mentalita' troppo da ingegnere,
ma la precisione oltre il millesimo non mi
appassiona, anche se capisco l'importanza di
controllare l'efficienza dei vari metodi di
calcolo.
Sono cmq a disposizione per eventuali ulteriori
precisazioni

G.Schgör
g.schgor
Junior Member
Junior Member
 
Messaggi: 280
Iscritto il: 23/10/2004, 08:50
Località: Italy

Prossimo

Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti