bonjour tout le monde!
j'ai recu un DM à faire en calcul formel et je galère en peu (beaucoup)!
Il faut que j'exprime une procédure FibIt (l'exo est intitulé suite de Fibonacci)qui prend u0,u1,a et b comme parametre, sachant que
la suite récurrente (Un) est définie par: U0= alpha;U1= beta et Un+2=alpha*U(n+1)+beta*U(n).
j'ai fait cette procedure:
restart;
FiboIt:=proc(u,v,a,b)
local c,k,L;
c:=array(0..50);
c[0]:=u:
c[1]:=v:
for k from 2 to 50 do
c[k]:=(a*v)+(b*u);
v:=c[k];
u:=c[k-1];
od:
L:=seq(c[i],i=0..50);
end proc;
ca marche mais après quand je mets
Fibo(1,1,1,1); j'obtiens un message d'erreur:
Error, (in FiboIt) illegal use of a formal parameter
et je sais plus quoi faire!
et si vous pouvez me donner des conseil pour la procédure ac l'algorithme récursif ca serait cool!(sachant qu'un doit etre fait ac l'option remember)!
voila!j'espere que vous pourrez m'aider!
merci d'avance pour les réponses!
édit Océane : forum modifié
Salut
u et v sont des variables globales... tu peux pas les affecter en cours de route... Et puis, tu veux faire quoi? Lister les 50 premières valeurs de la suite de fibonnacci?
nan pas spécialement!!mais j'ai juste pris n=50 pour que ca soit plus concret!c'est tout!je sais pas trop ca doit etre (logiquement) la suite de fibonacci! mais il faut faire la procedure à partir de cette suite bizarre!je suis un peu largué! sinon j'aurai pu p-ê utilisé %! ca aurait été plus simple je pense!
on a pas encore vu en cours les variables globales mais ca doit pas etre trop compliqué!
et t'as une idée pour l'algorithme récursif?
Déjà ta manière de définir Fibonnacci me paraît suspecte... T'es bien conscient que là, il n'y a que deux paramètres qui définissent toutes ta suite, vu que tu imposes (et je comprends pas pourquoi) u0=alpha, u1=beta et u_(n+2)=alpha*u_(n+1)+beta*u_n?
Ya pas une coquille quelque part là?
Ayoub a raison, dans ta boucle utilise plutôt u' et v' des variables locales initialisées respectivement à u et v.
Salut vieux
Bon sinon, pour Fibonnacci tel que tout le monde le défini (ie, u0,u1 comme on veut et u_(n+2)=u_(n+1)+u_n) en récursif, un truc de ce style devrait passer.
u0:=...:u1:=...:
fibonacci:=proc(n)
option remember: # c'est pas fondamental ça, c'est propre à certaines versions de Maple en plus...
if n=0 then RETURN(u0)
elif n=1 then RETURN(u1)
else RETURN(fibonacci(n-1)+fibonacci(n-2)) fi:
end:
Ca devrait marcher ça...^^
En fait ton erreur c'est à cause de l'affectation de u et v, après c'est pas gênant si tu prends u = a et v = b mais c'est pas fibonacci pour le coup.
Et vieux tant que je t'ai sous la main une question
J'ai envie de dire que si le polynôme caractéristique de f admet 0 comme racine de multiplicité a alors dim Ker(f) a.
C'est vrai ça non ? En utilisant le lemme de décomposition des noyaux ?
C'est vrai en effet. Mais c'est surtout parce que dim(Ker(f)) c'est la dimension de l'espace propre associée à la valeur propre 0, et que (X-0)^(dim(Ker(f)))| poly caractéristique.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :