4. Obálka soustavy rovinných křivek – Příklad 4.6 – Normály elipsy a dalších vybraných křivek

Nalezněte obálku normál elipsy [Maple OLE 2.0 Object].

Řešení

PDF

Použijeme stejných procedur jako v předešlém příkladě:

> restart:with(plots):setoptions(scaling=constrained):
> evolute:=proc(f)

local df,ddf,dfdf,dfddf,r_osc;
df:=diff(f(t),t);
ddf:=diff(f(t),t$2);
dfdf:=df[1]*df[1]+df[2]*df[2];
dfddf:=df[1]*ddf[2]-df[2]*ddf[1];
r_osc:=t->[-df[2]*dfdf/dfddf,df[1]*dfdf/dfddf];
simplify(evalm(f(t)+r_osc(t)));

end:

> plot_evolute:=proc(f,t1,t2,k)

local df,ddf,dfdf,dfddf,r_osc,n_par,N_PLOT,F_PLOT;
df:=diff(f(t),t);
ddf:=diff(f(t),t$2);
dfdf:=df[1]*df[1]+df[2]*df[2];
dfddf:=df[1]*ddf[2]-df[2]*ddf[1];
r_osc:=t->[-df[2]*dfdf/dfddf,df[1]*dfdf/dfddf];
n_par:=evalm(f(t)+s*r_osc(t));
N_PLOT:=seq(plot([n_par[1],n_par[2],s=-1..1],color=blue),t=seq(t1+(t2-t1)*i/k,i=0..k)):
F_PLOT:=plot([f(t)[1],f(t)[2],t=t1..t2],thickness=3,color=red):
display({N_PLOT,F_PLOT},scaling=constrained);

end:
> ellipse:=t->[a*cos(t),b*sin(t)];

ellipse := proc (t) options operator, arrow; [a*cos(t), b*sin(t)] end proc

> evolute(ellipse);

vector([cos(t)^3*(-b^2+a^2)/a, -sin(t)^3*(-b^2+a^2)/b])

a:=5;b:=3;plot_evolute(ellipse,0,2*Pi,32);

a := 5
b := 3
[Maple Plot]

Uvedené procedury můžeme vyzkoušet např. také při hledání obálky normál paraboly, traktrix, srdcovky nebo logaritmické spirály:

> parabola:=t->[t,t^2];

parabola := proc (t) options operator, arrow; [t, t^2] end proc

> evolute(parabola);

vector([-4*t^3, 1/2+3*t^2])

> plot_evolute(parabola,-1,1,20);

[Maple Plot]

> tractrix:=t->[a*(ln(tan(t/2)))+cos(t),a*sin(t)];

tractrix := proc (t) options operator, arrow; [a*ln(tan(1/2*t))+cos(t), a*sin(t)] end proc

> a:=1:plot_evolute(tractrix,0.25,Pi-0.25,30);

[Maple Plot]

> cardioid:=t->[2*r*cos(t)-r*cos(2*t),2*r*sin(t)-r*sin(2*t)];

cardioid := proc (t) options operator, arrow; [2*r*cos(t)-r*cos(2*t), 2*r*sin(t)-r*sin(2*t)] end proc

> r:=1:plot_evolute(cardioid,0.1,2*Pi-0.1,46);

[Maple Plot]

> logspiral:=t->[a^t*cos(t),a^t*sin(t)];

logspiral := proc (t) options operator, arrow; [a^t*cos(t), a^t*sin(t)] end proc

> a:=1.5:plot_evolute(logspiral,0*Pi,2*Pi,37);

[Maple Plot]
Stránky Přírodovědecké fakulty MU
| Technická spolupráce:
| Servisní středisko pro e-learning na MU, 2008
| Stránky střediska na Elportále