 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
romanticide
Inscrit le: 13 Mar 2005 Messages: 47
|
Posté le: 02 Mai 2005 21:55 Sujet du message: problème qd je mets mes procédures ensemble |
|
|
bonjour
voici le code en entier mais la rectification ne fonction plus
je ne comprends pas
Code: |
> with(plots):
Affichage courbe
> AffCurv:=proc(Expr)
> local g1,g2;
> g1:=op(1,Expr);g2:=op(2,Expr);
> print(`g1=`,g1);print(` g2=`,g2);
> end:
>
Tracé de la courbe
> TracCurv:=proc(Expr,Min,Max)
> local g1,g2,Curv;
> g1:=op(1,Expr);g2:=op(2,Expr);
> Curv:=[g1,g2,t=Min..Max];
> plot(Curv,scaling=constrained,numpoints=100,color=blue);
> end:
>
Calcul de la longueur
> CalCurv:=proc(Expr)
> local g1,g2,d1,d2,R,L,s,e;
> g1:=op(1,Expr);g2:=op(2,Expr);
> d1:=diff(g1,t);d2:=diff(g2,t);
> R:=sqrt((d1^2)+(d2^2));
> L:=Int(R,t=0..2*Pi);
> s:=simplify(L);
> e:=evalf(s);
> print(`longueur =`,e);
> end:
Rectification
> Repproc:=proc(a,b,Err)
> local A,B,X,Y,Dist,g1,g2,d1,d2,R,L,Lg,Pt,c,List;
> A:=[sin(2*a),sin(3*a)];B:=[sin(2*b),sin(3*b)];List:=[];c:=0;
> X:=(op(1,B)-op(1,A));Y:=(op(2,B)-op(2,A));
> Dist:=sqrt(X^2+Y^2);
> d1:=diff(G1,t);d2:=diff(G2,t);
> R:=sqrt((d1^2)+(d2^2));
> L:=Int(R,t=a..b);
> Lg:=evalf(L);
> if evalf(Lg-Dist)>evalf(Err) then
> List:=[op(List),op(Repproc(a,(a+b)/2,Err))]:
> List:=[op(List),op(Repproc((a+b)/2,b,Err))]
> else
> List:=[op(List),map(evalf,A),map(evalf,B)]:
> fi;
> List
> end:
>
Calcul de la courbure
> Courbure:=proc(Expr,T)
> local g1,g2,d1,d2,dd1,dd2,D1,D2,ds,Mat,Delta,Courb;
> g1:=op(1,Expr);g2:=op(2,Expr);
> d1:=diff(g1,t);d2:=diff(g2,t);
> D1:=[d1,d2];
> ds:=sqrt(d1^2+d2^2);
> dd1:=diff(d1,t);dd2:=diff(d2,t);
> D2:=[dd1,dd2];
> Mat:=matrix([[d1,dd1],[d2,dd2]]);
> Delta:=(d1*dd2-d2*dd1);
> Courb:=evalf(subs(t=T,Delta/ds^3));
> end:
>
Discrétisation et courbure
> Rectcourb:=proc(Expr,Int,n)
> local a,b,g1,g2,h0,x,Listx,i,Go,Cc,h,d;
> a:=evalf(op(1,Int));b:=evalf(op(2,Int));
> g1:=op(1,Expr);g2:=op(2,Expr);
> h0:=evalf((b-a)/n);
> x:=a;
> Listx:=[[sin(2*a),sin(3*a)]];
> i:=0;
> Go:=true;
> while Go do
> i:=i+1;d:=Courbure(w,x);
> Cc:=abs(d);
> if Cc<1 then h:=h0;
> else h:=h0/Cc;
> fi;
> x:=evalf(x+h);
> Listx:=[op(Listx),[sin(2*x),sin(3*x)]];
> Go:=evalb(x<b+h0);
> od;
> Listx;
> end:
>
Zone Interactive
> w:=h(sin(2*t),sin(3*t));
> Intdef:=[0,2*Pi];
w := h(sin(2 t), sin(3 t))
Intdef := [0, 2 Pi]
> AffCurv(w);
> TracCurv(w,0,2*Pi);
> CalCurv(w);
g1=, sin(2 t)
g2=, sin(3 t)
longueur =, 15.28937393
> Ligne:=plot(Repproc(0,2*Pi,10^(-2)),color=blue,style=line):
> Point:=plot(Repproc(0,2*Pi,10^(-2)),color=red,style=point):
> display({Ligne,Point});
> Ligne:=plot(Repproc(0,2*Pi,10^(-3)),color=blue,style=line):
> Point:=plot(Repproc(0,2*Pi,10^(-3)),color=red,style=point):
> display({Ligne,Point});
> Courbure(w,Pi/4);
-.8888888895
> Ligne:=plot(Rectcourb(w,Intdef,100),color=blue,style=line):
> Point:=plot(Rectcourb(w,Intdef,100),color=red,style=point):
> display({Ligne,Point});
|
les graphes de la rectification sont vides je n'ai que le point (0,0) |
|
Revenir en haut de page |
|
 |
romanticide
Inscrit le: 13 Mar 2005 Messages: 47
|
Posté le: 05 Mai 2005 13:06 Sujet du message: pour ALS |
|
|
bonjour
je te remercie encore une fois pour ta réponse
j'ai une petite question qui n'a rien à voir avec Maple
es tu aussi fort en maths qu'en maple
je sais que ce n'est pas un forum de maths mais je ne sais pas o๠poster quand j'ai un problème en maths
(petite précision je suis en licence de maths )
donc si tu as des liens
merci d'avance
à plus |
|
Revenir en haut de page |
|
 |
romanticide
Inscrit le: 13 Mar 2005 Messages: 47
|
Posté le: 05 Mai 2005 13:20 Sujet du message: encore un problème |
|
|
bonjour
je veux changer dans ma procédure rectification le fait que je ne peux pas l'utiliser pour une autre courbe que lissajous voilà ce que 'j'ai fais mais ça ne marche pas
[code]> Repproc:=proc(Expr,a,b,Err)
> local A,B,X,Y,Dist,g1,g2,G1,G2,G3,G4,d1,d2,R,L,Lg,Pt,c,List;
> g1:=op(1,Expr);g2:=op(2,Expr);
> G1:=subs(t=a,g1);G2:=subs(t=a,g2);G3:=subs(t=b,g1);G4:=subs(t=b,g2); A:=[G1,G2];B:=[G3,G4];List:=[];c:=0;
> X:=(op(1,B)-op(1,A));Y:=(op(2,B)-op(2,A));
> Dist:=sqrt(X^2+Y^2);
> d1:=diff(G1,t);d2:=diff(G2,t);
> R:=sqrt((d1^2)+(d2^2));
> L:=Int(R,t=a..b);
> Lg:=evalf(L);
> if evalf(Lg-Dist)>evalf(Err) then
> List:=[op(List),op(Repproc(Expr,a,(a+b)/2,Err))]:
> List:=[op(List),op(Repproc(Expr,(a+b)/2,b,Err))]
> else
> List:=[op(List),map(evalf,A),map(evalf,B)]:
> fi;
> List
> end:
Ligne:=plot(Repproc(w,0,2*Pi,10^(-3)),color=blue,style=line):
> Point:=plot(Repproc(w,0,2*Pi,10^(-3)),color=red,style=point):
> display({Ligne,Point});[/code]
merci |
|
Revenir en haut de page |
|
 |
romanticide
Inscrit le: 13 Mar 2005 Messages: 47
|
Posté le: 08 Mai 2005 17:17 Sujet du message: |
|
|
merci |
|
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.
|