Rovnice oskulační kružnice

Hledáme tzv. oskulační kružnici, tedy kružnici s nejlepším dotykem k dané křivce

Její rovnice je

kruznice = (x-X)^2+(y-Y)^2==R^2

Chceme nalézt hodnoty X, Y a R kružnice dotýkající se grafu funkce f(x) v bodě x0.

Protože plánujeme zkoumat dotyk s grafem funkce, potřebujeme rovnici kružnice napsat jako funkci

yfcex=y/.Solve[ kruznice,y]

Tedy, jak vidět, jsou to dvě funkce, horní a dolní

{f1dolni,f1horni} = D[yfcex,x]

Vyjádříme-li ale odmocninu z rovnice kružnice, nejednoznačnost derivace odpadá

Simplify[f1dolni,kruznice&&y<Y]
Simplify[f1horni,kruznice&&y>Y]
rovnice1 = f'==%

Úplně stejně je to s druhou derivací neboť (((-y+Y))^3)==-(((y-Y))^3)

{f2dolni,f2horni}= D[yfcex,{x,2}];
Simplify[f2dolni,kruznice&&y<Y]
Simplify[f2horni,kruznice&&y>Y]
%==%%//Simplify
rovnice2= f'' ==%%

Konečně tak vyjádříme poloměr oskulační kružnice i její střed za pomoci funkčníh hodnot

(Jen R>0 dává smysl)

Solve[ kruznice && rovnice1 && rovnice2 ,{R,X,Y}]
oKruznice = %[[2]]

Problém: Namalujte obrázek

Řešení

fce = Function[t,Exp[-t^2]]
x0 = 0;f0=fce[x0];f1=fce'[x0];f2=fce''[x0];
hodnoty = {x->x0,y->f0,f'->f1,f''->f2};
oKruznice/.%
rkr= kruznice[[1]]-kruznice[[2]]/.%[[1]];
Show[ 
ContourPlot[ rkr,{x,-2,2},{y,0,1},Contours->{0},ContourShading->None,GridLines->Automatic],
Plot[fce[x],{x,-2,2}],
AspectRatio->Automatic
]