restart; e1 := (X(t)-x)^2+(Y(t)-y)^2=S^2; e2 := F(x,y)=0; #position := fsolve({subs(t=1.2,e1),e2},{x,y}, # {x=x1..x2,y=y1..y2}); xyt := [x=x(t),y=y(t)]: e1 := subs(xyt,e1); e2 := subs(xyt,e2); Su0 := [DX=X-x,DY=Y-y]: Su1 := [diff(X(t),t)=Xt,diff(Y(t),t)=Yt, diff(x(t),t)=xt,diff(y(t),t)=yt, D[1](F)(x(t),y(t))=Fx(x,y),D[2](F)(x(t),y(t))=Fy(x,y), X(t)=DX+x(t),Y(t)=DY+y(t)]; e1d := subs(Su1,diff(e1,t)); e2d := subs(Su1,diff(e2,t)); Velocity := subs(subs(Su0,solve({e1d,e2d},{xt,yt})),[xt,yt]); Su0t := [DXt=Xt-xt,DYt=Yt-yt]: Su2 := [diff(X(t),t,t)=Xtt, diff(Y(t),t,t)=Ytt, diff(x(t),t,t)=xtt, diff(y(t),t,t)=ytt]; Su3 := [Xt=DXt+xt, Yt=DYt+yt]: Su4 := [D[1,1](F)(x(t),y(t))=Fxx(x,y), D[2,2](F)(x(t),y(t))=Fyy(x,y), D[1,2](F)(x(t),y(t))=Fxy(x,y)]; e1dd := subs(Su2,Su1,Su3,diff(e1,t,t)); e2dd := subs(Su2,Su1,Su4,diff(e2,t,t)); acceleration := solve({e1dd,e2dd},{xtt,ytt}): Acceleration := subs(subs(Su0t,Su0, collect(acceleration,[DX,DY,Fx,Fy])),[xtt,ytt]): Vx := unapply(Velocity[1],X,Y,Xt,Yt,x,y); Vy := unapply(Velocity[2],X,Y,Xt,Yt,x,y); Ax := unapply(Acceleration[1],X,Y,Xt,Yt,Xtt,Ytt,x,y,xt,yt); Ay := unapply(Acceleration[2],X,Y,Xt,Yt,Xtt,Ytt,x,y,xt,yt); save Vx, Vy, Ax, Ay, "Functions.sav":