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: