 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 23 Juil 2007 13:49 Sujet du message: comment construire une courbe tranformée d'une autre courbe |
|
|
Bonjour je souhaite faire la translation et/ou la rotation d'une courbe implicite. Par exemple la boucle y^2=x^4*(4+x), la déplacer en translation du vecteur (3,-2) puis lui faire subir une rotation de +Pi/5. Je sais que cette courbe n'est pas considérée comme un objet, je ne peux donc pas utiliser les instructions : rotation ni translation.
De même avec la courbe paramétrée x=theta-sin(theta), y=1-cos(theta).
Je pense qu'il faut utiliser une matrice de rotation amis comment s'y prendre ? Merci. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 23 Juil 2007 17:11 Sujet du message: |
|
|
Bonjour, voici 4 procédures qui devraient faire l'affaire:
Code: |
> translation_cartesienne:=proc(f::operator,x::name,v::vector)
> unapply(subs(x=x-v[1],f(x))+v[2],x)
> end proc:
> f:=x->x^2: v:=vector([4,2]): g:=translation_cartesienne(f,x,v);
2
g := x -> (x - 4) + 2
> plot({f(x),g(x)},x=-3..8,y=-3..4);
> translation_parametree:=proc(x::operator,y::operator,t::name,v::vector)
> unapply(x(t)+v[1],t),unapply(y(t)+v[2],t)
> end proc:
> x:=t->2*cos(t): y:=t->sin(t): z:=translation_parametree(x,y,t,v);
z := t -> 2 cos(t) + 4, t -> sin(t) + 2
> with(plots):
> c:=plot([x(t),y(t),t=0..2*Pi],scaling=constrained): tc:=plot([z[1](t),z[2](t),t=0..2*Pi],color=green):
> display([c,tc]);
> rotation_cartesienne:=proc(f::operator,x::name,alpha)
> local R,v;
> with(linalg): R:=matrix([[cos(alpha),-sin(alpha)],[sin(alpha),cos(alpha)]]);
> v:=evalm(R&*vector([x,f(x)]));
> unapply(v[1],x),unapply(v[2],x)
> end proc:
> cf:=plot(f(x),x=-10..8,y=0..10): h:=rotation_cartesienne(f,x,Pi/6);
1/2 2 1/2 2
h := x -> 1/2 3 x - 1/2 x , x -> 1/2 x + 1/2 3 x
> rf:=plot([h(x),x=-10..8],y=-2..10,color=blue): display([cf,rf]);
> rotation_parametree:=proc(x::operator,y::operator,t::name,alpha)
> local R,v;
> with(linalg): R:=matrix([[cos(alpha),-sin(alpha)],[sin(alpha),cos(alpha)]]);
> v:=evalm(R&*vector([x(t),y(t)]));
> unapply(v[1],t),unapply(v[2],t)
> end proc:
> z:=rotation_parametree(x,y,t,Pi/6);
[ 1/2 ]
[3 ]
[---- -1/2]
[ 2 ]
[ ]
[ 1/2]
[ 3 ]
[1/2 ----]
[ 2 ]
1/2 1/2
z := t -> 3 cos(t) - 1/2 sin(t), t -> cos(t) + 1/2 3 sin(t)
> rc:=plot([z[1](t),z[2](t),t=0..2*Pi],color=green):
> display([c,rc]);
|
|
|
Revenir en haut de page |
|
 |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 24 Juil 2007 8:01 Sujet du message: equation d'une ellipse |
|
|
Merci beaucoup ALS.
En fait, je cherche une solution à la question suivante :
Déterminer l'équation d'une ellipse dont un foyer est F(0,3), une directrice d : x+y=1 et l'excentricité vaut 1/2.
Par des considérations geométriques on trouve a=4/3*2^1/2,
b= 2/3*2^1/2, angle Pi/4 et centre de la conique (10/3, 2/3).
L'équation réduite est donc x^2/a^2+y^2/b^2=1. Comment passer de cette équation à une équation dans le repère xOy sans utiliser les commandes Maple : ellipse, rotation, translation, Equation... Merci. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 24 Juil 2007 13:14 Sujet du message: |
|
|
Bonjour Michel,
L'ellipse cherchée est l'ensemble des points M(x,y) tels que le rapport des distances de M à F et à d est égal à e=1/2.
Code: |
> with(geometry):
> point(M,x,y): point(F,0,3): e:=1/2: line(d,x+y=1):
> d1:=distance(M,F); d2:=distance(M,d);
2 2 1/2
d1 := (x + (y - 3) )
1/2
d2 := 1/2 | x + y - 1 | 2
> ellipse:=d1^2-e^2*d2^2=0;
2 2 2
ellipse := x + (y - 3) - 1/8 | x + y - 1 | = 0
> ellipse:=simplify(lhs(ellipse));
2 2 2
ellipse := x + y - 6 y + 9 - 1/8 | x + y - 1 |
> with(plots): implicitplot(ellipse,x=-10..10,y=-10..10,numpoints=20000,scaling=constrained);
|
|
|
Revenir en haut de page |
|
 |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 24 Juil 2007 15:25 Sujet du message: courbe reduite convertie en courbe générale |
