kapitel-11maple.mw

Mathematik

von T. Arens, F. Hettlich, Ch. Karpfinger, U. Kockelkorn, K. Lichtenegger,  H. Stachel

(zu Kapitel 11 / 12:  Integralrechnung)

> restart;

Intgralrechnung

Die Stammfunktion zu einem gegebenen Ausdruck wird in Maple durch den Befehl int bestimmt.

> int(x*ln(x),x);

1/2*x^2*ln(x)-1/4*x^2

Wenn fuer die Integrationsvariable ein Bereich angegeben wird, so wird das bestimmte Integral ausgewertet.

> int(ln(x)/sqrt(x),x=0..1);

-4

Offensichtlich werden auch unbeschraenkte Funktionen und/oder Intervalle  beruecksichtig. Wir koennen zum Beispiel  auch die Laplacetransformierte zu f(t) = t bestimmen.

> assume(s>0); int(t*exp(-s*t),t=0..infinity);

1/s^2

Dabei ist aber die Voraussetzung an s erforderlich, damit die Existenz des Integrals gesichert ist.

Eine ganze Reihe von Integralen, die nicht geschlossen auswertbar sind, sind als Funktionen bekannt. So erhalten wir  

> int(sin(x)/x,x); int(exp(-x^2),x);

Si(x)

1/2*Pi^(1/2)*erf(x)

( erf, ... ). Geben wir Intervallgrenzen in solchen Faellen an, so wird als Resultat der entsprechende Ausdruck angezeigt.

> int(sin(x)/sqrt(x),x=0..1);

FresnelS(2^(1/2)/Pi^(1/2))*2^(1/2)*Pi^(1/2)

Eine numerische Auswertung erreichen wir durch

> evalf(int(sin(x)/sqrt(x),x=0..1));

.6205366026

(siehe int[numerical] ). Eine numerische Berechnung eines Integrals ohne die vorhergehende algebraische Behandlung, laesst sich auch erzwingen. Dazu dient der Befehl Int , der zunaechst keine Auswertung des Inetgrals durchfuehrt. Zusammen mit evalf wird ein numerisches Verfahren zur Approximation des bestimmten Integrals herangezogen.

> Int(sqrt(x)/sin(x),x=0..1);
evalf(%);

Int(x^(1/2)/sin(x), x = 0 .. 1)

2.071330006

Wenn nichts anderes vereinbart ist, wird das Clenshaw-Curtis Verfahren zum numerischen Integrieren verwandt. Es lassen sich auch andere Verfahren (z.B. eine Newton-Cotes Formel) auswaehlen. Ausserdem kann  die Anzahl der genauen Dezimalstellen (hier 20) festgelegt werden.

> evalf(Int((x^3+1)/(x^5-x^2+1),x=0..1, 20, _NCrule));

1.5491695781634960123

Im Paket "student" sind unter anderem auch die Trapez- und die Simpsonregel zu finden.

> with(student);

