Integrazione numerica
Per calcolare la seguente funzione nell'intervallo [0,100]
[tex]\large f(z)=\frac{1}{\pi}\int_{0}^{\pi}cos(z\cdot sin(t)-k\cdot t)dt[/tex]
ho usato il metodo di Simpson e quello dei trapezi ed ho notato che i risultati forniti tendono a convergere all'aumentare di z ed all'aumentare del parametro k.
Non riesco però a spiegarmi perché accada questo e l'unico motivo che ho trovato (ma non sono sicuro sia giustissimo) è che all'aumentare di k o di z diminuiscono le cancellazioni sottrattive. Non credo però che questa sia la vera spiegazione. Avete qualche altra idea?
[tex]\large f(z)=\frac{1}{\pi}\int_{0}^{\pi}cos(z\cdot sin(t)-k\cdot t)dt[/tex]
ho usato il metodo di Simpson e quello dei trapezi ed ho notato che i risultati forniti tendono a convergere all'aumentare di z ed all'aumentare del parametro k.
Non riesco però a spiegarmi perché accada questo e l'unico motivo che ho trovato (ma non sono sicuro sia giustissimo) è che all'aumentare di k o di z diminuiscono le cancellazioni sottrattive. Non credo però che questa sia la vera spiegazione. Avete qualche altra idea?
Risposte
z e k sono reali?
Si sono di tipo real, inoltre k è fissato.
Diciamo che ho dovuto trattare tre casi, uno in cui k=0, uno con k=1 e uno con k=10. Quindi di k non mi interesso particolarmente.
Il fatto è che per avere un' idea di quanto bene funzioni il programma mi è venuto solo in mente di calcolare la differenza tra il valore calcolato con il metodo di Simpson e quello calcolato con i trapezi. Ho visto che differiscono per circa [tex]10^{-19}[/tex] anche se all'aumentare di z questa differenza tende a diminuire.
Altrimenti non saprei come fare per valutare la precisione e l'affidabilità del programma, senza contare che non mi spiego questo aumento di affidabilità all'aumentare di z.
Diciamo che ho dovuto trattare tre casi, uno in cui k=0, uno con k=1 e uno con k=10. Quindi di k non mi interesso particolarmente.
Il fatto è che per avere un' idea di quanto bene funzioni il programma mi è venuto solo in mente di calcolare la differenza tra il valore calcolato con il metodo di Simpson e quello calcolato con i trapezi. Ho visto che differiscono per circa [tex]10^{-19}[/tex] anche se all'aumentare di z questa differenza tende a diminuire.
Altrimenti non saprei come fare per valutare la precisione e l'affidabilità del programma, senza contare che non mi spiego questo aumento di affidabilità all'aumentare di z.
Non ho ben capito se il tuo dubbio è di natura matematica o se stai solo cercando di capire la precisione del programma.
Intuitivamente, se il tuo dubbio è matematico e non ti spieghi come mai all'aumentare di z, il valore di f converga, al posto tuo io mi calcolerei il limite per z che tende a infinito di f(z). Se il limite esiste ed è finito, allora è naturale che converga.
Intuitivamente, se il tuo dubbio è matematico e non ti spieghi come mai all'aumentare di z, il valore di f converga, al posto tuo io mi calcolerei il limite per z che tende a infinito di f(z). Se il limite esiste ed è finito, allora è naturale che converga.
Diciamo che sto cercando in tutti i modi di capire la precisione e l'affidabilità del programma.
Anzichè confrontare il tuo risultato con un altro metodo di integrazione, puoi fare tu il calcolo dell'integrale per un valore di z fissato e compari il risultato con quello sputato fuori dal programma.
Poi potresti fare la stessa cosa con l'altro algoritmo e confrontare i tre risultati in modo da avere un'idea generale.
Ovviamente i valori numerici dell'integrale calcolato da te, deve essere calcolato dallo stesso hardware su cui fai girare l'algoritmo: non avrebbe senso confrontare i valori ottenuti con una calcolatrice e quelli ottenuti usando variabili a virgola mobile a doppia precisione. Spero di esermi spiegato, nonostante l'assenza di linguaggio tecnico
Poi potresti fare la stessa cosa con l'altro algoritmo e confrontare i tre risultati in modo da avere un'idea generale.
Ovviamente i valori numerici dell'integrale calcolato da te, deve essere calcolato dallo stesso hardware su cui fai girare l'algoritmo: non avrebbe senso confrontare i valori ottenuti con una calcolatrice e quelli ottenuti usando variabili a virgola mobile a doppia precisione. Spero di esermi spiegato, nonostante l'assenza di linguaggio tecnico

Non so se serva a molto perchè il programma che ho fatto non fa altro che fissare 1000 valori di z e calcolare l'integrale per ciascuno di essi. Quindi se io creassi un programma che con lo stesso metodo calcola l'integrale per uno z fissato è chiaro che otterrei una differenza pari a 0 perché si sarebbe trattato di fare la stessa cosa per uno z anziché per 1000 valori di z.
Qua stiamo facendo confusione. Non ti ho detto di reimplementare l'algoritmo per calcolare il valore in un solo punto z.
Quindi dici che potrei calcolare quell'integrale per uno z fissato senza un metodo numerico?
"Stefano93":
Quindi dici che potrei calcolare quell'integrale per uno z fissato senza un metodo numerico?
Non ho la MINIMA idea di cosa fargli a quell'integrale per strecciarne una primitiva, però sì, quello è il concetto

ahhahah beh quello l'avevo pensato anche io, è il normale modo di valutare la precisione. Purtroppo però in questo caso le cose sono un po' più complicate, per quello l'unica idea che mi era venuta è stata quella di confrontare i due metodi.
Quando \(k\) cresce la funzione diventa molto "a triangoli" e quindi il metodo dei trapezi ci va a nozze perché l'approssimazione risulta [casualmente] ben fatta, mentre il metodo di simpson ci si adatta, presumo, costruendo parabole con grande curvatura.
Viceversa, per \(k\) piccolo il grafico è decisamente più ondulato ed un'approssimazione con una spezzata è meno precisa.
Viceversa, per \(k\) piccolo il grafico è decisamente più ondulato ed un'approssimazione con una spezzata è meno precisa.