|
|
Merci Als pour cette manière de procéder directe et élégante.
Ne pourrait-on pas à partir de l'équation réduite, les coordonnées du centre et l'angle de rotation trouver directement l'équation dans le repère xOy ? Merci. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 24 Juil 2007 21:31 Sujet du message: |
|
|
Je ne suis pas d'accord avec vos résultats. Voici ce que j'obtiens:
Code: |
2 2
f := x + y - 46/7 y + 71/7 - 2/7 x y + 2/7 x
2 2
Forme quadratique associée: q = -2/7 x y + y + x
Matrice de la forme quadratique associée:
[ 1 -1/7]
A = [ ]
[-1/7 1 ]
Valeur propres de A = [6/7, 8/7]
[6/7 0 ]
Matrice diagonale semblable à A: D = [ ]
[ 0 8/7]
[ 1/2 1/2 ]
[2 2 ]
[---- ---- ]
[ 2 2 ]
Matrice de passage orthogonale: P = [ ]
[ 1/2 1/2]
[2 2 ]
[---- - ----]
[ 2 2 ]
Directions principales de la conique:
[ 1/2 1/2] [ 1/2 1/2]
[2 2 ] [2 2 ]
I = [----, ----], J = [----, - ----]
[ 2 2 ] [ 2 2 ]
Conique à centre: c = [1/3, 10/3]
Equation dans (c,I,J):
2 2
6 X 8 Y 16
---- + ---- - -- = 0
7 7 21
2 2
9 X 3 Y
---- + ---- = 1
8 2
Ellipse de centre c
Elements caractéristiques dans (c,I,J):
1/2 1/2 1/2
2 2 6 2
a = ------, b = ----, c = ----
3 3 3
grand axe (ou axe focal): = (c, I)
excentricité (0<e<1) e = 1/2
sommets:
1/2 1/2 1/2 1/2
2 2 2 2 6 6
A1(- ------, 0), A2(------, 0), B1(0, - ----), B2(0, ----)
3 3 3 3
foyers:
1/2 1/2
2 2
F1(- ----, 0), F2(----, 0)
3 3
directrices:
1/2 1/2
4 2 4 2
X = - ------, X = ------
3 3
|
|
|
Revenir en haut de page |
|
 |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 25 Juil 2007 8:02 Sujet du message: equation d'une ellipse |
|
|
Merci pour votre réponse.
J'ai commis une erreur dans la transcription des données, il s'agit de F(3,0) et non F(0,3). Ma question reste la même : peut-on passer facilement et directement de l'équation réduite de la conique à son équation dans le repère xOy en sachant l'angle de rotation et la position du centre ? Merci. |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 25 Juil 2007 8:04 Sujet du message: |
|
|
Bonjour, voici comment passer de l'équation résuite eq à l'équation dans (0i,j) notée eq2:
Code: |
> eq:=9/8*X^2+3/2*Y^2-1;
2 2
9 X 3 Y
eq := ---- + ---- - 1
8 2
> with(linalg):
> R:=matrix([[sqrt(2)/2,sqrt(2)/2],[-sqrt(2)/2,sqrt(2)/2]]);
[ 1/2 1/2]
[ 2 2 ]
[ ---- ----]
[ 2 2 ]
R := [ ]
[ 1/2 1/2]
[ 2 2 ]
[- ---- ----]
[ 2 2 ]
> v:=evalm(R &* vector([x-1/3,y-10/3]));
[ 1/2 1/2
[2 (x - 1/3) 2 (y - 10/3)
v := [-------------- + ---------------,
[ 2 2
1/2 1/2 ]
2 (x - 1/3) 2 (y - 10/3)]
- -------------- + ---------------]
2 2 ]
> eq2:=subs(X=v[1],Y=v[2],eq);
/ 1/2 1/2 \2
|2 (x - 1/3) 2 (y - 10/3)|
9 |-------------- + ---------------|
\ 2 2 /
eq2 := -------------------------------------
8
/ 1/2 1/2 \2
| 2 (x - 1/3) 2 (y - 10/3)|
3 |- -------------- + ---------------|
\ 2 2 /
+ --------------------------------------- - 1
2
> simplify(eq2);
21 2 213 21 2
-- x + 3/8 x - 3/8 x y + --- - 69/8 y + -- y
16 16 16
> expand(16/21*%,x);
2 2
x + 2/7 x - 2/7 x y + 71/7 - 46/7 y + y
|
|
|
Revenir en haut de page |
|
 |
michel
Inscrit le: 23 Juin 2006 Messages: 72
|
Posté le: 25 Juil 2007 10:06 Sujet du message: courbe |
|
|
ça marche, merci beaucoup. A+ |
|
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.
|