[D, Diff, Doubleint, Int, Limit, Lineint, Product, Sum, Tripleint, changevar, completesquare, distance, equate, integrand, intercept, intparts, leftbox, leftsum, makeproc, middlebox, middlesum, midpoi...[D, Diff, Doubleint, Int, Limit, Lineint, Product, Sum, Tripleint, changevar, completesquare, distance, equate, integrand, intercept, intparts, leftbox, leftsum, makeproc, middlebox, middlesum, midpoi...

(Bem.: Leider ist der  Befehle Int jetzt leicht modifiziert, so dass die numerischen Optionen wie oben beschrieben nicht mehr akzeptiert werden. Sie koennen dies mit restart wieder rueckgaengig machen).

> trapezoid(x^n*sin(x),x=0..Pi);
simpson(x^n*sin(x),x=0..Pi);

1/4*Pi*(Sum((1/4*i*Pi)^n*sin(1/4*i*Pi), i = 1 .. 3))

1/12*Pi*(4*(Sum((1/4*(2*i-1)*Pi)^n*sin(1/4*(2*i-1)*Pi), i = 1 .. 2))+2*(Sum((1/2*i*Pi)^n*sin(1/2*i*Pi), i = 1 .. 1)))

 

Die Anzahl der Stuetzstellen laesst sich  durch ein zusaetzliches Argument frei waehlen.

> simpson(x^3*sin(x),x=0..Pi,20);
evalf(%);

1/60*Pi*(4*(Sum(1/8000*(2*i-1)^3*Pi^3*sin(1/20*(2*i-1)*Pi), i = 1 .. 10))+2*(Sum(1/1000*i^3*Pi^3*sin(1/10*i*Pi), i = 1 .. 9)))

12.15663280

Mit einer Schleife koennen wir  nun leicht eine Tabellen erzeugen, um das Konvergenzverhalten zu studieren,

> a:=evalf(1/4*(1-exp(-4))): for j from 2 to 6 do
  2^j, abs(evalf(trapezoid(exp(-4*x),x=0..1,2^j))-a),     abs(evalf(simpson(exp(-4*x),x=0..1,2^j))-a);

od;

4, 0.201188128e-1, 0.12165966e-2

8, 0.50917615e-2, 0.827444e-4

16, 0.12769053e-2, 0.52866e-5

32, 0.3194755e-3, 0.3322e-6

64, 0.798844e-4, 0.208e-7

In Hinblick auf die Partialbruchzerlegung, ist es nuetzlich an dieser Stelle auf einige Umformungen rationaler Ausdrueck einzugehen. Betrachten wir zum Beispiel den Ausdruck

> r:=(x^3+2*x^2-x+1)/(x^3-2*x^2-x+2);

r := (x^3+2*x^2-x+1)/(x^3-2*x^2-x+2)

Die Partialbruchzerlegung von r erhalten wir durch convert mit entsprechender Option.

> convert(r,parfrac,x);

1+1/2/(x+1)+5/(x-2)-3/2/(x-1)

Um einzelne Schritte zu ueberpruefen, definieren wir zunaechst mit den Befehlen numer und denom  Zaehler- und Nennerpolynom.

> p:=numer(r); q:=denom(r);

p := x^3+2*x^2-x+1

q := x^3-2*x^2-x+2

Eine Polynomdivision ist durch

> r1:=quo(p,q,x) + rem(p,q,x)/q;

r1 := 1+(-1+4*x^2)/(x^3-2*x^2-x+2)

gegeben, d.h. quo ermittelt den Quotienten und rem den  Rest. Wir pruefen das Resultat durch

> evalb(r=normal(r1));

true

Neben dem Befehl normal sind auch weitere Umformungsbefehle nuetzlich, z.B.

> expand(r);

x^3/(x^3-2*x^2-x+2)+2*x^2/(x^3-2*x^2-x+2)-x/(x^3-2*x^2-x+2)+1/(x^3-2*x^2-x+2)

(siehe weitere Hinweise in den Hilfen). Die Faktorisierung des Nenners ergibt sich aus

> factor(q);

(x-1)*(x-2)*(x+1)

>

Aufgaben

(Um Aufgaben zu bearbeiten oeffnen Sie bitte ein neues Worksheet und probieren Sie dort ihre Befehle aus. Einen Loesungsvorschlag erhalten Sie, wenn sie die Loesung oeffnen. Dies sollten Sie aber erst nach eigenen Versuchen nutzen.)

1. Berechnen Sie die bestimmten Integrale
    
Int(x*ln(x+3), x = 0 .. 1) ,        Int(ln(x)^2, x = 1 .. 2) ,          Int(1/(sqrt(x+2)*(3-x)), x = -1 .. 1)

>

Loesung

2. Bestimmen Sie Stammfunktionen zu folgenden Funktionen,

        a)    f(x) = (5*x^2-11*x+5)/(x^3-4*x^2+5*x-2) ,                                   b)    f(x) =  (x^3+6*x^2+3*x+18)/(x^3+x^2+4*x+4) ,
  

       c)    f(x) = (cos(x)+sin(x)+1)/((1+cos(x))*(1-cot(x/2))) ,                     d)    f(x) = (exp(2*a*x)+1)/(exp(a*x)+1) .  

>

Loesung

3.  Fuehren Sie eine Polynomdivision p/q von  

p(x) = x^5+x^3-2*x+1   und  q(x) = x^3+x^2-x-1

    durch und bestimmen Sie die Partialbruchzerlegung von p/q.

>

Loesung

>

>