Sei sulla pagina 1di 6

Successioni e serie di funzioni con Matlab.

1. Successioni e serie di funzioni.

2
Si consideri la successione di funzioni f n ( x) =
atan( nx ) ; per ogni numero reale x fissato risulta:

1 se x > 0

lim f n ( x ) = sign( x ) = 0 se x = 0
n +
1 se x < 0

ovvero la successione converge semplicemente su tutto lasse reale alla funzione sign( x ) .

Il seguente script permette di visualizzare i grafici delle funzioni f n ( x ) , con n = 0,1,...,30 , assieme a quello della
funzione limite:
sfn='2/pi*atan(n*x)';
sf='sign(x)';
fn=fcnchk(sfn,'x','n','vectorized');
f=fcnchk(sf,'x','vectorized');
x m i n =- 5 ;
xmax=5;
y m i n =- 2 ;
ymax=2;
passo=0.01;
x=xmin:passo:xmax;
figure(1)
clf
for n=1:30
plot(x,fn(x,n),'b',x,f(x),'.k')
grid on
a x i s ( [ x m in xmax ymin ymax])
title(strcat('n=',num2str(n)))
legend(sfn,sf)
pause
end

Dallesame dei grafici ottenuti facile intuire che la convergenza alla funzione limite solo semplice in ( , + ) ,
mentre si ha convergenza uniforme in ogni sottoinsieme ( , a ] [ b, +) , con a < 0 < b .

Esercizi proposti:

Per ognuna delle seguenti successioni di funzioni rappresentare i grafici delle funzioni f n ( x ) assieme a quello della
funzione limite f ( x ) ( sufficiente modificare opportunamente lo script usato per lesempio precedente); dire poi in
quali sottoinsiemi dellinsieme di convergenza semplice la successione converge uniformemente.

1. f n (x ) = x n con 1 < x < 1 ; f ( x ) = lim f n ( x) = 0 x (1,1).


n +

1
nx se x 0
2. f n (x ) = con x R ; f ( x ) = lim f n ( x) = x
1 + nx 2 n +
0 se x = 0
1
3. f n (x ) = con xR; f ( x ) = lim f n ( x) = 0
1 + ( x n) 2 n +

1
2. Serie di Taylor.

Sia f : ( a, b) R una funzione derivabile infinite volte in ( a, b ); allora in ogni x0 ( a, b) possibile definire
la serie di Taylor di centro x0 associata alla funzione f :
f ( x 0 ) f ( n ) ( x0 )
f ( n) ( x0 )
T ( f , x0 ) := f ( x0 ) + f ( x0 )( x x0 ) + ( x x0 ) 2 + ... + ( x x0 ) n + ... = ( x x0 ) n
2! n! k=0 n !

Se tale serie converge ad f (x ) nei punti di un opportuno intervallo ( x0 R, x 0 + R) ( a,b) di raggio R > 0 si
dice che la funzione analitica o sviluppabile in serie di Taylor. Gli elementi della successione delle somma parziali
della serie sono detti polinomi di Taylor di centro x0 della funzione.

Il symbolic math toolbox di Matlab permette di calcolare i polinomi di Taylor di una funzione mediante il comando
t a y l o r ( e s p r , v a r , x 0 , n ) che genera il polinomio di Taylor della funzione definita dallespressione simbolica
e s p r rispetto alla variabile v a r di centro x 0 e grado n - 1 ; ad esempio i comandi:
>> syms x
>> t=taylor(sin(x),x,0,8)

restituiscono
t =
x-1/6*x^3+1/120*x^5-1/5040*x^7

Utilizzando il seguente script possiamo visualizzare il grafico della funzione sin( x ) assieme a quello di alcuni dei
polinomi di Taylor centrati nellorigine ad essa associati:

syms x;
fun='sin(x)';
f = s y m ( f u n);
x m i n =- 4 * p i ;
xmax=4*pi;
y m i n =- 2 ;
ymax=2;
passo=0.01;
x0=0;
xx=xmin:passo:xmax;
L1='Polinomio di Taylor di grado: ';
figure(1)
for k=1:2:31
t=taylor(f,x,x0,k+1);
yy=subs(t,xx);
clf
hold on
ezplot(f,[xmin xmax],1)
plot(xx,yy,'r')
axis([xmin,xmax,ymin,ymax])
L=strcat(L1,int2str(k));
legend(fun,L)
grid on
pause
end

Si noti che poich la serie di potenze


x3 x 5
x 2n+1
sin( x ) = x + + ... = ( 1) n
3! 5! n= 0 ( 2n + 1)!
ha raggio di convergenza R =+ la successione delle somme parziali converge semplicemente a sin( x ) in tutto
lasse reale e converge uniformemente in ogni insieme limitato.

Modifichiamo lo script precedente in modo da visualizzare i grafici dei polinomi di Taylor della funzione log(1 + x ) :
syms x;
fun='log(1+x)';
f=sym(fun);
x m i n =- 2 ;
xmax=2;

2
y m i n =- 3 ;
ymax=2;
passo=0.01;
x0=0;
xx=xmin:passo:xmax;
L1='Polinomio di Taylor di grado: ';
figure(1)
for k=1:20
t=taylor(f,x,x0,k+1);
yy=subs(t,xx);
clf
hold on
ezplot(f,[xmin xmax],1)
plot(xx,yy,'r')
axis([xmin,xmax,ymin,ymax])
L=strcat(L1,int2str(k));
legend(fun,L)
grid on
pause
end

Si noti che la serie di Taylor


x2 x3
x n+1
+ + ... = (1) n
log( 1 + x ) = x
2 3 n =0 n +1

1
ha raggio di convergenza R = 1 ; inoltre per x = 1 la serie diviene ( 1)
n
che una serie a segni alternati
n= 0 n +1

1
convergente, mentre per x = 1 la serie assume la forma e quindi diverge a ; se ne deduce che la
n =0 n + 1
serie converge semplicemente in ( 1,1] e uniformemente in ogni intervallo ( a,1] con 1 < a < 1 (si applichi il
teorema di Abel).

Esercizi proposti:

Rappresentare graficamente con Matlab la successione delle somme parziali delle seguenti serie di Taylor; determinare
di ogni serie linsieme di convergenza semplice e di convergenza uniforme.


xn x2 n
a) ex = b) cos x = ( 1) n
n =0 n! n= 0 ( 2n)!


x 2 n+1
x 2n+1
c) atan x = (1) n d) sinh x =
n =0 2n + 1 n =0 ( 2n + 1)!


x 2n 1
cosh x = =x
n
e) f)
n =0 ( 2n)!
1 x n=0

3
3. Serie di Fourier.

Consideriamo la funzione periodica:

+1 se 2k x < (2 k + 1)
f (x) = x ( , + ), k Z
1 se (2 k + 1) x < (2k + 2)

Per definire in Matlab tale funzione possiamo usare, ad esempio, il seguente m-file:

% funzione ondaquadra di periodo T

function y=oq(x,T)

x=x*2/T;
y=ones(size(x)).*((mod(floor(x),2)==0)-(mod(floor(x),2)==1));

La serie di Fourier associata a tale funzione :


a0
+ a k cos( kx) + bk sin( kx)
2 1 1
dove:
1
a k = sign( x) cos( kx) dx = 0 (la funzione dispari)

0 se k pari
1 2 2 cos( kx)
bk =
sign( x ) sin( kx)dx = sin( kx)dx =
k 0 = 4
se k dispari

k
0

e quindi la serie :

(2 k + 1) sin ((2k + 1)x ) .


4
k =0

Per calcolare le somme parziali di tale serie possiamo usare la funzione:


