TD 3 corrigé sur les suites en Scilab

Do you have difficulties understanding French courses? visit our English version Click here

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)

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Many people realize their hearts desires late in life. Continue learning, never stop striving and keep your curiosity sharp, and you will never become too old to appreciate life.

0 Commentaire(s)

Pour laisser un commentaire vous devez avoir un compte Inscription, ou Se connecter