1 Trac e D'une Courbe Explicite y F (X) : X Linspace (-3,3,10) y Sin (X) Plot (X, Y,'b-')
1 Trac e D'une Courbe Explicite y F (X) : X Linspace (-3,3,10) y Sin (X) Plot (X, Y,'b-')
1 Trac e D'une Courbe Explicite y F (X) : X Linspace (-3,3,10) y Sin (X) Plot (X, Y,'b-')
TP : Courbes paramétrées
obtenue par application de la fonction sinus à chacun des éléments xi du vecteur “x”.
3. Enfin, l’instruction : plot(x,y,’b-’) va créer une ligne brisée joignant les points (xi , yi ) entre eux.
Résumons notre programme SCILAB que nous allons sauvegarder dans le fichier “trace1.sce” :
x = linspace(-3,3,10);
y = sin(x);
plot(x,y,’b-’)
On trouvera le résultat du tracé dans la fenêtre graphique de SCILAB. Evidemment, le résultat n’est
pas très bon. Il faut donc augmenter le nombre de points de subdivision :
n = 1000;
x = linspace(-3,3,n);
y = sin(x);
plot(x,y,’b-’)
x 7→ x2 , x ∈ [−2, 2].
Remarque : On notera que exp(-x) crée un vecteur de la même taille que x, ainsi que sin(10*x). Pour la
multiplication terme à terme de ces deux vecteurs on utilise le produit .* au lieu de * .
1
2 Courbes implicites
• — L’ellipse de demi-axes a > 0 et b > 0 est définie par l’équation
implicite
x2 y 2
+ 2 = 1.
a2 b
Exercice 4 Tracer cette courbe pour a = 5 et b = 2, en se ramenant
au cas précédent, c’est-à-dire en considèrant√cette ellipse comme la
réunion des 2 courbes explicites y = f1 (x) = ab a2 − x2 et y = f2 (x) =
√
− ab a2 − x2 pour x ∈ [−a, a] (en différenciant les tracés).
Cependant, on peut remarquer que l’intersection de cette courbe avec la droite variable, passant par l’origine,
y = t x (le paramètre t définissant la pente de la droite) conduit à l’équation bi-carrée :
4 (1 + t2 )3 X 2 − 4 a2 (1 + t2 )2 X + t2 a4 = 0
avec X = x2 et bien sur y = t x (en omettant l’origine).
Exercice 5 Compléter le programme suivant permettant de déterminer les intersections de cette courbe avec
les droites y = ti x, ti = tan(θi ) pour des valeurs de θi comprises entre −π/2 et π/2.
// RESOLUTION de l’equation A X^2 + B X + C
// FOLIUM DE DURER : tracé par intersection
function [x1,x2] = Resol2(A,B,C)
// avec la droite variable y = tx
delta = B^2 - 4*A*C;
a = 10;
if (delta>= 0) then
pas = %pi/20;
x1 = (-B-sqrt(delta))/(2*A);
for theta = -%pi/2+0.01 : pas : %pi/2-0.01
x2 = (-B+sqrt(delta))/(2*A);
t = tan(theta);
else
A = ....;
error(’pas de racine’)
B = ....;
end
C = ....;
endfunction
[x1,x2] = Resol2(A,B,C);
if x1 >= 0 then
x = sqrt(x1); y = t*x;
plot(x,y,’bo’)
plot(-x,-y,’bo’)
end
if x2 >= 0 then
x = ....; y = ....;
plot(.....)
plot(.....)
end
end
Exercice 6 [Bonus] Appliquer la même idée pour la lemniscate de Bernouilli définie par l’équation
implicite
(x2 + y 2 )2 = a2 (x2 − y 2 )
Nous verrons ci-dessous que ces courbes admettent une représentation paramétrique plus commode pour
le tracé.
2
3 Les courbes paramétrées
La courbe paramétrée,
x = f (t)
, t ∈ [a, b]
y = g(t)
est constituée de l’ensemble des points du plan {(f (t), g(t)), t ∈ [a, b]}. Le graphe d’une fonction correspond
ainsi au cas f (t) = t.
• — Le programme “type”
Un programme SCILAB de base pour tracer la courbe paramétrée {(f (t), g(t)), t ∈ [a, b]} peut s’écrire
schématiquement sous la forme :
// Tracé courbe paramétrée
function x = f(t)
x = ...;
endfunction
function y = g(t)
y= ...;
endfunction les éléments signalés par “...” étant à compléter.
a = ....; b = ....;
n = ....;
T = linspace(a,b,n);
X = f(T);
Y = g(T);
plot(X,Y,...);
Exercice 7 Tracer le cercle d’équations paramétriques x = 3 cos(t), y = 3 sin(t), t ∈ [0, 2π], puis l’ellipse
d’équations paramétriques x = 5 cos(t), y = 2 sin(t), t ∈ [0, 2π].
x(t) = cos(k t)
y(t) = sin(h t)
Tracer cette courbe pour différentes valeurs entières de k et h. On pourra tester les couples (k, h) =
(1, 2), (3, 2), (3, 4), (5, 6), (9, 8), · · · et on choisira t ∈ [0, p π], avec p entier à tester.
3
Exercice 12 Le Folium de Durer : (que l’on retrouve donc ici sous forme paramétrique)
y = a2 sin(t) + sin(3 t)
• — Influence du paramétrage
On considère les deux paramétrisations suivantes du cercle unité (privé d’un point).
1 − t2
x (t) =
x1 (t) = cos(t) 2
1 + t2
t ∈ ] − π, π[ et t ∈ ] − ∞, +∞[
y1 (t) = sin(t)
2 t
y2 (t) =
1 + t2
Exercice 13 Tracer la première courbe paramétréeq pour t ∈ I1 = [−5π/6, 5π/6]. Tracer ensuite la deuxième
√ √
courbe paramétrée pour t ∈ I2 = [−a, a], avec a = (2 + 3)/(2 − 3).
Tracer enfin l’image de 30 points équirépartis dans chacun des intervalles I1 et I2 — voir figure ci-dessous.
Commentaires ?
t + t3
x = a
1 + t4
M (t) = t ∈ ] − ∞, +∞[
3
y =a t−t
1 + t4
Exercice 14 Compléter le programme ci-dessous permettant de tracer cette lemniscate pour t ∈ [−5, 5],
dans un premier temps avec 200 valeurs ti , puis ensuite avec seulement 30 valeurs tj . On tracera par ailleurs
en chacun de ces derniers points M (tj ) le vecteur dérivé M 0 (tj ) à l’aide de la fonction PlotVecteur(A,u)
ci-jointe (il sera judicieux d’utiliser un coefficient d’atténuation pour la norme de ces vecteurs). Analyser le
lien entre la norme des vecteurs dérivés (cinématique du paramétrage) et la précision du tracé.
4
//LEMNISCATE DE BERNOUILLI // FONCTIONS
clf function PlotSerretFrenet(M,dM)
a = 5; // trace le repère de Serret-Frenet au point M
// affichage avec 200 valeurs dans [-a,a] // de la courbe
n = 200; // dM est le vecteur dérivé de la courbe en M
t = linspace(-a,a,n); // on commence par normaliser le vecteur dM
x = a * (t + t.^3)./(1 + t.^4); dM = (1/sqrt(dM(1,1)^2 + dM(1,2)^2))*dM;
y = ....; T = M + dM;
plot(x,y, ’-b’) dN = [-dM(1,2) dM(1,1)];
// affichage avec 30 valeurs dans [-a,a] N = M + dN;
n = 30; plot(M(1,1),M(1,2),’bo’)
u = linspace(-a,a,n); plot([M(1,1) T(1,1)],[M(1,2) T(1,2)],’-b’)
x = a * (u + u.^3)./(1 + u.^4); plot([M(1,1) N(1,1)],[M(1,2) N(1,2)],’-b’)
y = ....; endfunction
plot(x,y, ’-ro’)
set(gca(),"isoview","on")
// Vecteur dérivé :
dx = a * ((1 + 3*u.^2).*(1 + u.^4) - 4*(u.^3).*(u + u.^3)) ./ ((1 + u.^4).^2);
dy = ....;
// Tracé des vecteurs dérivés function PlotVecteur(A,u)
// coef = coefficient d’atténuation // trace le vecteur u a partir du point A
coef = 1/3; B = A + u;
for i = 1 : size(u,2) plot([A(1,1) B(1,1)],[A(1,2) B(1,2)],’-r’)
M = [x(i) y(i)]; plot(A(1,1),A(1,2),’ro’)
dM = coef * [dx(i) dy(i)]; endfunction
PlotVecteur(...,...)
//PlotSerretFrenet(...,...)
end
Exercice 16 Tracer les courbes suivantes définies en coordonnées polaires (attention aux problèmes d’échelle !) :
1. La spirale logarithmique : ρ(θ) = eθ ,
2. la spirale d’Archimède : ρ(θ) = α θ, où α est une constante à choisir,
3. la courbe
ρ(θ) = sin(2θ)2 + (sin(4θ)4 )/2
θ ∈ [0, 2π]
5
4. la courbe
ε = 0.5, n = 5, θ ∈ [0, 2π]
ε = 0.5, n = 4.5, θ ∈ [0, 4π]
ρ(θ) = 1 + ε cos(nθ)
dans les cas suivants : ε = 1.5, n = 5, θ ∈ [0, 2π]
θ ∈ [0, 2π]
ε = 1, n = π, θ ∈ [0, 100π]
ε = 1, n = π, θ ∈ [0, 1000π]
Exercice 17 Tracer la courbe ρ(θ) = 2/ cos(θ), θ ∈ ] − π/2, π/2[. Bonus : donner la représentation en
coordonnées polaires de la droite d’équation y = x − 1, et tracer cette droite.
Exercice 20 Exécuter le script scilab suivant, que l’on modifiera ensuite pour tracer d’autres courbes 3D.
a = 0;
b = 2*%pi;
n = 400;
Par exemple, on tracera l’hélice circulaire de rayon R et de
t = linspace(a,b,n);
pas a :
x = sin(2*t);
y = sin(3*t);
x = R cos(t)
z = cos(3*t); y = R sin(t) t ∈ [0, 2kπ], k ∈ Z
param3d(x,y,z)
z = (2π/a) t
e = gce()
e.foreground = color(’red’);