Apprendre Maple Index du Forum Apprendre Maple
Site dédié au logiciel de calcul formel Maple
 
  Page d'accueilPage d'accueil   FAQFAQ    RechercherRechercher    Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs 
S'enregistrerS'enregistrer    ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Débutant ayant besoin d'aide

 
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
thierrygrosse



Inscrit le: 26 Fév 2005
Messages: 6

MessagePosté le: 26 Fév 2005 14:37    Sujet du message: Débutant ayant besoin d'aide Répondre en citant

Embarassed
Voilà j'ai un projet à rediger en Maple, je suis en licence de maths (j'ai 38 ans) et je viens tout juste de découvrir ce qu'est Maple.
Mon programme principal (program) prend une matrice 2x3 et si cette matrice possède une certaine propriété alors cette propriété est l'élément d'une suite qui doit avoir 300 éléments.
En fait ces éléments sont les termes du développement en fraction continue de racine cubique de 5.
Le programme ci-dessous ne fonctionne pas car il continu en boucle et ne s'arrête pas. J'ai beaucoup cherché et ne trouve de solution, je pense que le problème vient de la condition : while nops(l)<=300.
J'ai d'ailleurs essayé avec nops(l)<=1 et même résultat.

> restart;
> with(linalg):
Warning, the protected names norm and trace have been redefined and unprotected

> propriete:=proc(H)
> local i,r,q;
> for i to 3 do
> q[i]:=iquo(H[1,i],H[2,i]);
> r[i]:=irem(H[1,i],H[2,i]);
> if (q[1]<>q[i]) or (r[i]=0) then RETURN(0);fi;od;
> q[1];
> end;

propriete := proc(H)
local i, r, q;
for i to 3 do
q[i] := iquo(H[1, i], H[2, i]);
r[i] := irem(H[1, i], H[2, i]);
if q[1] <> q[i] or r[i] = 0 then RETURN(0) end if
end do;
q[1]
end proc

> program:=proc(A)
> local a,M,J,l;
> J:=A;
> M:=matrix([[1,1,1],[5,1,1],[5,5,1]]);
> l:=[];
> while (nops(l)<=10) do
> a:=propriete(J);
> if a=0 then J:=(J&*M) else l:=[l,a] ; J:=(matrix([[0,1],[1,a]])&*J) fi;
> od;
> end;

program := proc(A)
local a, M, J, l;
J := A;
M := matrix([[1, 1, 1], [5, 1, 1], [5, 5, 1]]);
l := [];
while eval(nops(l)) <= 10 do
a := propriete(J);
if a = 0 then J := `&*`(J, M)
else
l := [l, a];
J := `&*`(matrix([[0, 1], [1, a]]), J)
end if
end do
end proc

Merci d'avance.
Thierry
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
thierrygrosse



Inscrit le: 26 Fév 2005
Messages: 6

MessagePosté le: 27 Fév 2005 15:16    Sujet du message: Répondre en citant

Merci pour tes indiquations, gràce aux modifications qui tu m'as apportées et une petite rectification : il fallait prendre (-a) dans la matrice de multiplication, à présent ça fonctionne.

Pour améliorer la présentation j'aimerais faire saisir la matrice par l'opérateur. Je connais readstat mais comment faire dans le cas d'une matrice ?

Merci
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre Maple Index du Forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


phpBB

Développé par phpBB © 2001, 2006 phpBB Group
Traduction par : phpBB-fr.com


Apprendre Maple - ©  - Alain Le Stang - Navigation optimisée pour une résolution 1024 x 768.