Fra krumning til kurve.
Proceduren recreate(kap,a,b,c,d,f,g) skal som input have en funktion kap(t) (krumningsfunktionen (OBS: Proceduren regner krumning med fortegn i modsaetning til Edwards and Penney) og 6 reelle tal a,b,c,d,f,g. Den plotter en kurve, alpha(t) med t i [a,b] og saadan at alpha(0)=(0,0) og alpha'(0)=(0,0) og krumningen af alpha er kap(t). Dette plottes i vinduet [c,d]x[f,g]. Proceduren er oprindeligt lavet af John Oprea.
restart;with(plots):recreate:=proc(kap,a,b,c,d,f,g)
local sys,b1,b2,p,theta,pl;
sys:=diff(theta(s),s)=kap(s), diff(b1(s),s)=cos(theta(s)),diff(b2(s),s)=sin(theta(s));
p:=dsolve({sys,theta(0)=0,b1(0)=0,b2(0)=0},{theta(s),b1(s),b2(s)},type=numeric):
pl:=odeplot(p,[b1(s),b2(s)],a..b,numpoints=200,thickness=1,axes=framed,color=red):
display(pl,view=[c..d,f..g]);
end:kap1:=t->t:
Denne kurve er en Klotoide, en kurve, hvis krumningsfunktion er lineaer.recreate(kap1,-8,8,-2,2,-2,2);
kap2:=t->t^2:recreate(kap2,-8,8,-2,2,-2,2);kap3:=t->exp(t):recreate(kap3,-8,8,-2,2,-2,2);kap4:=t->sin(t):recreate(kap4,-8,8,-2,2,-2,2);kap5:=t->sin(t)*t:recreate(kap5,-8,8,-2,2,-2,2);kap6:=t->sin(t)*t^2:recreate(kap6,-8,8,-2,2,-2,2);kap7:=t->1/(1+t^2):recreate(kap7,-8,8,-2,2,-2,2);