10. Algebraisk ManipulationMaple har en lang r\303\246kke faciliteter til algebraiske manipulationer. I dette kapitel n\303\246vnes nogle af de vigtigste. I en vis forstand kan det dog siges, at n\303\246sten hele bogen handler om algebraisk manipulation, idet et computeralgebraprograms prim\303\246re opgave netop er algebraisk manipulation.Proceduren factorBetragt f\303\270lgende 7. grads polynomium:p:=4*x^7+24*x^6+44*x^5-8*x^4-132*x^3-184*x^2-108*x-24;Proceduren factor faktoriserer p:factor(p);men bem\303\246rk, at der ikke er opn\303\245et en fuldst\303\246ndig faktorisering indenfor de reelle tal, idet LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2I1EhRictRiM2J0YrLUYjNiQtSSVtc3VwR0YkNiUtRiw2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21uR0YkNiRRIjJGJy9GPVEnbm9ybWFsRicvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRkMtSSNtb0dGJDYtUSgmbWludXM7RidGQy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGTi8lKXN0cmV0Y2h5R0ZOLyUqc3ltbWV0cmljR0ZOLyUobGFyZ2VvcEdGTi8lLm1vdmFibGVsaW1pdHNHRk4vJSdhY2NlbnRHRk4vJSdsc3BhY2VHUSwwLjIyMjIyMjJlbUYnLyUncnNwYWNlR0Znbi1GQDYkUSIzRidGQ0ZDRitGQw== ikke er blevet faktoriseret. Det er fordi factor af koefficienterne til p udleder, at man \303\270nsker en faktorisering indenfor de hele (eller rationale) tal. Hvordan dette brydes vises lidt senere.De f\303\270lgende to polynomier afviger kun fra hinanden ved, at koefficienten til LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2JS1JJW1zdXBHRiQ2JS1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW5HRiQ2JFEiM0YnL0Y7USdub3JtYWxGJy8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRkFGK0ZGRkE= i p1 er br\303\270ken LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkmbWZyYWNHRiQ2KC1GIzYlLUkjbW5HRiQ2JFEjMTBGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjQtRiM2JS1GMTYkUSMyMUYnRjRGN0Y0LyUubGluZXRoaWNrbmVzc0dRIjFGJy8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGJy8lKW51bWFsaWduR0ZELyUpYmV2ZWxsZWRHUSZmYWxzZUYnRjdGNA== , mens den tilsvarende koefficient for p2 er decimaltallet LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkmbWZyYWNHRiQ2KC1GIzYlLUkjbW5HRiQ2JFElMTAuMEYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGNC1GIzYlLUYxNiRRIzIxRidGNEY3RjQvJS5saW5ldGhpY2tuZXNzR1EiMUYnLyUrZGVub21hbGlnbkdRJ2NlbnRlckYnLyUpbnVtYWxpZ25HRkQvJSliZXZlbGxlZEdRJmZhbHNlRidGN0Y0 . Proceduren factor behandler de to polynomier forskelligt, idet den faktoriserer indenfor det talomr\303\245de, der fremg\303\245r af koefficienterne:p1:=x^4-10/21*x^3+419/84*x^2-50/21*x-5/84;p2:=x^4-10.0/21*x^3+419/84*x^2-50/21*x-5/84;I p1 er koefficienterne rationale tal, s\303\245 her faktoriseres indenfor disse:factor(p1);I p2 er koefficienterne "flydende" decimalbr\303\270ker (floating point numbers), s\303\245 her faktoriseres indenfor disse:factor(p2);Hvis ikke Digits er sat til andet, s\303\245 har den v\303\246rdien 10. Vi s\303\246tter den til 15, s\303\245 Maple regner med 15 betydende cifre:Digits:=15:Vi vil igen faktorisere p2. Proceduren factor husker imidlertid allerede udf\303\270rte faktoriseringer, hvilket ses af dens husketabel, der f\303\245s som den 4. operand af proceduren:op(4, eval(factor));s\303\245 vi m\303\245 f\303\270rst bede Maple om at fjerne husketabellen for factor:forget(factor);op(4, eval(factor));Der kom intet, hvilket ogs\303\245 var meningen.factor(p2);Vi s\303\246tter Digits tilbage til 10:Digits:=10:Denne skelnen mellem et helt tal (eller rationalt tal) og dettes (n\303\270dvendigvis endelige) decimalbr\303\270ksversion m\303\245 man v\303\246re opm\303\246rksom p\303\245 overalt i Maple. Mener man LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkmbWZyYWNHRiQ2KC1GIzYlLUkjbW5HRiQ2JFEiMUYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGNC1GIzYlLUYxNiRRIjJGJ0Y0RjdGNC8lLmxpbmV0aGlja25lc3NHRjMvJStkZW5vbWFsaWduR1EnY2VudGVyRicvJSludW1hbGlnbkdGQy8lKWJldmVsbGVkR1EmZmFsc2VGJ0Y3RjQ=, s\303\245 skriver man 1/2 og ikke 0.5.Default ved faktorisering er alts\303\245, at koefficienterne bestemmer talomr\303\245det (tallegemet). For at bryde dette kan man tilf\303\270je et ekstra argument til proceduren factor. Derved kan man fort\303\246lle Maple, at man tillader et st\303\270rre tallegeme i faktoriseringen end det, der afl\303\246ses af koefficienterne til polynomiet. Vi giver nogle eksempler.
factor(p1,real);factor(p1,complex);identify(%);factor(x^2-3, sqrt(3));factor(p1,{I,sqrt(5)});Bem\303\246rk i\303\270vrigt, at factor ikke faktoriserer hele tal. Vil man have tallet 12 skrevet som LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2Jy1JJW1zdXBHRiQ2JS1JI21uR0YkNiRRIjJGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRidGNC8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRictSSNtb0dGJDYtUScmc2RvdDtGJ0Y4LyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZELyUpc3RyZXRjaHlHRkQvJSpzeW1tZXRyaWNHRkQvJShsYXJnZW9wR0ZELyUubW92YWJsZWxpbWl0c0dGRC8lJ2FjY2VudEdGRC8lJ2xzcGFjZUdRJjAuMGVtRicvJSdyc3BhY2VHRlMtRjU2JFEiM0YnRjgvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjhGK0ZZRjg= skal man bruge proceduren ifactor:ifactor(12);Om behandlingen af tal, se i \303\270vrigt kapitel 11.factor faktoriserer ogs\303\245 andre udtryk end polynomier:u:=exp(4*x)*cos(x)^3+9*exp(4*x)*cos(x)^2*sin(x)+27*exp(4*x)*cos(x)*sin(x)^2+27*exp(4*x)*sin(x)^3;factor(u);Proceduren expandBetragt udtrykketu1:=(a+b-2*c)^2*(c+a);expand vil gange udtrykket ud:expand(%);Betragt nu udtrykkeneu2,u3,u4:=sin(a+b), exp(a+b), ln(a*b);expand splitter op efter g\303\246ldende regler:expand(u2);expand(u3);I udtrykket u4 m\303\245 vi g\303\270re en foruds\303\246tning, f.eks. at a eller b er positiv, ellers sker der ikke noget (hvad der heller ikke b\303\270r):expand(u4) assuming a>0;Betragt nu udtrykketu:=(a+b)^2*exp(c-d);Vi \303\270nsker udtrykket u ganget ud:expand(u);Virkningen af expand er en totalopsplitning. Det var m\303\245ske at foretr\303\246kke, at LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEiZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYlLUYvNiVRImRGJ0YyRjVGMkY1LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy9GNlEnbm9ybWFsRic= ikke optr\303\245dte i n\303\246vneren, men i stedet som LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEiZUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYmLUkjbW9HRiQ2LVEqJnVtaW51czA7RicvRjZRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZCLyUpc3RyZXRjaHlHRkIvJSpzeW1tZXRyaWNHRkIvJShsYXJnZW9wR0ZCLyUubW92YWJsZWxpbWl0c0dGQi8lJ2FjY2VudEdGQi8lJ2xzcGFjZUdRLDAuMjIyMjIyMmVtRicvJSdyc3BhY2VHRlEtRi82JVEiZEYnRjJGNUYyRjUvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRj4= . I vores situation kan dette efterf\303\270lgende klares ved kommandoen: subs(exp(d)=1/exp(-d),%);Lad os nu sige, at vi faktisk kun \303\270nskede LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2JS1JJW1zdXBHRiQ2JS1JKG1mZW5jZWRHRiQ2JC1GIzYnLUYsNiVRImFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtb0dGJDYtUSIrRicvRkBRJ25vcm1hbEYnLyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZKLyUpc3RyZXRjaHlHRkovJSpzeW1tZXRyaWNHRkovJShsYXJnZW9wR0ZKLyUubW92YWJsZWxpbWl0c0dGSi8lJ2FjY2VudEdGSi8lJ2xzcGFjZUdRLDAuMjIyMjIyMmVtRicvJSdyc3BhY2VHRlktRiw2JVEiYkYnRjxGPy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGRkZGLUkjbW5HRiQ2JFEiMkYnRkYvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRmluRkZGK0ZpbkZG ganget ud, og intet gjort ved LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUklbXN1cEdGJDYlLUkjbW9HRiQ2LVEvJkV4cG9uZW50aWFsRTtGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRjcvJSlzdHJldGNoeUdGNy8lKnN5bW1ldHJpY0dGNy8lKGxhcmdlb3BHRjcvJS5tb3ZhYmxlbGltaXRzR0Y3LyUnYWNjZW50R0Y3LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdRLDAuMTExMTExMWVtRictRiM2Jy1JI21pR0YkNiVRImNGJy8lJ2l0YWxpY0dRJXRydWVGJy9GM1EnaXRhbGljRictRi82LVEoJm1pbnVzO0YnRjJGNUY4RjpGPEY+RkBGQi9GRVEsMC4yMjIyMjIyZW1GJy9GSEZZLUZNNiVRImRGJ0ZQRlMvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjIvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRmhuRjI=. S\303\245 tilf\303\270jer vi som andet argument til expand det, der ikke skal r\303\270res ved. Her kan vi enten tilf\303\270je exp(c-d) eller blot exp:expand(u, exp);Et eksempel mere, hvor u2 \303\270nskes uber\303\270rt af expand:expand( u2*u3, u2);Proceduren simplifyrestart;F\303\270lgende udtryk \303\270nskes simplificeret.u1:= ln(2)-ln(7)+exp(a)*exp(b-a)+sin(x)^3+2*cos(x)^2-cos(2*x);Ved simplifikation kan forst\303\245s mange ting. Maple har adskillige procedurer, der kan bruges til simplifikationer, heriblandt simplify. simplify(u1);simplify giver ikke n\303\270dvendigvis det, man selv mener er simplest!Man kan anvende et ekstra argument (som f.eks. ln, exp, power, radical, sqrt, trig eller size) i proceduren simplify, og derved opn\303\245 en vis styring af simplificeringen, som i f\303\270lgende eksempel:simplify( u1, trig);simplify(u1,exp);For flere detaljer herom se hj\303\246lpen under simplify eller hj\303\246lpen under simplify med et af de ekstra argumenter (hj\303\246lpen for simplify med exp mangler):?simplify?simplify,trigBetragt udtrykketu2:=sqrt(x^2);simplify(u2);Den komplekse fortegnsfunktionen csgn har v\303\246rdien 1 i den \303\245bne h\303\270jre halvplan og -1 i den \303\245bne venstre halvplan. P\303\245 den imagin\303\246re akse er den 1 p\303\245 den positive del og -1 p\303\245 den negative:Vil man lokalt g\303\270re brug af en antagelse, kan dette g\303\270res ved brug af proceduren assuming, der har en lidt anderledes syntaks. Den virker s\303\245ledes:simplify(u2) assuming x<0;Her g\303\270res under simplifikationen den antagelse, at x < 0. Man kan n\303\270jes medsimplify(u2) assuming negative;Under simplifikationen vil Maple nu antage, at samtlige ubekendte (samtlige variable) er negative.En tilsvarende effekt opn\303\245s ved som andet argument til simplify at anf\303\270re en tilf\303\270jelse af formen: assume=egenskab. simplify(u2, assume=[x<0]);eller blotsimplify(u2,assume=negative);Endnu et eksempel. Betragt udtrykketu3:=sqrt((a-7)^2*(x^2+6*x+9));simplify(u3);Hvis vi ved, at LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2Jy1JI21uR0YkNiRRIjdGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRictSSNtb0dGJDYtUSUmbGU7RidGNS8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGPi8lKXN0cmV0Y2h5R0Y+LyUqc3ltbWV0cmljR0Y+LyUobGFyZ2VvcEdGPi8lLm1vdmFibGVsaW1pdHNHRj4vJSdhY2NlbnRHRj4vJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZNLUYsNiVRImFGJy8lJ2l0YWxpY0dRJXRydWVGJy9GNlEnaXRhbGljRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjVGK0ZYRjU= og LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2KC1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEiPEYnL0Y4USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQi8lKXN0cmV0Y2h5R0ZCLyUqc3ltbWV0cmljR0ZCLyUobGFyZ2VvcEdGQi8lLm1vdmFibGVsaW1pdHNHRkIvJSdhY2NlbnRHRkIvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZRLUYjNiYtRjs2LVEqJnVtaW51czA7RidGPkZARkNGRUZHRklGS0ZNL0ZQUSwwLjIyMjIyMjJlbUYnL0ZTRlotSSNtbkdGJDYkUSIzRidGPi8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGPkYrRmpuRj5GK0ZqbkY+, kan vi enten bruge assuming:simplify(u3) assuming a>=7, x<-3;eller anbringe en antagelse som andet argument:simplify(u3,assume=[a>=7, x<-3]);Af disse to m\303\245der at g\303\270re lokale antagelser p\303\245, er den sidste den \303\246ldste. En global antagelse kunne v\303\246re gjort f\303\270r brugen af simplify s\303\245ledes:assume(a>=7,x<-3);simplify(u3);Tilde-tegnet p\303\245 a og x skal minde os om, at der er gjort antagelser:about(a); about(x);Vi fjerner de globale antagelser:a:='a': x:='x':about(a); about(x);Evalueringsr\303\246kkef\303\270lgeEvalueringsr\303\246kkef\303\270lger spiller en meget stor rolle i Maple og kan give anledning til megen forvirring og frustration.Betragt f\303\270lgende eksempel.f:=x->a*x:simplify med en antagelse som andet argument:simplify(sqrt(f(a)),assume=[a<0]);Proceduren `assuming` brugt p\303\245 argumenterne [simplify(sqrt(f(a)))] og a<0. Den bekvemme skrivem\303\245de er simplify(sqrt(f(a))) assuming a<0;men dette er internt det samme som`assuming`([simplify(sqrt(f(a)))],a<0);Vi s\303\245, at der ingen simplifikation skete ved brugen af `assuming`.Grunden til den forskellige opf\303\270rsel er f\303\270lgende: I den f\303\270rste version, hvor simplify anvendes med to argumenter, evalueres disse argumenter f\303\270rst. Her f\303\270lger simplify den generelle regel: Argumenterne til en procedure evalueres fuldt ud f\303\270r proceduren g\303\245r i gang. Dermed evalueres f(a) til LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkmbXNxcnRHRiQ2Iy1GIzYkLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEiYUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21uR0YkNiRRIjJGJy9GO1Enbm9ybWFsRicvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnRkFGQQ== f\303\270r simplify kommer igang. Med antagelsen a < 0 f\303\245r simplify derefter resultatet - a.
`assuming` derimod har specielle evalueringsregler. Den evaluerer ikke sit f\303\270rste argument f\303\270r antagelsen i andet argument bliver gjort p\303\245 variablen a, der ses direkte som argument til f. Dette resulterer i, at dette a midlertidigt erstattes af en variabel a~. Den variabel a , der optr\303\246der i selve definitionen af f , ses ikke og forbliver a. simplify kan ikke g\303\270re noget ved LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkmbXNxcnRHRiQ2Iy1GIzYmLUkjbWlHRiQ2JVEiYUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RMSZJbnZpc2libGVUaW1lcztGJy9GOFEnbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRkIvJSlzdHJldGNoeUdGQi8lKnN5bW1ldHJpY0dGQi8lKGxhcmdlb3BHRkIvJS5tb3ZhYmxlbGltaXRzR0ZCLyUnYWNjZW50R0ZCLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGUS1GMTYlUSNhfGlyRidGNEY3Rj5GPg== . Til sidst f\303\270r assuming er f\303\246rdig med sit arbejde bliver a~ erstattet af a. Denne opf\303\270rsel kan dokumenteres ved brug af kommandoen debug(`assuming`) (efter restart).I vores situation kan vi klare problemet s\303\245ledes:S\303\270rg for at evalueringer sker f\303\270r antagelsen:sqrt(f(a));simplify(%) assuming a<0;Proceduren simplify kan ogs\303\245 bruges med det ekstra argument symbolic. S\303\245 bekymrer Maple sig ikke om, hvilken gren den skal v\303\246lge af en flertydig funktion (for detaljer, se hj\303\246lpen til simplify):simplify( arcsin(sin(x)), symbolic);simplify( sqrt((x-5)^2), symbolic);simplify( ln(a*b)+sqrt((x-5)^2), sqrt,symbolic);simplify( ln(a*b)+sqrt((x-5)^2), symbolic);I\303\270vrigt kan kvadratrodsfunktionen sqrt selv kaldes med det ekstra argument symbolic:sqrt( x^2+4*x+4, symbolic);Simplifikation med sidebetingelser:simplify(a+a^2*b^2,{a*b=2});assume-facilitetenUnder omtalen af proceduren simplify ovenfor har vi set eksempler p\303\245 brugen af lokale og globale antagelser i forbindelse med simplifikation.Proceduren assuming har kun lokal virkning. De gjorte antagelser bruges kun i den p\303\245g\303\246ldende regning. Bagefter er de glemt. Proceduren kan ogs\303\245 bruges sammen med andre procedurer end lige simplify. Betragt det bestemte integralint(1/x,x=1..a);Vi f\303\245r en advarsel, der fort\303\246ller os, hvad vi kan g\303\270re.Med antagelsen a > 0 f\303\245sint(1/x,x=1..a) assuming a>0;Her tages stilling til alle v\303\246rdier for a (hvilket ogs\303\245 g\303\270res hvis _EnvAllSolutions s\303\246ttes til true):int(1/x,x=1..a,AllSolutions);Herefter kunne vi evaluere resultatet under en antagelse:% assuming a>0;Betragt gr\303\246nsev\303\246rdienlimit(x^n*exp(a*x),x=0);Det er klart afg\303\270rende, hvilket fortegn n har, s\303\245 vi g\303\270r en antagelse:limit(x^n*exp(a*x),x=0) assuming n>0;Med en anden antagelse (og ensidig gr\303\246nseovergang):limit(x^n*exp(a*x),x=0,right) assuming n<0;Gr\303\246nsev\303\246rdien i LUkjbWlHNiMvSSttb2R1bGVuYW1lRzYiSSxUeXBlc2V0dGluZ0dJKF9zeXNsaWJHRic2JVEoJmluZmluO0YnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJw== afh\303\246nger klart af fortegnet for a:limit(x^n*exp(a*x),x=infinity) assuming a<0;Globale antagelser kan man i det store og hele undg\303\245 at g\303\270re, hvis man \303\270nsker det.Men de g\303\270res ved brug af proceduren assume:assume(n>0, a<0); Bem\303\246rk, at der intet output kom. Der bliver heller ikke anbragt noget nyt i %.Limit(x^n*exp(a*x),x=infinity): %=value(%);Vi ser, at der til n og til a nu er f\303\270jet en tilde (~) for at erindre om, at antagelser er gjort - indtil de h\303\246ves.Tilde-tegnet kan (i Standard Worksheet Maple) skjules ved at g\303\245 ind i Tools/Options/Display/ Assumed variables. Her kan man s\303\245 v\303\246lge No Annotation. Det kan ogs\303\245 g\303\270res ved f\303\270lgende kommando, der har samme virkning. Se i \303\270vrigt hj\303\246lpen for information om interface.interface( showassumed=0);a,n;Vi f\303\245r tilderne tilbage s\303\245ledes:interface( showassumed = 1); a,n; Vha. proceduren about kan man se, hvilke antagelser, man har gjort om sine variable:about(a,n);Vil man fjerne selve antagelsen om n (uanset om tilden vises eller ej), kan det g\303\270res som f\303\270lger (bem\303\246rk apostrofferne):n:='n'; about(n);Vi fjerner ogs\303\245 antagelsen om a:a:='a';combine, normal, radnormalVi betragter igen f\303\270lgende udtryk, som vi \303\270nsker simplificeretu:= ln(2)-ln(7)+exp(a)*exp(b-a)+sin(x)^3+2*cos(x)^2-cos(2*x);simplify kan v\303\246re udm\303\246rket at pr\303\270ve, men initiativet overlades dermed til Maple. Man har ikke den samme kontrol med omformningerne, som man har med eksempelvis combine, factor, normal eller collect:\303\230nskes udtrykket fors\303\270gt "samlet sammen" (kombineret) kan bruges combine: combine(u);Hvis det \303\270nskes, at kun trigonometriske funktioner skal kombineres, s\303\245 tilf\303\270jes trig. Nogle af de andre mulige tilf\303\270jelser er exp, ln, power, radical, abs. Tilf\303\270jelserne kan v\303\246re flere p\303\245 \303\251n gang. De skrives s\303\245 i en liste, som [ln, exp] i tredie eksempel nedenfor. combine(u,trig); combine(u, ln);combine(u,[ln,exp]);Proceduren normal s\303\246tter (bl.a.) p\303\245 f\303\246lles br\303\270kstreg og forkorter f\303\246lles faktorer:A:=a^2/(b-a)-b^2/(b-a);normal(A); B:=c/(a-b)-1/(a+b);Der s\303\246ttes p\303\245 f\303\246lles br\303\270kstreg, men f\303\246llesn\303\246vneren ganges ikke ud, hvilket heller ikke altid er nogen fordel:normal(B); Fors\303\270g p\303\245 direkte anvendelse af expand har ikke den \303\270nskede virkning:expand(%); Men tilf\303\270jelsen expanded g\303\270r, at n\303\246vneren ganges ud:normal(B, expanded); Proceduren radnormal er egnet til udtryk med r\303\270dder. I dette eksempel bruges det med tilf\303\270jelsen rationalized, hvorved n\303\246vneren g\303\270res rational:(sqrt(2)+1)/(sqrt(2)-1);radnormal(%,rationalized);Bem\303\246rk i den forbindelse, at Maple ved evalueringen af LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUklbXN1cEdGJDYlLUkjbWlHRiQ2JVEibkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1GIzYlLUkmbWZyYWNHRiQ2KC1GLzYlUSJwRidGMkY1LUYjNiUtRi82JVEicUYnRjJGNUYyRjUvJS5saW5ldGhpY2tuZXNzR1EiMUYnLyUrZGVub21hbGlnbkdRJ2NlbnRlckYnLyUpbnVtYWxpZ25HRkovJSliZXZlbGxlZEdRJmZhbHNlRidGMkY1LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy9GNlEnbm9ybWFsRic=, hvor n er hel og LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkmbWZyYWNHRiQ2KC1JI21pR0YkNiVRInBGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictRiM2JS1GLzYlUSJxRidGMkY1RjJGNS8lLmxpbmV0aGlja25lc3NHUSIxRicvJStkZW5vbWFsaWduR1EnY2VudGVyRicvJSludW1hbGlnbkdGQi8lKWJldmVsbGVkR1EmZmFsc2VGJy1JI21vR0YkNi1RIjxGJy9GNlEnbm9ybWFsRicvJSZmZW5jZUdGRy8lKnNlcGFyYXRvckdGRy8lKXN0cmV0Y2h5R0ZHLyUqc3ltbWV0cmljR0ZHLyUobGFyZ2VvcEdGRy8lLm1vdmFibGVsaW1pdHNHRkcvJSdhY2NlbnRHRkcvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0Zobi1JI21uR0YkNiRRIjBGJ0ZMLUZJNi1RIn5GJ0ZMRk5GUEZSRlRGVkZYRlovRmduUSYwLjBlbUYnL0ZqbkZjb0ZM, skaffer rational n\303\246vner:1/sqrt(5),1/sqrt(-2);5^(-1/3), (-2)^(-1/5);Der er ikke tale om s\303\245kaldt "automatisk simplifikation" (se senere i kapitlet), hvorved forst\303\245s en simplifikation, der sker inden evaluering. Dette kan ses ved at anbringe apostroffer om udtrykket:'1/sqrt(2+3)'=1/sqrt(2+3);2 + 3 blev automatisk simplificeret til 5, men mere skete der ikke p\303\245 venstre side.collect, coeffLad p v\303\246re udtrykket:p:= 7*x*y^2+a*x*y^2+3*y^3*x^2-a*y*x^2+4*x+a*y^3*x+7*y;Vi kan samle leddene i p efter faldende x-potenser s\303\245ledes:q:=collect(p,x);Koefficienten til LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2JS1JJW1zdXBHRiQ2JS1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW5HRiQ2JFEiMkYnL0Y7USdub3JtYWxGJy8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRkFGK0ZGRkE= kan f\303\245s p\303\245 en af f\303\270lgende to m\303\245der:coeff(q,x^2); coeff(q,x,2);Den sidste metode kan benyttes til at bestemme koefficienten til LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2JS1JJW1zdXBHRiQ2JS1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW5HRiQ2JFEiMEYnL0Y7USdub3JtYWxGJy8lMXN1cGVyc2NyaXB0c2hpZnRHRkAvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRkFGK0ZFRkE=:coeff(q,x,0);Der findes ogs\303\245 en procedure coeffs, der kun giver koefficienterne: Se hj\303\246lpen.I pakken PolynomialTools findes CoefficientVector og CoefficientList, der ved input af et polynomium i \303\251n variabel returnerer koefficienterne i form af en vektor eller en liste, henholdsvis: PolynomialTools:-CoefficientVector(p,x);Skal koefficienterne til potenserne af x behandles p\303\245 en eller anden m\303\245de, tilf\303\270jes den dertil svarende procedure, eksempelvis er det ofte en god id\303\251 at tilf\303\270je factor:collect(p,x,factor); Skal leddene samles med hensyn til y og koefficienterne faktoriseres, skriver vi:collect(p,y,factor);Betragtes p som et polynomium i de 2 variable x og y , kan leddene samles s\303\245ledes:collect(p, [x,y],distributed);Sammenlign resultatet med f\303\270lgende to uden tilf\303\270jelsen distributed: collect(p, [x,y]);collect(p, [y,x]);collect kan ogs\303\245 samle led med hensyn til funktionsnavne (f.eks. ln eller exp) og mht. uevaluerede funktionsudtryk som f.eks. ln(x) og exp(x):w:=(1/x+ln(x))^3 +5*ln(x)+a*ln(x)/(x+1)+7*ln(x)^2+a*x;Begge af f\303\270lgende former kan bruges:collect(w,ln);collect(w, ln(x));Koefficienten til LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2JS1JJW1zdXBHRiQ2JS1GIzYnLUYsNiVRI2xuRicvJSdpdGFsaWNHUSZmYWxzZUYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy1JI21vR0YkNi1RMCZBcHBseUZ1bmN0aW9uO0YnRjwvJSZmZW5jZUdGOy8lKnNlcGFyYXRvckdGOy8lKXN0cmV0Y2h5R0Y7LyUqc3ltbWV0cmljR0Y7LyUobGFyZ2VvcEdGOy8lLm1vdmFibGVsaW1pdHNHRjsvJSdhY2NlbnRHRjsvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZTLUkobWZlbmNlZEdGJDYkLUYjNiUtRiw2JVEieEYnL0Y6USV0cnVlRicvRj1RJ2l0YWxpY0YnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJ0Y8RjxGXG9GPC1JI21uR0YkNiRRIjJGJ0Y8LyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJ0Zcb0Y8RitGXG9GPA== kan s\303\245 f\303\245s s\303\245ledes:coeff(%,ln(x),2); Her samles igen mht. ln(x), men nu bruges simplify p\303\245 hver af koefficienterne:collect(w, ln(x), simplify); eval og subsDet kan v\303\246re nyttigt i et udtryk, der indeholder en operand x, at erstatte x med enten et tal eller et andet udtryk. Dette kan ske vha. proceduren eval:u:= ln(2)-ln(7)+exp(a)*exp(b-a)+sin(x)^3+2*cos(x)^2-cos(2*x);Vi erstatter x med LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYkLUkjbWlHRiQ2JVElJnBpO0YnLyUnaXRhbGljR1EmZmFsc2VGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRidGMg==:eval(u,x=Pi); Udtrykket u \303\246ndres ikke dervedu; Proceduren subs kan ogs\303\245 bruges, men bem\303\246rk, at der ikke bliver evalueret, kun substituteret. Bem\303\246rk ogs\303\245, at argumentr\303\246kkef\303\270lgen er omvendt:subs(x=Pi,u);Evaluering sker ved den blotte reference til ovenst\303\245ende:%;Skal flere substitutioner udf\303\270res samtidigt, skal disse indkapsles i m\303\246ngdeklammer, b\303\245de for eval og for subs:eval(u,{sin(x)=x^7,x=Pi});subs({sin(x)=x^7,x=Pi},u);%;I begge procedurer kan bruges listeklammer i stedet for m\303\246ngdeklammer.Proceduren subs kan udf\303\270re en f\303\270lge af substitutioner successivt eller en f\303\270lge af m\303\246ngder af substitutioner successivt. Det kan eval ikke. Nedenfor udf\303\270res f\303\270rst den f\303\270rste substitution. I det fremkomne udtryk udf\303\270res dern\303\246st den anden substitution:subs(sin(x)=x^7,x=Pi,u);%;Med omvendt r\303\246kkef\303\270lge f\303\245s (her med to kommandoer p\303\245 samme linie):subs(x=Pi,sin(x)=x^7,u): %;Som det ses, fik substitutionen sin(x) = x^7 slet ingen virkning. Grunden er den, at efter substitutionen LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEiPUYnL0Y4USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQi8lKXN0cmV0Y2h5R0ZCLyUqc3ltbWV0cmljR0ZCLyUobGFyZ2VvcEdGQi8lLm1vdmFibGVsaW1pdHNHRkIvJSdhY2NlbnRHRkIvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZRLUYsNiVRJSZwaTtGJy9GNUZCRj4vJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRj5GK0ZYRj4= , er der ingen LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRicvRjNRJ25vcm1hbEYn tilbage i udtrykket.eval kan ogs\303\245 bruges til at fremtvinge fuld eller delvis evaluering af et udtryk:s3:=s2: s2:=s1: s1:=s0:Fuld evaluering er det normale i Maple. S\303\245 hvis blot s3 n\303\246vnes:s3;evaueres s3 fuldt. \303\230nsker man kun evaluering til f\303\270rste trin, kan man skrive:eval(s3,1);Funktioner, procedurer og tabeller evalueres kun til deres navne:f:=x->x^2;f;Fuld evaluering f\303\245s ved kommandoeneval(f);Se ogs\303\245 om algsubs, subsop, applyop, applyrule, subsindets, evalindets i Kapitel 14.Opl\303\270sning i stambr\303\270kerOpl\303\270sning af en rational funktion i stambr\303\270ker (engelsk: partial fraction decomposition) foreg\303\245r ved en af de talrige varianter af proceduren convert:ratfunk:=(x^2+h*x-11)/(x^4-4*x^3+7*x^2-12*x+12);convert( ratfunk, parfrac, x);Da factor ikke automatisk faktoriserer LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2KEYrLUYjNiUtSSVtc3VwR0YkNiUtRiw2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21uR0YkNiRRIjJGJy9GPVEnbm9ybWFsRicvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJ0ZDLUkjbW9HRiQ2LVEoJm1pbnVzO0YnRkMvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRlEvJSlzdHJldGNoeUdGUS8lKnN5bW1ldHJpY0dGUS8lKGxhcmdlb3BHRlEvJS5tb3ZhYmxlbGltaXRzR0ZRLyUnYWNjZW50R0ZRLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGam4tRkA2JFEiM0YnRkNGSEZDRitGSEZD, vil der ikke ske noget i f\303\270lgende kommando:convert(1/(x^2-3)^2,parfrac,x);Men der findes en anden version:convert(1/(x^2-3)^2,fullparfrac,x);Summen er en sum over samtlige r\303\270dder i polynomiet LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2KEYrLUYjNiUtSSVtc3VwR0YkNiUtRiw2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21uR0YkNiRRIjJGJy9GPVEnbm9ybWFsRicvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJ0ZDLUkjbW9HRiQ2LVEoJm1pbnVzO0YnRkMvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRlEvJSlzdHJldGNoeUdGUS8lKnN5bW1ldHJpY0dGUS8lKGxhcmdlb3BHRlEvJS5tb3ZhYmxlbGltaXRzR0ZRLyUnYWNjZW50R0ZRLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGam4tRkA2JFEiM0YnRkNGSEZDRitGSEZD , alts\303\245 LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2Ji1JI21vR0YkNi1RKiZ1bWludXMwO0YnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGOi8lKXN0cmV0Y2h5R0Y6LyUqc3ltbWV0cmljR0Y6LyUobGFyZ2VvcEdGOi8lLm1vdmFibGVsaW1pdHNHRjovJSdhY2NlbnRHRjovJSdsc3BhY2VHUSwwLjIyMjIyMjJlbUYnLyUncnNwYWNlR0ZJLUkmbXNxcnRHRiQ2Iy1JI21uR0YkNiRRIjNGJ0Y1LyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJ0Y1RitGU0Y1 og LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkmbXNxcnRHRiQ2Iy1JI21uR0YkNiRRIjNGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjI= . Et eksplicit udtryk f\303\245s ved endnu en convert-kommando:convert(%,radical);P\303\245 vores f\303\270rste udtryk ratfunk f\303\245s en stambr\303\270ksopl\303\270sning indenfor de komplekse tal, da LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2KEYrLUYjNiUtSSVtc3VwR0YkNiUtRiw2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21uR0YkNiRRIjJGJy9GPVEnbm9ybWFsRicvJTFzdXBlcnNjcmlwdHNoaWZ0R1EiMEYnLyUrYmFja2dyb3VuZEdRLlsyNTUsMjU1LDI1NV1GJ0ZDLUkjbW9HRiQ2LVEiK0YnRkMvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRlEvJSlzdHJldGNoeUdGUS8lKnN5bW1ldHJpY0dGUS8lKGxhcmdlb3BHRlEvJS5tb3ZhYmxlbGltaXRzR0ZRLyUnYWNjZW50R0ZRLyUnbHNwYWNlR1EsMC4yMjIyMjIyZW1GJy8lJ3JzcGFjZUdGam4tRkA2JFEiM0YnRkNGSEZDRitGSEZD ogs\303\245 vil blive faktoriseret:convert(ratfunk,fullparfrac,x);convert(%,radical);Hvis der optr\303\246der decimalbr\303\270ker i koefficienterne, s\303\245 angives resultatet p\303\245 decimalbr\303\270ksform:convert(1/(x^2-3.0),parfrac,x);Automatisk simplifikation m.m.Ved automatisk simplifikation forst\303\245s en simplifikation, der foretages inden evaluering. Om en simplifikation af et udtryk er automatisk eller ej, afsl\303\270res ved at s\303\246tte apostroffer om udtrykket s\303\245ledes:'2+2'=2+2,'1/sqrt(2)'=1/sqrt(2);En evaluering af et udtryk omg\303\246rdet af apostroffer best\303\245r blot af fjernelsen af disse. Apostroffer kan alts\303\245 bruges til at forhale evaluering. Trods forhaling af evaluering blev ovenfor '2+2' til 4. Der er alts\303\245 tale om en automatisk simplifikation. En s\303\245dan kan ikke forhindres. Derimod simplificeres LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkmbWZyYWNHRiQ2KC1GIzYlLUkjbW5HRiQ2JFEiMUYnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGNC1GIzYlLUkmbXNxcnRHRiQ2Iy1GMTYkUSIyRidGNEY3RjQvJS5saW5ldGhpY2tuZXNzR0YzLyUrZGVub21hbGlnbkdRJ2NlbnRlckYnLyUpbnVtYWxpZ25HRkYvJSliZXZlbGxlZEdRJmZhbHNlRidGN0Y0 ikke automatisk til LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkmbWZyYWNHRiQ2KC1GIzYlLUkmbXNxcnRHRiQ2Iy1JI21uR0YkNiRRIjJGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRicvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjctRiM2JUYzRjpGNy8lLmxpbmV0aGlja25lc3NHUSIxRicvJStkZW5vbWFsaWduR1EnY2VudGVyRicvJSludW1hbGlnbkdGRC8lKWJldmVsbGVkR1EmZmFsc2VGJ0Y6Rjc=.Ved definitionen af en procedure eller en funktion evalueres ikke, men der foretages automatiske simplifikationer:f:=x->2*3*x;Hvad enten man kan lide det eller ej, vil Maple foretage f\303\270lgende automatiske simplifikationer, n\303\245r x ikke er tilordnet nogen talv\303\246rdi:'x-x', '2*x+5*x', 'x+0', 'x/x', 'x*1', 'x^0', 'x^1'; Naturligvis f\303\245s samme resultater uden apostroffer, men med apostrofferne afsl\303\270res det, at disse simplifikationer ikke kan undg\303\245s. Den f\303\270rste simplifikation er ikke god, hvis LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEiPUYnL0Y4USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQi8lKXN0cmV0Y2h5R0ZCLyUqc3ltbWV0cmljR0ZCLyUobGFyZ2VvcEdGQi8lLm1vdmFibGVsaW1pdHNHRkIvJSdhY2NlbnRHRkIvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZRLUYsNiVRKCZpbmZpbjtGJ0Y0RjcvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRj5GK0ZXRj4=. Den fjerde og den sjette simplifikation er ikke god, n\303\245r LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2Jy1GLDYlUSJ4RicvJSdpdGFsaWNHUSV0cnVlRicvJSxtYXRodmFyaWFudEdRJ2l0YWxpY0YnLUkjbW9HRiQ2LVEiPUYnL0Y4USdub3JtYWxGJy8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGQi8lKXN0cmV0Y2h5R0ZCLyUqc3ltbWV0cmljR0ZCLyUobGFyZ2VvcEdGQi8lLm1vdmFibGVsaW1pdHNHRkIvJSdhY2NlbnRHRkIvJSdsc3BhY2VHUSwwLjI3Nzc3NzhlbUYnLyUncnNwYWNlR0ZRLUkjbW5HRiQ2JFEiMEYnRj4vJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRj5GK0ZYRj4=.Men den automatiske simplifikation reagerer korrekt, n\303\245r den f\303\245r konkrete tilf\303\246lde: 'infinity-infinity';'0/0';undefined i forbindelse med operatorerne /, +, * h\303\245ndteres automatisk i Maple:'undefined/undefined','undefined-undefined';'undefined+5', 'undefined*5', 'undefined*0';Men her er simplifikationen ikke automatisk:'undefined+g(x)'=undefined+g(x),'sin(undefined)'=sin(undefined);Da Maple intet ved om g(x), g\303\270res intet. Maple kender imidlertid sinusfunktionen, s\303\245 der sker noget.Maple s\303\246tter automatisk LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2JS1JJW1zdXBHRiQ2JS1JI21uR0YkNiRRIjBGJy8lLG1hdGh2YXJpYW50R1Enbm9ybWFsRidGNC8lMXN1cGVyc2NyaXB0c2hpZnRHRjcvJStiYWNrZ3JvdW5kR1EuWzI1NSwyNTUsMjU1XUYnRjhGK0Y9Rjg= til 1, som det ses her:'0^0';Til nogles irritation vil Maple altid gange et konkret reelt tal ind i en parentes. Sammenlign:77/3*(a+b); 3.1*(a+b); c*(a+b); Pi*(a+b); sqrt(2)*(a+b); (2+3*I)*(a+b);Man kan pr\303\270ve at s\303\246tte forhalende apostroffer om de to f\303\270rste udtryk, men det hj\303\246lper ikke: 'Simplifikationen' er automatisk.Maple er meget tilbageholdende med at bruge LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYnLUkjbWlHRiQ2I1EhRictRiM2Jy1JJW1zdXBHRiQ2JS1JKG1mZW5jZWRHRiQ2JC1GMjYlLUYsNiVRImFGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictRiw2JVEiYkYnRjxGPy8lMXN1cGVyc2NyaXB0c2hpZnRHUSIwRicvRkBRJ25vcm1hbEYnLUYsNiVRImNGJ0Y8Rj9GRS1JI21vR0YkNi1RIj1GJ0ZILyUmZmVuY2VHUSZmYWxzZUYnLyUqc2VwYXJhdG9yR0ZTLyUpc3RyZXRjaHlHRlMvJSpzeW1tZXRyaWNHRlMvJShsYXJnZW9wR0ZTLyUubW92YWJsZWxpbWl0c0dGUy8lJ2FjY2VudEdGUy8lJ2xzcGFjZUdRLDAuMjc3Nzc3OGVtRicvJSdyc3BhY2VHRlxvLUYyNiVGOS1GIzYnRkItRk42LVExJkludmlzaWJsZVRpbWVzO0YnRkhGUUZURlZGWEZaRmZuRmhuL0Zbb1EmMC4wZW1GJy9GXm9GZ29GSi8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGSEZFRmlvRkhGK0Zpb0ZI, der jo heller ikke g\303\246lder altid. Vi betragtede eksemplet LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUklbXN1cEdGJDYlLUkobWZlbmNlZEdGJDYkLUYjNiUtRiw2JS1JI21pR0YkNiVRInhGJy8lJ2l0YWxpY0dRJXRydWVGJy8lLG1hdGh2YXJpYW50R1EnaXRhbGljRictSSNtbkdGJDYkUSIyRicvRj1RJ25vcm1hbEYnLyUxc3VwZXJzY3JpcHRzaGlmdEdRIjBGJy8lK2JhY2tncm91bmRHUS5bMjU1LDI1NSwyNTVdRidGQ0ZDLUkmbWZyYWNHRiQ2KC1GIzYlLUZANiRRIjFGJ0ZDRkhGQy1GIzYlRj9GSEZDLyUubGluZXRoaWNrbmVzc0dGUi8lK2Rlbm9tYWxpZ25HUSdjZW50ZXJGJy8lKW51bWFsaWduR0ZZLyUpYmV2ZWxsZWRHUSZmYWxzZUYnRkVGSEZD ovenfor.simplify( (a^b)^c );is( (a^b)^c=a^(b*c) );If\303\270lge hj\303\246lpen skal is returnere false, hvis Maple kan godtg\303\270re, at der findes tilf\303\246lde, hvor udsagnet er falsk: Tilf\303\246ldet a = -1, b = 2 og c = 1/2 viser, at simplifikationen ikke altid er gyldig:eval((a^b)^c=a^(b*c),{a=-1,b=2,c=1/2});Vi pr\303\270ver med en lokal antagelse om at c er et helt tal. Bem\303\246rk det dobbelte kolon, der efterf\303\270lges af en Maple-type, her integer:simplify( (a^b)^c ) assuming c::integer;Vi pr\303\270ver en global antagelse:assume(c,integer); simplify( (a^b)^c );Her kunne ogs\303\245 v\303\246re skrevet assume(c::integer);Kapiteloversigt1. Indledning.2. Differentiation3. Integration4. Gr\303\246nsev\303\246rdi, Taylorpolynomium, Sum, F\303\270lge og Produkt5. L\303\270sning af Ligninger6. Differentialligninger7. Line\303\246r Algebra8. Diverse Maplepakker9. Plotning10. Algebraisk Manipulation11. Tal i Maple12. Strenge, Variabelnavne, Evaluering13. Funktioner14. Tabeller og Arrays, Manipulation af Datastrukturer15. Programmering i Maple16. Egne Biblioteker og Pakker