% http://geometrie.hs-nb.de/MATLAB-Programme/DEllEll.m   Bearbeitungsstand: 11.10.2004
% (C) Martin Nitschke, nitschke@hs-nb.de

format('long')

% Deklaration der symbolischen Variablen
syms('x0','y0','a','b','alph','t','real');
% Faktor für Umrechnung  ° -> rad
deg=sym(pi)/180;
% Definition der Ellipsen
E=[x0 + a*cos(alph)*cos(t) - b*sin(alph)*sin(t)
   y0 + a*sin(alph)*cos(t) + b*cos(alph)*sin(t)];
M1=[2 1];  M2=[10 6];
P=subs(E,{a b alph x0 y0},{1.5 1.2  70*deg M1(1) M1(2)});
Q=subs(E,{a b alph x0 y0},{2.0 1.0 110*deg M2(1) M2(2)});
% Parametrisierungen als Inline-Funktionen
Px=inline(char(P(1)),'t');  Py=inline(char(P(2)),'t');
Qx=inline(char(Q(1)),'t');  Qy=inline(char(Q(2)),'t');
% zu minimierende Funktion als Inline-Funktion
d=inline('norm([Px(u(1));Py(u(1))]-[Qx(u(2));Qy(u(2))])'...
  ,'u','Px','Py','Qx','Qy');
% Näherungen für t und s
u0=[0 0];
% Minimierung
u=fminsearch(d,u0,[],Px,Py,Qx,Qy)
tStern=u(1);  sStern=u(2);
PStern=[Px(tStern) Py(tStern)]
QStern=[Qx(sStern) Qy(sStern)]
Abstand=norm(PStern-QStern)