Formula di quadratura costruita su zeri di Chebyschev.

compa90
Buongiorno, ho il seguente integrale
$int_a^bf(x) dx$
e vorrei stimarlo utilizzando le formule di quadratura costruite sugli zeri del polinomio ortogonale di Chebyschev, ossia che si abbia
$int_a^b f(x)/(sqrt(1-x^2)) dx ~ pi/n sum_i^nf(x_i)$
dove gli $x_i$ zeri del polinomio ortogonale di Chebyschev.

Per semplicità suppongo che $f(x)=x, x \in [-5,5]$

Cambio di variabile
$x=5t$ dove la nuova variabile di integrazione è $t$, dove $t in [-1,1]$
$dx=5dt$, e $x=-5 \to t=-1, x=5 \ to t=1$
quindi
$int_(-5)^5x \dx=25int_(-1)^1 t\ dt$
dopodiché
$25int_(-1)^1 t\ dt= 25int_(-1)^1 (t) /sqrt(1-t^2) sqrt(1-t^2)\ dt $



Se ho fatto bene, dovrei integrare
$25int_(-1)^1 (t) /sqrt(1-t^2) sqrt(1-t^2)\ dt $

Vi chiedo se ho fatto bene fin qui.

Saluti

Risposte
compa90
Ciao, qualcuno c'è ? :cry:

feddy
In sostanza vuoi ricondurti alla forma per cui puoi applicare la formula, dove ora $f=\sqrt{1-x^2}x$. E' sostanzialmente quanto viene fatto a questo link che ho trovato googlando un po' a caso (ultima pagina, esempio 3.2) https://epgp.inflibnet.ac.in/epgpdata/u ... -7,M-3.pdf

compa90
Ciao, ho letto l'esempio, c'è qualcosa che non mi torna, cioè nell'esempio non viene fatto il cambiamento di variabile nella funzione integranda ma solo su gli estremi, non andrebbe fatto ?

Io faccio cosi, considero $ int_0^1 1/(1+x^2) dx$ e pongo $x=1/2(1+t)$, sicché
$ x=0 \to t=-1, x=1 \to t=1$, $ dx=1/2 dt$
e la funzione integranda diventa
$ f(x)=f(1/2+t/2)=1/(1+(1/2+t/2)^2)=1/(1+(1/4+t^2/4+t/2))=4/(5+2t+t^2)$
allora
$ int_0^1 1/(1+x^2) dx=1/2int_(-1)^1 4/(5+2t+t^2) dt$

Infine, per utilizzare la f. di q. con nodi di G.C. considero $bar{g}(t)=sqrt(1-t^2)* 4/(5+2t+t^2)$, allora
$ int_0^1 1/(1+x^2) dx=1/2int_(-1)^1 4/(5+2t+t^2) dt=1/2int_(-1)^1(bar{g}(t))/(sqrt(1-t^2))dt$


Tuttavia posto script di Matlab di quanto detto
clear all
clc

% Zeri polinomio di Chebychev
x=[0.3826834 0.3826834 -0.9238795 -0.9238795]; 
x=x';
A=0.7853982; 

g=@(t) sqrt(1-t.^2).*(4/(5+t.^2));
s=0;
for i=1:4
    tmp_g=g(x(i));
    s=s+tmp_g; 
end

SI=0.5*A*s;
val1=atan(0); val2=atan(1); 
val_rif=val2-val1; 
err1=abs(val_rif-SI); 

fprintf('STRATEGIA PERSONALE\n')
fprintf('Stima integrale                : %.7f\n',SI);
fprintf('Valore di riferimento integrale: %.7f\n',val_rif);
fprintf('Errore assoluto                : %.4e\n\n\n',err1);

SIE=0.7950767;
err2=abs(SIE-val_rif);
fprintf('STRATEGIA SLIDE\n')
fprintf('Stima integrale esempio        : %.7f\n',SIE);
fprintf('Valore di riferimento integrale: %.7f\n',val_rif);
fprintf('Errore assoluto                : %.4e\n',SI);

con valori in uscita
STRATEGIA PERSONALE
Stima integrale                : 0.7693579
Valore di riferimento integrale: 0.7853982
Errore assoluto                : 1.6040e-02


STRATEGIA SLIDE
Stima integrale esempio        : 0.7950767
Valore di riferimento integrale: 0.7853982
Errore assoluto                : 7.6936e-01


Dov'è l'errore ?
Saluti

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