|
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
bloutz
Inscrit le: 04 Juin 2006 Messages: 5
|
Posté le: 04 Juin 2006 22:48 Sujet du message: Enveloppe convexe |
|
|
Bonjour,
Voila, en ce moment nous sommes en train de faire un programme sur les enveloppes convexes en cour.
Le probleme etant de poser un polynome quelconque et de tracer en ayant trouver les racines sont enveloppe convexe et les enveloppes convexes de ses derivées successives. Je pense avoir bien réaliser le programme car manuellement tout fonctionne (test, procedure pour trouver les racines et les stocker dans des listes, separation de partie réelles et partie imaginaire), jusqu'à la touche final qui me permettrait de tracer la courbe...
Je ne sais pas d'ou vient le probleme et maple lui me renvoit un message d'erreur m'affirmant que l'erreur provient du programme test. Or en faisant les calculs a la main pour le même polynome il n'y a pas de probleme...
Voici donc mes dernieres lignes de code:
Code: | enveloppe:=proc(X)
> local L,k,n,h,f,g,M,B;
> L:=resol2(X);
> n:=nops(L);
> k:=1;
> for k to n
> do h:=op(k,L); f[k]:=plot([yop(h)]);
> od;
> M:=seq([f[k]],k=1..n);
> B:=plot(M);
> display(B);
> end;
|
Voila. Merci si vous vous penchez sur mon probleme et si vous voulez plus d'info sur le programme n'hésitez pas! |
|
Revenir en haut de page |
|
|
totor Invité
|
Posté le: 05 Juin 2006 7:38 Sujet du message: |
|
|
Si tu pouvais nous montrer l'ensemble du code, ce serait bcp plus facile pour trouver l'erreur. Merci. |
|
Revenir en haut de page |
|
|
bloutz
Inscrit le: 04 Juin 2006 Messages: 5
|
Posté le: 05 Juin 2006 9:42 Sujet du message: |
|
|
Hey je connais aussi un totor à mon lycée (enfin pas personellement...)
Enfin merci de te pencher sur mon cas!
Voici le code:
Code: | > yop:=proc(L) local k,p,n,F;F:=NULL:
> n:=nops(L);for k to n-1 do for p from k+1 to n do F:=F,test(k,p,L);od;od;end:
> test:=proc(k,p,L) local n,l,A,B,C,E,i;l:=subsop(k=NULL,p=NULL,L);
> A:=L[k];B:=L[p];n:=nops(L);i:=1;
> while evalf((B[1]-A[1])*(l[i][2]-A[2])-(B[2]-A[2])*(l[i][1]-A[1])) = 0
> do if (i<n-2) then i:=i+1 else RETURN([A,B]) fi; od; C:=l[i];
> for E in l do
> if
> evalf(( (B[1]-A[1])*(C[2]-A[2])-(B[2]-A[2])*(C[1]-A[1]) )*
> ( (B[1]-A[1])*(E[2]-A[2])-(B[2]-A[2])*(E[1]-A[1]) )) < 0 then RETURN(NULL)
> fi;
> od;
> [A,B];
> end:
> resol:=proc(X)
> local b,k,h,L;
> b:=[fsolve(X,x,complex)];
> L:=[];
> for k to nops(b)
> do h:=b[k]; L:=[L[],[Re(h),Im(h)]]; od ; L:=[op(L)];
> end;
> resol2:=proc(X)
> local M,f;
> M:=[];
> f:=X;
> while evalb(diff(f,x) <>0)
> do
> M:=[M[],resol(f)]; f:=diff(f,x);
> od;
> RETURN(M);
> end;
> enveloppe:=proc(X)
> local L,k,n,h,f,g,M,B;
> L:=resol2(X);
> n:=nops(L);
> k:=1;
> for k to n
> do h:=op(k,L); f[k]:=plot([yop(h)]); g[k]:=pointplot(h);
> od;
> M:=seq([f[k],g[k]],k=1..n);
> B:=plot(M);
> display(B);
> end;
|
En esperant que je sois pas trop brouillon et que ce soit assez clair! Merci encore totor |
|
Revenir en haut de page |
|
|
totor Invité
|
Posté le: 05 Juin 2006 11:19 Sujet du message: |
|
|
j'ai fait pour essayer de débuguer
trace(test); puis enveloppe(x^3-2*x^2+5*x+7); mais je ne vois pas où cela peut foirer. Désolé (regarde les valeurs des variables: est-ce pas quand l devient vide?) |
|
Revenir en haut de page |
|
|
bloutz
Inscrit le: 04 Juin 2006 Messages: 5
|
Posté le: 05 Juin 2006 13:55 Sujet du message: |
|
|
Je pense franchement que le probleme vient de la derniere procedure car apres moulte essais avec plusieurs listes toutes les autres procedures fonctionnent.
Peut etre que maple n'aiment pas la manière dont je lui demande de me tracer... Enfin je vois pas d'autres manières non plus de lui demander mais je ne desespere pas! J'essaye encore de modifier quelques trucs... qui vivra verra! |
|
Revenir en haut de page |
|
|
bloutz
Inscrit le: 04 Juin 2006 Messages: 5
|
Posté le: 05 Juin 2006 14:20 Sujet du message: |
|
|
Désolé pour le double post, mais je poste ce message comme étant totalement différent du précedent.
En fait je viens de faire une découverte qui pourrait révolution le monde du maple... (juste pour mon programme)
Alors voila j'ai essayé ceci :
plot([yop(op(1,resol2(x^3-2*x^2+5*x+7)))])
pas de probleme.
Le probleme vient que lorsque je remplace le 1 par le 2 il me met qu'il y a une erreur...
Donc il doit sans doute y avoir un probleme dans la liste l comme le dit totor mais je ne vois pas d'ou elle pourrait venir!
J'attends et cherche toujours! Peut etre que maple a du mal à comprendre ou plutot a savoir comment tracer une enveloppe convexe avec deux points!
Je vais m'orienter la dessus et juste essayer de faire tourner le programme pour un polynome de degré 9 par exemple en m'arretant lorsque j'obtiendrai un polynome du second degré pour voir si il peut tracer jusque la...
Je me pose alors la question suivante: est ce qu'il y aurait pas une commande pour donner le degré d'un polynome? Sa m'eviterais quelques lignes de calculs...
EDIT: C'est bon c'est la commande degree tout bete mais fallait y penser :p |
|
Revenir en haut de page |
|
|
bloutz
Inscrit le: 04 Juin 2006 Messages: 5
|
Posté le: 05 Juin 2006 14:58 Sujet du message: |
|
|
Voila en changeant quelques petits trucs j'ai finalement trouvé l'origine de mon probleme. Le programme tourne parfaitement maintenant!
Merci à tout le monde et également à totor sans qui j'aurais peut etre deja arreté!!!
Merci bien ^^ |
|
Revenir en haut de page |
|
|
Invité Invité
|
Posté le: 06 Juin 2006 14:26 Sujet du message: |
|
|
bonjour je veux utiliser a l'aide de maple l'image d'une droite par une transformation de smith definit par f:C->C
z->z'=(z-1)/(z+1). |
|
Revenir en haut de page |
|
|
Invité Invité
|
Posté le: 06 Juin 2006 14:31 Sujet du message: |
|
|
en fait il s'agit de l'image d'une droite dans le plan complexe |
|
Revenir en haut de page |
|
|
Invité
|
Posté le: 06 Juin 2006 15:01 Sujet du message: |
|
|
T'as pas essayé ça???
> with(plots):
> conformal((z-1)/(z+1), z=-3-3*I..3+3*I, -1-2*I..2+2*I); |
|
Revenir en haut de page |
|
|
Invité
|
Posté le: 06 Juin 2006 19:25 Sujet du message: |
|
|
je suis nul en maple mais concernant le nombre complexe z=a+i*b comment tracé les images des droites ,de l'equation x=a telque a varie de 0 a 20 et y=b tel que b varie de -20 a +20 ,par la transformation definie audessus |
|
Revenir en haut de page |
|
|
Invité
|
Posté le: 07 Juin 2006 13:14 Sujet du message: |
|
|
C'est ce qui a été fait dans le message précédent (consulte l'aide sur la fonction plots,conformal) |
|
Revenir en haut de page |
|
|
|
|
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
|
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.
|