 |
Apprendre Maple Site dédié au logiciel de calcul formel Maple
|
Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 16 Jan 2007 13:44 Sujet du message: distance entre deux droites |
|
|
bonjour,
dans le cas où deux droites ne sont pas sécantes,
je voudrai trouver la distance minimale entre celles-ci.
pour l'intersection j'ai voulu faire comme suit,
avec f(x) et g(x) les équations de droites mais apparement,
cette notation ne plaît pas :S
merci.
Code: | inter:=proc(f(x),g(x))
if f(x)=g(x) then
print(x);
print(f(x));
end if;
end proc; |
|
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 16 Jan 2007 14:29 Sujet du message: |
|
|
Bonjour, passer par les coefficients a,b,c et a1,b1,c1 des équations des deux droites D et D1 pour envisager les 3 cas: D=D1, D et D1 strictement parallèles et D et D1 sécantes.
Ceci se fait classiquement en discutant sur la nullité de certains déterminants. |
|
Revenir en haut de page |
|
 |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 16 Jan 2007 15:00 Sujet du message: |
|
|
bonjour, j'ai modifié mon code en conséquence,
mais il ne semble pas marcher
Code: | inter:=proc(a,b,c,a1,b1,c1)
local i,j;
f(x):=a*x^2+b*x+c;
g(x):=a1*x^2+b1*x+c1;
for i from -20 to 20 do
if f(x)=g(x) then
print(x,f(x));
else print(`non sécantes`);
end if;
end do;
end proc; |
[/code] |
|
Revenir en haut de page |
|
 |
ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 16 Jan 2007 16:53 Sujet du message: |
|
|
L'équation d'une droite est de la forme a*x+b*y+c=0 ici vous avez écrit celle d'une parabole... Oups!!!
Utiliser les déterminants du style
a b
a1 b1
qui vaut d1:=a*b1-a1*b.
Si d1=0, droites parallèles, sinon droites sécantes. |
|
Revenir en haut de page |
|
 |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 16 Jan 2007 17:59 Sujet du message: |
|
|
alors j'ai modifié mais je vois aps trop ce qu'on peut faire..
merci.
Code: | inter:=proc(a,b,c,a1,b1,c1)
local i,j;
f(x):=a*x+b*y+c;
g(x):=a1*x+b1*y+c1;
d1:=a*b1-a1*b.
# si d1=0, droites parallèles, sinon droites sécantes.
for i from -20 to 20 do
if f(x)=g(x) then
print(x,f(x));
else print(`non sécantes`);
end if;
end do;
end proc: |
|
|
Revenir en haut de page |
|
 |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 16 Jan 2007 23:32 Sujet du message: intersection ou distance minimale entre droites |
|
|
bonsoir,
alors j'ai encore modifié,
mais je ne sais pas quoi faire de d1,
en fait je ne comprends pas vraiment
la démarche à effectuer.
merci.
Code: | inter:=proc(a,b,c,a1,b1,c1)
local i,j,S,d1,x,y;
f(x):=a*x+b*y+c;
g(x):=a1*x+b1*y+c1;
d1:=a*b1-a1*b;
# si d1=0, droites parallèles, sinon droites sécantes.
S:=solve(f(x)=g(x),{x,y});
x:=subs(S,x);
y:=subs(S,y);
print(x,y);
end proc:
# envisager les 3 cas: D=D1, D et D1 strictement parallèles et D et D1 sécantes.
# Ceci se fait classiquement en discutant sur la nullité de certains déterminants.
inter(0,2,3,0,7,-5); |
|
|
Revenir en haut de page |
|
 |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 17 Jan 2007 11:29 Sujet du message: distance minimale |
|
|
bonjour,
je suis un peu plus réveillée ce matin,
donc j'ai fait le cas où c'est parallèle
mais si deux droites sont tangentes en plus l'infini ou quelquechose comme ça, ça ne me calculera pas de distance?
ça marche comme ça ?
merci.
Code: | > # exercice n°4
> inter:=proc(a,b,c,a1,b1,c1)
> local i,j,S,d1,x,y,D;
> f(x,y):=a*x+b*y+c;
> g(x,y):=a1*x+b1*y+c1;
> d1:=a*b1-a1*b;
>
> S:=solve({f(x,y)=g(x,y),f(x,y)=0,g(x,y)=0},{x,y});
> x:=subs(S,x);
> y:=subs(S,y);
> if solve({a*i=a1,b*i=b1},i)=NULL then print(x,y);
> elif d1=0 then
> point(A,3,f(3));
> point(B,3,g(3));
> D:=distance(A,B);
> print(`distance entre les droites`,D);
> else print(`droites non sécantes et non parallèles`);
> end if;
> end proc:
> inter(3,5,1,6,4,2,7); |
|
|
Revenir en haut de page |
|
 |
leyrassl
Inscrit le: 13 Jan 2007 Messages: 27
|
Posté le: 17 Jan 2007 11:38 Sujet du message: |
|
|
bonjour, j'ai modifié mon programme,
mais il subsiste un petit problème dans le cas où c'est parallèle:
Code: | > [color=red]inter(2,4,6,1,2,3);[/color]
Error, (in inter) wrong number (or type) of parameters in function subs |
merci.
Code: | > # exercice n°4
[color=red]> inter:=proc(a,b,c,a1,b1,c1)
> local i,j,S,d1,x,y,D,s,f,g,z,y1,y2;
> f(x,y):=a*x+b*y+c;
> g(x,y):=a1*x+b1*y+c1;
> d1:=a*b1-a1*b;
>
> with(geometry):
> S:=solve({f(x,y)=g(x,y),f(x,y)=0,g(x,y)=0},{x,y});
> x:=subs(S,x);
> y:=subs(S,y);
> if solve({a*i=a1,b*i=b1},i)=NULL then print(x,y);
> elif d1=0 then
> s:=solve(f(3,y1)=0,y1);
> y1:=subs(s,y);
> z:=solve(g(3,y2)=0,y2);
> y2:=subs(z,y2);
> point(A,3,y1);
> point(B,3,y2);
> D:=distance(A,B);
> print(`distance entre les droites`,D);
> else print(`droites non sécantes et non parallèles`);
> end if;
> end proc:
> inter(3,5,1,6,4,2,7);[/color] |
|
|
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.
|