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)