Messaggioda tony » 09/04/2005, 00:31

grazie, g.sgoer, della pronta risposta al mio pigro intervento
però con la tua prova da -40 a +40 e 8000 intervalli, hai usato condizioni diverse da quelle che avevo chiesto, e che riporto qui
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">
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 )

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

mio risultato con una procedurina in basic, in "single precision":
I = 3.133513
tuo risultato con mathcad: I = 3.136
<hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
come faccio a comparare il tuo risult. da 40+40 col mio da 30+30?
sii cortese, prova con i miei dati.

inoltre, scusa, non capisco il tuo
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">Faccio pero' notare che la precisione dipende
dall'entita' dell'ultimo termine, quindi le
cifre dopo la terza decimale non hanno alcun
significato.<hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
questo varrebbe se cercassimo di calcolare l'integrale da -inf a +inf e troncassimo a +/- 30
ma, come dicevo,
"<u>... NON stiamo cercando di calcolare l'integrale da -inf a +inf;
quindi NON stiamo cercando di ottenere Pi</u>
mi aspetterei che due strumenti basati sullo stesso hardware dessero risultati moolto più simili

su quanto segue, poi, <blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">
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.<hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
aggiungo che non solo trovo importante "tarare" uno strumento e definirne la "classe di precisione"; così, anche se il risultato finale di un calcolo mi serve con tre sole cifre significative, posso valutare se non sia affetto da errori che han pesantemente inquinato i risultati intermedi.

Inoltre, non tutti gli ingegneri vanno con la stessa precisione.
un teodolite "serio" arrivava ai miei tempi ad una approssimaz. di +/- 0,2 secondi d'arco, che su 90 gradi corrispondono a 0,2/3600/90 ~= 6*10^-7 !
Il manualetto (tavole) dei logaritmi e delle funz. trigonometriche a 5 decimali usato al liceo fu considerato insufficiente alle esercitazioni di topografia, e ci fecero usare il Bruhns a 7 decimali (*) (anche se è meglio non si sappia di come arronzavo io le misure con la stadia in quei piacevoli pomeriggi di primavera ! [:D])

grazie, alla prossima.
tony

(*)tutta carta da macero, oggi
tony
Average Member
Average Member
 
Messaggi: 979
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda g.schgor » 09/04/2005, 15:53

Caro <b>tony</b>, anch'io non ha nostalgia di quei
"pomeriggi di primavera" ed ho usato il calcolatore
fin dai suoi inizi.
E oggi mi batto perche' i giovani lo utilizzino di piu'
(ma non solo per "chattare").

Ecco qui il calcolo in Mathcad come mi hai richiesto:

N=6000 n=1...N dx=0.01 x(n)=n*dx-30
y(0)=0 y(n)=sin(x(n))/x(n) y(3000)=1
iy(0)=0 iy(n)=iy(n-1)+y(n)*dx
iy(N)=3.133513184053061

(ovviamente iy(N) e' il risultato finale dell'integrazione
e mi sembra corrispondere al tuo).

