Scilab

Bonjour, J'ai le programme suivant en Scilab:
k=1;
u=1;
v=3;
y=v/u;
while (abs(y-2)>0.1) do
  y=v/u;  
  w=3*v-2*u;
       u=v;
    v=w;
  k=k+1; 
    end
disp(k)
Je veux chercher le plus petit entier $k$ tel que $|\frac{y_{k+1}}{y_k}-2|<=0.1$, où $y_{k+2}=3y_{k+1}-2y_k$ avec $y_1=1$ et $y_2=3$.
Mais je n'arrive pas à écrire le bon programme.

Veuillez m'aider et merci d'avance.

Réponses

  • J'ai écris ce code Octave de tête mais je pense qu'il fonctionne. Il faut juste que tu le convertisse en scilab. Je ne sais pas si c'est important mais essaye d'éviter les boucles while car parfois il se peut que l'indice à trouver soit très grand. Si cet indice n'existe pas, tu tombes dans une boucle infinie. Si tu veux vraiment un while, met une limite à k.

    De mon côté, j'ai trouvé k=4.
    %% Variables
    k=1e1;
    y=zeros(1,k);
    y(1)=1;y(2)=3;
    cond=1e-1;
    
    %% Création du vecteur y par la relation de récurrence
    for i=1:k-2
        y(i+2)=3*y(i+1)-2*y(i);
    end
    
    %% Recherche du plus petit k
    for i=1:k-1
        u(i)=abs((y(i+1)/y(i))-2);
    end
    sol=min(find(u<=cond));
    
  • Bonjour@tatof. Merci pour ton intervention. J'ai trouvé k=5 avec mon programme.?
  • Si tu fais les calculs à la main, tu trouves:
    $ | \frac{y_4}{y_3}-2| \simeq 0.14$, $ | \frac{y_5}{y_4}-2| \simeq 0.06$ et comme de manière générale tu calcules $| \frac{y_{k+1}} {y_k}-2|$, tu en déduis $k=4$
  • oui tu as raison, pour $k=4$ on a la réponse.80928
    ssc.PNG 33.6K
  • Voici mon programme.80930
  • Si ton programme te donne k=4, c'est bon.
  • Merci@tatof.
Connectez-vous ou Inscrivez-vous pour répondre.