{VERSION 2 3 "IBM RISC UNIX" "2.3" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 }{CSTYLE " " -1 256 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 261 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 }{PSTYLE "Norm al" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 62 "Erweiterung der Musterloe sung zu Aufgabe 4 aus der 14. Sitzung" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 101 "Es geht im folgenden darum, Stammfunktio nen von beliebigen Differentialausdruecken zu bestimmen. Sei " }{TEXT 259 6 "u=u(x)" }{TEXT -1 52 " eine unbestimmte Funktion in einer Vari ablen und " }{XPPEDIT 18 0 "expr=F(u,u[x],u[xx],`..`,u[``(k+1)])" "/% %exprG-%\"FG6'%\"uG&F'6#%\"xG&F'6#%#xxG%#..G&F'6#-%!G6#,&%\"kG\"\"\"\" \"\"F6" }{TEXT -1 34 " mit einem beliebigen Ausdruck F. " }}}{EXCHG {PARA 0 "" 0 "" {TEXT 256 8 "Aufgabe:" }{TEXT -1 35 " Implementiere e inen Integrierer " }{TEXT 257 29 "Int:=proc( expr , x ) ... end" } {TEXT -1 40 " , der in der Lage ist, alle Ausdruecke " }{TEXT 258 4 "e xpr" }{TEXT -1 49 ", die die Ableitung eines Differentialausdrucks " }{XPPEDIT 18 0 "G(u,u[x],u[xx],`..`,u[``(k)])" "-%\"GG6'%\"uG&F%6#%\"x G&F%6#%#xxG%#..G&F%6#-%!G6#%\"kG" }{TEXT -1 16 " zu integrieren." }} {PARA 0 "" 0 "" {TEXT -1 75 "Der Algorithmus wird in Kapitel 8.13.5 de r Vorlesung/des Skriptes erklaert." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart:" }}{PARA 0 "" 0 "" {TEXT -1 89 "Die folgende \+ Prozedur durchsucht einen beliebigen Ausdruck nach Teilausdruecken der Form " }{TEXT 260 15 "diff(u(x),x$k) " }{TEXT -1 41 " und bestimmt di e Anzahl der Ableitungen " }{TEXT 262 1 "k" }{TEXT -1 2 " :" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 266 "diffOrdnung:=proc(expr,x::name) local i; option remember;\n if type(expr,\{string,integer\}) then RETURN(0);f i;\n if op(0,expr)=diff and op(2,expr)=x \n then RETURN(1+procnam e(op(1,expr),x));\n fi;\n RETURN(max(seq(diffOrdnung(op(i,expr),x),i =1..nops(expr))));\nend:" }}{PARA 0 "" 0 "" {TEXT -1 133 "Die folgende Prozedur sucht in einem beliebigen Ausdruck den Teilausdruck diff(u(x ),x$k) , der den Wert diffOrdnung(expr,x) erzeugt:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 288 "hoechsterTerm:=proc(expr,x::name) local term; opt ion remember;\n for term in expr do\n if diffOrdnung(term,x)=diffO rdnung(expr,x)\n then RETURN(hoechsterTerm(term,x));\n fi;\n \+ od;\n if op(0,expr)=diff and op(2,expr)=x then RETURN(expr) fi;\n E RROR(`should not arrive here`);\nend:" }}{PARA 0 "" 0 "" {TEXT -1 10 " Der Name " }{TEXT 261 3 "Int" }{TEXT -1 46 " ist geschuetzt und mus s freigegeben werden:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "unprotect( Int):" }}{PARA 0 "" 0 "" {TEXT -1 147 "Die folgende Integration findet Stammfunktionen eines Differentialausdrucks F(u0,...,u.k,u.(k+1)) in \+ einer Funktion u0=u(x) in einer Variablen x :" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 207 "Int:=proc(expr,x::name)\nlocal F,Hoechster,lambda,g; \noption remember;\n F:=expand(expr):\n if F=0 then RETURN(0); fi;\n if diffOrdnung(F,x)=0 then RETURN('procname(args)');fi;\n Hoechster :=hoechsterTerm(F,x);" }}{PARA 0 "" 0 "" {TEXT -1 39 " # Sei Hoechs ter=u.(k+1). Zerlege " }}{PARA 0 "" 0 "" {TEXT -1 73 " # \+ F = h(u0,..,u.k)+f(u0,..,u.k)*u.(k+1) +R(u0,..,u.k,u.(k+1))" }}{PARA 0 "" 0 "" {TEXT -1 141 " # wobei der Rest R(u0,...,u.(k+1)) nichtli near in u.(k+1) ist. Dieser Teil hat definitiv keine\n # Stammfunkt ion und wird abgespalten:\n" }{MPLTEXT 1 0 59 " if not type(F,linear( Hoechster)) then\n if type(F,`+`)" }{TEXT -1 25 " # F = h + f*u.( k+1) + R" }{MPLTEXT 1 0 2 " \n" }{TEXT -1 0 "" }{MPLTEXT 1 0 46 " \+ then remove(type,F,linear(Hoechster));" }{TEXT -1 6 " # h+R" } {MPLTEXT 1 0 39 "\n remove(has,F,Hoechster); " }{TEXT -1 28 "# dies ist h, d.h., R=\" \"-\";" }}{PARA 0 "" 0 "" {TEXT -1 15 " \+ " }{MPLTEXT 1 0 105 " RETURN('procname'(\"\"-\",x)+p rocname(F+\"-\"\",x));\n else RETURN('procname'(F,x));\n fi ;\n fi;" }}{PARA 0 "" 0 "" {TEXT -1 138 " # Nun gilt F = h(u0,.., u.k) + f(u0,..,u.k)*u.(k+1)\n # Bestimme f(u0,..,u.k) und durch Inte gration g(u0,..,u.k) mit diff(g,u.k)=f: " }{MPLTEXT 1 0 24 "\n coeff (F,Hoechster,1);" }{TEXT -1 26 " # dies ist f(u0,..,u.k)" }{MPLTEXT 1 0 1 "\n" }{TEXT -1 0 "" }{MPLTEXT 1 0 33 " subs(op(1,Hoechster)=lam bda,\");" }{TEXT -1 24 " # u.k = op(1,Hoechster)" }{MPLTEXT 1 0 20 "\n g:=int(\",lambda);" }{TEXT -1 23 " # Integration nach u.k" } {MPLTEXT 1 0 2 "\n " }{TEXT -1 56 "# Wenn der Systemintegrierer keine \+ Stammfunktion findet:" }{MPLTEXT 1 0 99 "\n if has(\",int) then RETUR N('procname(args)');fi;\n g:=simplify(subs(lambda=op(1,Hoechster),g)) ;\n " }{TEXT -1 158 "# Nach Konstruktion gilt diff(g,x) = diff(g,u0 )*u1 +...+ diff(g,u.k)*u.(k+1)\n # sodass F-diff(g,x) gar nicht meh r Hoechster=u.(k+1) enthaelt. Allerdings" }}{PARA 0 "" 0 "" {TEXT -1 148 " # werden nicht alle Ausdruecke automatisch so weit vereinfacht, dass diese\n # Abhaengigkeit herausfaellt. Setze daher einfach Hoech ster=0 ein, um" }}{PARA 0 "" 0 "" {TEXT -1 32 " # simplify zu unters tuetzen:\n" }{MPLTEXT 1 0 44 " simplify(subs(Hoechster=0,F-diff(g,x)) );\n " }{TEXT -1 151 "# Offensichtlich gilt Int(F,x) = g + Int( F-dif f(g,x) , x) ,\n # wobei der verbleibende Integrand F-diff(g,x) eine niedrigere Diffordnung als F hat." }{MPLTEXT 1 0 26 "\n g+procname( \",x);\n end:\n" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 263 13 "Einige Tests: " }}{PARA 0 "" 0 "" {TEXT -1 13 "Abkuerzungen:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 46 "alias(u=u(x),seq(u.i=diff(u(x),x$i),i=1..20)):" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "stammfunktion:=Int(diff(u,x$5),x); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%.stammfunktionG%#u4G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 49 "stammfunktion:=Int(u6^2+diff(u5*exp (u2)*u3,x),x);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%.stammfunktionG,&- %$IntG6$*$%#u6G\"\"#%\"xG\"\"\"*(%#u5GF--%$expG6#%#u2GF-%#u3GF-F-" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "expr:=u^5*diff(u^10,x$5); " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "stammfunktion:=Int(diff(expr,x),x );" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "test:=expand(\"\"-\");" }} {PARA 12 "" 1 "" {XPPMATH 20 "6#>%%exprG*&%\"uG\"\"&,0*&F&F'%#u1GF'\"& S-$*(F&\"\"'F*\"\"$%#u2G\"\"\"\"&+/&*(F&\"\"(F*F0F/\"\"#\"&+3\"*(F&F3F *F4%#u3GF0\"%+s*(F&\"\")F/F0F7F0\"$+**(F&F:F*F0%#u4GF0\"$]%*&F&\"\"*%# u5GF0\"#5F0" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%.stammfunktionG,.*&% \"uG\"#9%#u5G\"\"\"\"#5*(F'\"#8%#u1GF*%#u4GF*\"$]%*(F'\"#7,&*$F.\"\"# \"\")*&F'F*%#u2GF*F*F*%#u3GF*\"$+**(F'\"#6F.\"\"$F8F*\"&+/&*(F'F2F.F*F 8F5\"&+3\"*&F'F+F.\"\"&\"&S-$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%te stG\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 36 "expr:=diff(u^5, x$3)*diff(u^2,x$5)^3;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "stammfunkt ion:=Int(diff(expr,x),x);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "test:= expand(\"\"-\");" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%exprG*&,(*&%\"u G\"\"#%#u1G\"\"$\"#g*(F(F+F*\"\"\"%#u2GF.F,*&F(\"\"%%#u3GF.\"\"&F.,(*& F/F.F2F.\"#?*&F*F.%#u4GF.\"#5*&F(F.%#u5GF.F)F+" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%.stammfunktionG,hn*(%\"uG\"\"%%#u2G\"\"$%#u3GF(\"&++% *,F'F(%#u1G\"\"\"F+F*F)\"\"#%#u4GF/\"&++'*,F'F(F.F0F+F0F)F/F1F0\"&++$* *F'F(F.F*F+F/F1F*\"%+]**F'F*F.F(F)F/F1F*F2*,F'F0F.F(F)F0F+F0F1F/\"'++s *,F'F0F.\"\"&F)F/F+F/F1F0\"'++O*,F'F*F.F0F)F*F+F0F1F/F9*,F'F*F.F*F)F0F +F/F1F0F<*,F'F(F.F*F)F/F+F/%#u5GF0\"&+W\"*(F'\"\"(F+F/F@F*\"#S*(F'F;F. F*F@F*\"$![**F'F*F.F;F1F0F@F/\"&+g$**F'F(F.F(F1F/F@F0\"%+s*,F'F(F.F/F) F*F+F0F@F/\"'+S9*.F'F(F.F0F)F0F+F/F1F/F@F/FL*,F'F;F.F/F)F0F+F/F@F0FA*, F'F(F.F*F)F/F1F0F@F/FH*,F'F;F.F0F)F/F1F/F@F0FJ**F'\"\"'F.F/F)F/F@F*FF* *F'F;F+F*F)F0F@F/\"&+?\"*.F'F;F+F0F)F/F.F/F1F/F@F/FT**F'FRF+F0F)F/F@F0 \"%+7*,F'F;F+F/F.F0F1F0F@F/\"%+I*,F'FRF+F/F.F/F1F/F@F0\"$+'*,F'F*F.F*F )F0F+F0F@F/FL*.F'F*F.F(F)F/F+F/F1F/F@F/FL*(F'F0F.FRF1F*F2**F'F*F)F(F+F *F.F/\"'++[**F'F0F.F*F)F*F+F*Fjn" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% %testG\"\"!" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 77 "expr:=u3/(1- u5^2)\n +ln(u3)/(1+u4^3)*exp(cos(u2)^2+1/(1+u6)*sin(u5^2)^2);" }} {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "expand(diff(expr,x));" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "stammfunktion:=Int(u4/(1+u3^2)+u7^2+\",x);" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%exprG,&*&%#u3G\"\"\",&F(F(*$%#u5G \"\"#!\"\"F-F(*(-%#lnG6#F'F(,&F(F(*$%#u4G\"\"$F(F--%$expG6#,&*$-%$cosG 6#%#u2GF,F(*&,&F(F(%#u6GF(F--%$sinG6#F*F,F(F(F(" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#,0*&%#u4G\"\"\",&F&F&*$%#u5G\"\"#!\"\"F+F&**%#u3GF&F'! \"#F)F&%#u6GF&F**,F%F&F-F+,&F&F&*$F%\"\"$F&F+-%$expG6#*$-%$cosG6#%#u2G F*F&-F56#*&,&F&F&F/F&F+-%$sinG6#F(F*F&F&*.-%#lnG6#F-F&F1F.F4F&F%.stammfunktionG,*-%$IntG6$*$%#u7G\"\"#%\"xG\"\" \"*(-%#lnG6#%#u3GF-,&F-F-*$%#u4G\"\"$F-!\"\"-%$expG6#*&,**$-%$cosG6#%# u2GF+F-*&F>F+%#u6GF-F-F-F-*$-F?6#*$%#u5GF+F+F7F-,&F-F-FCF-F7F-F-*&F2F- ,&FGF-F7F-F7F7-%'arctanGF1F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "9 0 0" 0 }{VIEWOPTS 1 1 0 3 2 1804 }