Kapitel 4
Funktionsuntersuchungen: Variante 1, Variante 2
Numerische Lösung einer Gleichung
Schnitt eines Kreises mit einer Geraden
> restart:
> f:=x->5*exp(-0.1*x)*sin(x);
> plot(f, 0..3*Pi);
> f(3.0);
> with(LinearAlgebra):
> seq(<n/8*Pi|evalf(f(n/8*Pi),4)>,n=0..8);
> Transpose(<seq(<i/8*Pi|evalf(f(i/8*Pi),4)>,i=0..8)>);
> with(Spread):
> Tabelle:=CreateSpreadsheet():SetMatrix(Tabelle,Transpose(<seq(<i/8*Pi|evalf(f(i/8*Pi),4)>,i=0..24)>)):EvaluateSpreadsheet(Tabelle);
>
>
plot( [abs@f,0.1], 10*Pi..15*Pi,numpoints=300,xtickmarks=3,ytickmarks=4,thickness=2);
> solve((abs@f)(x)=0.1,x);
>
> fsolve((abs@f)(x)=0.1,x=36..38);
> f(%);
>
Funktionsuntersuchung
Variante 1: mit Termen
> restart:
> f:=x^2/(x^2-4);
> plot(f, x=-5..5,-10..10);
>
> solve(denom(f)=0,x);
> is(f=subs(x=-x,f));
> quo(x^2, x^2-4, x); convert(f,parfrac,x);
alternativ
> limit(f,x=infinity);
> limit(f,x=-infinity);
> f1 := diff(f,x);
> plot(f1,x=-5..5,-10..10);
> solve(f1=0,x);
> f2:=simplify(diff(f1,x));
> eval(f2,x=0);
> solve(f2=0,x);
> plot(f2,x=-5..5, -10..10);
>
Funktionsuntersuchung
Variante 2: mit Funktionen
> restart:
> f:=x->x^2/(x^2-4);
> f(3);
> plot(f(x), x=-5..5,-10..10);
> solve(denom(f(x))=0,x);
> solve(f(x)=f(-x));
> quo(x^2, x^2-4, x);
> f1 := D(f);
> plot(f1(x),x=-5..5,-10..10);
> solve(f1(x)=0,x);
> f2:=unapply( simplify(D(f1)(x)), x);
> f2(0);
> solve(f2(x)=0,x);
> plot(f2(x),x=-5..5, -10..10);
>
> restart:
> f:=x->x/8+2/x;
> plot([f,[[2.5,0],[2.5,f(2.5)]],[[5.5,0],[5.5,f(5.5)]]],0..15,0..5,color=[black,blue,blue]);
> flaeche:=unapply(int(f(x),x=start..start+3),start);
> plot(flaeche,1..10,1..5);
>
> minimize(flaeche(start),start=0..infinity,location);
> evalf(%);
Konventioneller Lösungsweg über die Nullstellen der Ableitung der Flächeninhaltsfunktion:
> dfl:=D(flaeche);
> lsg:=solve(dfl(x)=0,x);
> evalf(lsg);
> flaeche(lsg[1]);
> evalf(%);
>
>
> restart;
> ellipse:= 9*x^2+16*y^2=144;
> flaeche:=a=4*x*y;
> solve({ellipse,flaeche},{a,y});
> allvalues(eval(a,%));
> a:=%[1];
> a0:=diff(a,x);
> solve(a0);
> x0:=max(%);
> eval(ellipse,x=x0);
> solve(%);
> y0:=max(%);
> eval(a,{x=x0, y=y0}); simplify(%);
> with(plots): implicitplot(ellipse, x=-5..5,y=-5..5,scaling=constrained );
Warning, the name changecoords has been redefined
> solve(ellipse,y);
> f:=%[1];
> ellvol:= Pi * int(f^2, x=-4..4);
> zylvol:= y0^2* Pi *2*x0;
Altenative Lösung mit extrema
> restart;
>
> extrema(4*x*y, {9*x^2+16*y^2=144}, {x,y}, 'lsg');
> lsg;
> allvalues(lsg);
>
Altenative Lösung mit Funktionen
> restart:
> ellipse:=9*x^2+16*y^2=144;
> solve(ellipse,y);
> f:=unapply(%[1],x);
> rechteck:=unapply(4*x*f(x),x);
> flaeche,xwert:=maximize(rechteck(x),x=0..4,location);
> xwert:=rhs(xwert[1,1,1]);
> ywert:=simplify(f(xwert));
> plot(rechteck,0..4);
>
>
> restart:
> sol:=solve(z^3=(3+4*I)^5/(4-3*I)^2);
> with(plots):
Warning, the name changecoords has been redefined
> complexplot([sol], style=point,symbol=box);
> sol:=evalf(solve(z^2+4*z+13=0),5);
> sol:=evalf(solve(z^2+(5+5*I)*z-24+40*I), 5);
>
>
> restart;
> plot( [2 * cos(t), cos(3*t), t=0..Pi] );
> solve( {x=2*cos(t), y=cos(3*t)}, {t,y});
> y:= unapply(expand(eval(y,%)),x);
> plot(y,-2..2);
> solve(y(x)=0,x);
> 2*int(y(x),x=-sqrt(3)..0);
>
>
Numerische Lösung von Gleichungen
> restart:with(plots):
Warning, the name changecoords has been redefined
> r:=30;rho:=0.76;
> Holzmasse:=unapply(evalf(l*r^2*Pi*rho),l);
> implicitplot(x^2+(y+12)^2=r^2,x=-r..r,y=-r-12..r-12,scaling=constrained,color=black);
> Wassermasse:=unapply(l*2*int(sqrt(r^2-x^2), x=-30..-30+et),l);
> plot([Wassermasse(1),Holzmasse(1)], et=0..60,color=[black,blue]);
> gl:=Wassermasse(länge)=Holzmasse(länge);
> gl:=gl / länge;
Maple findet keine symbolische Lösung (wen wundert das?)
> solve(gl,et);
also eine Näherung:
> fsolve(gl,et);
> evalf( subs(et=%,Wassermasse(länge)));
>
Schnitt eines Kreises mit einer Geraden
> restart;with(plots):
Warning, the name changecoords has been redefined
> kreis:=x^2+y^2+6*y-91=0: kurve:= y=a*x^2+b:
> lsgkr:=solve( {kreis, x=6,y>0},{x,y});
> dkreis:=implicitdiff(kreis,y,x);
> dkurve:=diff(rhs(kurve),x);
> gl1:=eval(kurve,lsgkr);
> gl2:=eval(dkurve*dkreis=-1,lsgkr);
> solve({gl1,gl2});
> assign(%);
> kurve;
> implicitplot( {kreis,kurve}, x=-10..10,y=-15..10, scaling=constrained);
>
>
> restart;
> p1:=[-8, 0]: p2:=[2, 2]: p3:= [2,-10]: p1,p2,p3;
> circle := (x-mx)^2 + (y-my)^2 = rad^2;
> subs( x=p1[1], y=p1[2], circle);
> seq( subs( x=p||i[1], y=p||i[2], circle), i=1..3);
> solve({%});
> allvalues(%);
Alternative Lösung mit geometry
> restart: with(geometry):
> point(A, -8,0), point(B, 2,2), point(C, 2,-10):
> triangle(T, [A,B,C]):
> circle(Ci, [A,B,C]):
> coordinates(center(Ci));
> radius(Ci);
>
> draw( [T, Ci], scaling=constrained, axes=normal );
>
>
> restart;
> kugel:=x^2+y^2+z^2=45;
> gerade:={ x=9-12*t, y=-15+30*t, z=18-24*t};
> glsys:=gerade union {kugel};
schnitt:=solve(glsys);
> n1:=eval(<x|y|z>,schnitt[1]);
> n2:=eval(<x|y|z>,schnitt[2]);
> with(LinearAlgebra):
> ebene1 := n1 . (<x,y,z>-Transpose(n1))=0 ;
> ebene2 := n2 . (<x,y,z>-Transpose(n2))=0;
> sn2:=solve( {ebene1,ebene2}, {x,y,z});
> gerade:= <x,y,z> = subs(x=r,eval(<x,y,z>,sn2));
Alternative Lösung mit geom3d .
> restart:with(geom3d):
Warning, the name polar has been redefined
> _EnvXName:='x':_EnvYName:='y':_EnvZName:='z':_EnvTName:=t:
> sphere(K1,x^2+y^2+z^2=45);
> detail(K1);
> point(P1,9,-15,18);point(P2,-3,15,-6);
> line(g1,[P1,P2]);
> Equation(g1);
> intersection(pl,g1,K1);
geom3d/areinterls: "two points of intersection"
> coordinates(pl[1]);
> coordinates(pl[2]);
> TangentPlane(ebene1,K1,pl[1]);
> Equation(ebene1);
> TangentPlane(ebene2,K1,pl[2]);
> Equation(ebene2);
> intersection(g2,ebene1,ebene2);
> detail(g2);
> draw([g1(thickness=4,color=blue),g2(thickness=4,color=blue),K1(style=HIDDEN,color=black),ebene1(style=HIDDEN,color=red),ebene2(style=HIDDEN,color=red)],orientation=[22,85],view=[-10..10,-10..10,-10..10]);
>
Warum g2 nicht gezeichnet wird ist unerfindlich
>
>
>
> restart:
> v0:=126*1000/3600;
> v1:=unapply(piecewise(t<3,v0,t>=3,v0-6*(t-3)),t);
> v2:=unapply(piecewise(t<4,v0,t>=4,v0-8*(t-4)),t);
> plot([v1,v2],0..10,0..40,color=[black,blue]);
> stop1:=solve(v1(t)=0);evalf(%);
> stop2:=solve(v2(t)=0);evalf(%);
> s1:=unapply(12+int(v1(t1),t1=0..t),t);
> s2:=unapply(int(v2(t1),t1=0..t),t);
> solve((s1-s2)(t)=0,t);
> s1(7),s2(7);
> v1(7),v2(7);
> plot(s1-s2,0..stop1);
>