TD 3 corrigé sur les suites en Scilab
Exercice 1
Écrire un programme qui permet de calculer

Corrigé
N=input("saisir N ")
s1=1
s2=1
s3=1
s4=1
for i=2:N
s1=s1+(1/i)
end
disp("S1 =",s1)
for i=2:2:N
s2=s2+(1/i)
end
disp("S2 =",s2)
signe=-1
for i=2:2:N
s3=s3+signe*(1/i)
signe=signe*(-1)
end
disp("S3 =",s3)
x=input("saisir x")
for i=1:N
s4=s4+(x^i)
end
disp("S4 =",s4)Exercice 2
Ecrire un programme qui détermine le 20ième terme d’une suite définie par :
- S0 = 2
- S1 = 3
- Sn = Sn−1 +(−1)n ∗Sn−2
Corrigé
s1=2;
s2=3;
for i=3:20
s=s2+((-1)^i)*s1
s1=s2
s2=s
end
disp(" le 20 eme terme est :",s2)Exercice 3
Soit la suite U définie par :

Cette suite aboutit au cycle redondant formé par les trois termes 4,2,1 à partir d’un certain rang.
Exemple :
Pour U0 = 3
U1 =10; U2 =5; U3 =16; U4 =8; U5 =4; U6 =2; U7 =1; U8 =4; U9 =2; U10 =1,
Donc la suite U entre dans le cycle redondant 4,2,1 à partir du 6ème terme(rang=6)
Ecrire un programme permettant de déterminer le rang à partir duquel la suite U aboutit au cycle redon-dant 4, 2 et 1
La fonction grand("uin",3,40) permet de générer un nombre entier entre 3 et 40
Corrigé
U=grand("uin",3,40)
it=1
while(U<>4)
it=it+1
if(modulo(U,2)==0)then
U=U/2
else
U=3*U(+1
end
end
disp("la suite U entre dans le cycle redondant a partir du rang=",it)Exercice 4
Ecrire un programme demandant un entier n à l’utilisateur et affichant la valeur de :

Corrigé
u=1
s=1
for i=1:n
u=sqrt(u+(i-1))
s=s+u
end
disp(s) u1=1
u2=2
p=2
for i=2:n
u=u2+(i-2)*u1
u1=u2
u2=u
p=p*u
end
disp(p) u=1
v=2
s=2
for i=1:n
inter=u // stocker l'ancienne valeur de u(i-1)
u=3*u+sqrt(v)
v=(1/i)*inter+v
s=s+u*v
end
disp(s)Exercice 5
On veut obtenir une bonne approximation du nombre e (qui est la valeur de la fonction exponentielle de 1). Pour cela, on construit une suite de nombres réels de cette facon :
U0 = 1 et pour chaque entier n >0, Un =Un−1 +(1/n!). Avec n!=1 x 2 x ...x n.
Cette suite va tendre vers le nombre e quand n tend vers l’infini (+∞).
Ainsi, U1 = U0 +(1/1!) = 1+1 = 2 et U2 = U1 +(1/2!) = 2+(1/2) = 2,5...
Il faut savoir que le terme(1/n !) va tendre rapidement vers zéro et donc pour une certaine valeur de n, nous aurons Un = Un−1 du fait des imprécisions dans la représentation des nombres réels dans l’ordinateur.
Ecrire un programme qui permet de calculer et d’afficher les valeurs de e(= Un) du premier n qui vérifie Un = Un−1.
Corrigé
U1=1
U2=U1+1
n=2
f=1
while(U1<>U2)
f=f*n
n=n+1
U1=U2
U2=U1+(1/f)
end
disp(U2)