Credo quindi che possiamo fidarci dei calcolatori.
(e' una battuta, naturalmente!). Ciao.

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

Messaggioda rocco.g » 09/04/2005, 17:20

ciao,
non ho letto i vari post con le ipotesi per la soluzione, tuttavia il mio prof. di analisi I mi disse che un tale integrale non è calcolabile...

cioè mi posso sbagliare... ma credo sia proprio quello...
rocco.g
Average Member
Average Member
 
Messaggi: 526
Iscritto il: 06/11/2003, 16:45

Messaggioda GIOVANNI IL CHIMICO » 09/04/2005, 19:11

Forse che non è calcolabile analiticamente...
GIOVANNI IL CHIMICO
Advanced Member
Advanced Member
 
Messaggi: 2029
Iscritto il: 31/05/2004, 15:44
Località: Italy

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

<u>x rocco.g (e, di rimbalzo, il chimico)</u>:
l'aspetto dell'integrabilità di questa funzione è stato esaurientemente trattato nel topic originale, di cui questo, come dicevo nel prologo, è una propaggine.

era:
"semplice integrale" originato qui su "matematicamente/università" il 28/02/2005 - 15:35:31 da "bracardi" col quesito

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

contiene, tra l'altro, una elegante soluzione di goblyn, basata sulla trasformata di Fourier;
appare in lista con l'ultima data: 10/03/2005.

consiglio di vederlo, ed eventualmente di prosegure là con questioni teoriche.

qui stiamo semplicemente facendo (come dice il titolo) una esercitazione di calcolo numerico, e la funzione su cui lavoriamo è solo per caso il sin(x)/x

<u>x g.schgoer</u>:
- ora saresti d'accordo di rimuovere da quel topic la coda di messaggi che abbiamo traslocato qui? a un tuo cenno provvedo a togliere i miei, in blocco.
- grazie del calcolo; ho ancora qualche domanda; proseguo domani

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

Messaggioda tony » 20/04/2005, 01:40

Grazie, g.schgoer
con la tua prova hai mostrato che il tuo strumento ha una precisione almeno uguale a quella del mio basic in precisione "double".
Il mio risultato infatti, con quella precisione, è 3.13351 31840 5307 (differisce dal tuo per un 10^-15).
non ottengo apprezzabile vantaggio (in questo problema) dalla precisione "extended" (quella con variabili da 10 byte, 80 bit, coerente col formato hardware del co-processore numerico x87).
Butto quindi alle ortiche la precisione "single" in tutti gli esperimenti che seguiranno.

Ricordo ai passanti che la differenza (1*10^-7) tra questo nostro risultato e quello "campione" 3.13351 30800 60702 22196 744 calcolato con "derive" a 24 cifre
è dovuta all'imprecisione intrinseca nel metodo (rettangoli) e nel passo scelto (0,01), e non ad errori di macchina.

Ora, dopo aver verificato la taratura dei nostri strumenti, passo alla fase successiva di questa esercitazione;
vorrei approfondire una cosa di cui non sono convinto:
dicevi che "integrando da zero la sola parte positiva e poi raddoppiando, si migliora la precisione."
Non mi convince, anzi direi il contrario, per le considerazioni di simmetria fatte tempo fa.
E propongo la seguente prova:

stessa funzione: y=sin(x)/x per x#0; y=1 per x=0
intervallo d'integrazione dimezzato: x0=0; xN=+30, data la simmetria della funzione
stesso passo: dx=0.01
Nintervalli: dimezzato, =3000

calcolo del DOPPIO dell 'integrale da x0 a xN col metodo dei rettangoli
(gli N rettangoli sono: y(x0)*dx, ... , y(xN-1)*dx )

ambiente software: variabili floating point "double precision" (8 byte)
stesso risultato "campione", calcolato con derive a 24 cifre di precisione:
3.13351 30800 60702 22196 744

il mio risultato:
3.14384 25279 2776
diff. rspetto al campione: 1*10^-2
decisamente assai peggiore dell'integrale tra -30 e + 30 (che dava diff=1*10^-7) !!

con ciò ho portato acqua al mio mulino;
a te, o a qualche altro lettore, risulta qualcosa di diverso?

tony

p.s. come già ho accennato, esaurito questo capitolo passerò all'integrazione a trapezi.
tony
Average Member
Average Member
 
Messaggi: 979
Iscritto il: 10/11/2005, 23:47
Località: milano

Messaggioda g.schgor » 20/04/2005, 11:16

Scusa, con l'integrazione numerica se raddoppi il
risultato devi escludere il valore dello zero e
poi aggiungerlo una sola volta. Hai fatto cosi'?
g.schgor
Junior Member
Junior Member
 
Messaggi: 280
Iscritto il: 23/10/2004, 08:50
Località: Italy

Messaggioda tony » 21/04/2005, 17:32

no di sicuro!
coerentemente con la definizione che avevo data

<i>"calcolo del DOPPIO dell 'integrale da x0 a xN col metodo dei rettangoli
(gli N rettangoli sono: y(x0)*dx, ... , y(xN-1)*dx )"</i>

il primo intervallo è tutta la striscia tra x0 e x1, l'ultimo quella tra xN-1 e xN.

(come avevo fatto anche per l'esercizio precedente)

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

Messaggioda g.schgor » 22/04/2005, 08:46

Gia'. Ma cosi' sommi 2 volte x(0)*dx!
(Anch'io l'ho fatto, ma io non cerco un'estrema precisione)

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

Messaggioda tony » 22/04/2005, 17:18

<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote">Gia'. Ma cosi' sommi 2 volte x(0)*dx!
(Anch'io l'ho fatto, ma io non cerco un'estrema precisione) <i>[g.schgor]</i><hr height="1" noshade id="quote"></font id="quote"></blockquote id="quote">
ottimo!,
ma allora cambiamo le carte in tavola all'integrale a rettangoli come lo definivo sopra:
I=y(x0)*dx+y(x1)*dx+...+y(xN-1)*dx
lì il termine y(xN) non viene affatto considerato;
se uso solo metà del termine in x0, mi tocca aggiungere metà del termine in xN (e in questo modo i rettangoli son quelli "a cavallo" dei punti scelti)

E' un modo lecito (e più preciso) di specificare l'integrale, basta mettersi d'accordo: e, se lo si sceglie, va applicato anche all'esercizio precedente, togliendo metà del rettangolo in x=-30 e aggiungendo metà di quello in x=+30 (che, vedi caso coincidono)

basta essed'accordo sul metodo; io mi sono attenuto a quello che avevo specificato e che credo sia quello generalmente adottato:
i segmenti sono x0_x1, x1_x2, xN-1_xN.

butto lì una bomba, che tenevo in serbo per il post immediatamente successivo:
il metodo a rettangoli "a cavallo" equivale al metodo a trapezi!

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

PrecedenteProssimo

Torna a Analisi Numerica e Ricerca Operativa

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite