Berührungsbedingung Gerade Ellipse

Programmentwurf:

ellipse:b^2*x^2+a^2*y^2=a^2*b^2;
gerade:c*x+d*y=e;
l:solve([ellipse,gerade],[x,y]);
x1:ev(x,l);
BB:a^2*c^2+b^2*d^2-e^2=0;
BB:ev(BB,a=5,b=3,c=-1,d=3);
l:solve(BB,e);

Der Ausdruck unter der Wurzel (Diskriminante) muss noch automatisch extrahiert werden!

Abrechnung mit wxMaxima:

(%i8) ellipse:b^2*x^2+a^2*y^2=a^2*b^2;
(%o8) a^2*y^2+b^2*x^2=a^2*b^2
(%i9) gerade:c*x+d*y=e;
(%o9) d*y+c*x=e
(%i10) l:solve([ellipse,gerade],[x,y])$
(%i11) x1:ev(x,l);
(%o11) −(a*b*d*sqrt(−e^2+b^2*d^2+a^2*c^2)−a^2*c*e)/(b^2*d^2+a^2*c^2)
(%i12) BB:a^2*c^2+b^2*d^2-e^2=0;
(%o12) −e^2+b^2*d^2+a^2*c^2=0
(%i13) BB:ev(BB,a=5,b=3,c=-1,d=3);
(%o13) 106−e^2=0
(%i14) l:solve(BB,e);
(%o14) [e=−sqrt(106),e=sqrt(106)]

Geogebra:

par-tan