% Calcola la somma parziale della serie di Fourier associata alla funzione
% f ( x ) = 1 s e 0 < 0 x < 1 , f ( x ) = - 1 s e -1 < = x < 1 d i p e r i o d o 2 * p i

function y=Fourier_ondaquadra(x,n)

y=0;

for k=0:n
y=y+4/((2*k+1)*pi)*sin((2*k+1)*x);
end

con le seguenti istruzioni possiamo poi rappresentare il grafico di f (x ) assieme a quello delle somme parziali della
serie di Fourier associata:

x=-4*pi:.01:4*pi;
y=oq(x,2*pi);
L1='Onda rettangolare';
figure(1)
clf
hold off
for n=0:20
y1=Fourier_ondaquadra(x,n);
L2=strcat('Somma parziale di ordine:',int2str(n));

4
plot(x,y,'.b',x,y1,'k')
a x i s ( [- 4 * p i 4 * p i -2 2 ] )
legend(L1,L2)
grid on
pause
end

Esercizi proposti:

1. Si consideri la funzione periodica di periodo 2 definita da:


f (x ) = x x [ , ]
2
La serie di Fourier associata ha coefficienti:

0 se k pari
1 2
ak =
f ( x)cos( kx) dx = x cos( kx )dx = 4
0 2 se k dispari
k 2

1
bk =


f (x )sin( kx) dx = 0 (la funzione pari)

e quindi della forma:


cos ((2 k + 1) x )
4
(2 k + 1)
k =0
2

Rappresentare con Matlab il grafico di f (x ) assieme con quello delle somme parziali della serie di Fourier ad
essa associata.

Suggerimento: per definire la funzione f ( x ) si pu usare ad esempio il file:


% funzione onda triangolare di periodo T

f u n c t i o n y = o t(x,T)

x=x*2/T;
for k=1:length(x)
i f m o d ( f l oo r ( x ( k ) ) , 2 ) = = 0
y ( k ) = - ( x ( k )- f l o o r ( x ( k ) ) ) + 1 / 2 ;
else
y ( k ) = x ( k ) - f l o o r ( x ( k ) ) -1 / 2 ;
end
end
y=T/2*y;

mentre la successione delle somme parziali della serie di Fourier associata pu essere calcolata con il file:
% C a l c o l a l a s o m m a p a r z i a l e d e l la s e r i e d i F o u r i e r a s s o c i a t a a l l a f u n z i o n e
% f ( x ) = p i / 2 - x s e 0 < = x < 1 , p a r i , di periodo T=2*pi

function y=Fourier_ondatriangolare(x,n)

y=0;

for k=0:n
y=y+4/((2*k+1)^2*pi)*cos((2*k+1)*x);
end

2. Si consideri la funzione periodica di periodo 2 definita da:


f ( x ) = x 2k x [2 k ,2( k + 1) ), k Z
La serie di Fourier associata ha coefficienti:

5
2
1
a0 =
xdx = 2
0
a
2
1
ak =
x cos(kx)dx = 0
0
2
1 2
bk =
x sin(kx)dx = k
0
e quindi della forma:


2
sin ( kx )
k =1 k
Rappresentare con Matlab il grafico di f (x ) assieme con quello delle somme parziali della serie di Fourier ad
essa associata.

Suggerimento: per definire la funzione f (x ) si pu utilizzare ad esempio il file:


% calcola la funzione y=x se 0<=x<T periodica di periodo T

f u n c t i o n y = d s(x,T)
x=x/T;
y=T*(x - f l o o r ( x ) ) ;

La successione delle somma parziali pu poi essere calcolate mediante la funzione:

% Calcola la somma parziale della serie di Fourier associata alla funzione


% f(x)=x se 0<0x<2*pi, periodica di periodo 2*pi

function y=Fourier_dentedisega(x,n)

y=pi*ones(size(x));

for k=1:n
y=y - 2 / k * s i n ( k * x ) ;
end

Potrebbero piacerti anche