Introduktion til MAPLE MEGET elementaer - og uden danske bogstaver. Hans J. Munkholm Marts 3 Venstreklikkes der paa en knap med +, aabnes denne del af programmet. Samtidig bliver + til -, og naar man senere venstreklikker paa -, lukkes programdelen igen. De enekelte afsnit skal helst aabnes i raekkefoelge, og ordrerne i hver del (de roede linjer) skal indlaeses (med ENTER paa tastaturet). Senere dele forudsaetter nemlig at Maple har "laert" de tidligere. Hvordan startes programmet? Linu Paa IMADAs Linu maskiner gives ordren maple ("" skal med). Herved startes et Maple Worksheet - en saadan fil har "efternavn".mws Windows I Windows baserede systemer startes programmet, der hedder Maple (evt. med et versionsnummer bagefter). Dette sker enten ved at trykke paa en ikon, der hedder Maple eller ved at finde Maple i listen over programmer, som kan naas fra Start knappen. Hvad faar man saa? Man faar da en side med en masse rullegardinmenuer (File, Edit, View, Insert etc) og en masse kommandoknapper foroven og en blank flade med en prompt af denne type: [ Den lodrette parentes [ afgraenser en "eecution group" som enten kan indeholde en ordre eller et stykke tekst. Ulighedstegnet tilkendegiver, at programmet lige her er i humoertil at modtage en ordre. Her er et eksempel 3 + 4* 5 - *; 3 Bemaerk, at ordren (skrevet med roedt) afsluttes med et semikolon. Derefter laeses den ind ved at trykke paa ENTER knappen. Maple svarer saa med blaat. Bemaerk ogsaa at den eecution group, hvor ordren 3 + 4*5 - * blev skrevet starter med prompten. Det goer alle eecution groups som indeholder ordrer. De eecution groups, som indeholder tekst (f. eks den der laeses her) har derimod ikke noget. Har man en eecution group af formen [, kan den laves om til en af formen [ ved at trykke paa kommandoknappen T (ca midt i kommandoknap-listen), mens cursoren staar lige efter.
Udtryk Maple skelner mellem udtryk og funktioner. Et udtryk kan f.eks. vaere a*^-b*+c; a b + c Man kan give det et navn, f.eks p. Bagefter kan man regne med p: men regningerne udfoeres foerst naar man beder om det. Dvs at Maple beholder det formelle udtryk indtil brugeren beordrer noget andet: p:=a*^-b*+c; p; p^3-p+; p := a b + c a b + c ( a b + c) 3 a + b c + Der skal altsaa mere til for at faa parenteserne ganget ud og udtrykket reduceret. Proev at hoejreklikke paa svaret. Saa kommer der et rullegardin, dom giver en lang raekke ting, du kan goere ved resultatet. Klikke du videre paa en af dem, giver Maple et navn af formen Rn til resultatet (n = foerste gang, dernaest vokser n med hver gang der klikkes paa et resultat for at goere noget ved det. Her er et eksempel, hvor jeg starter med igen at lese udtrykket ind, derfter vaelger jeg Epand Jeg hoejreklikker og vaelger ordren Epand. Resultatet kaldes R4, fordi jeg har haft R, R, R, R3 i brug, men slettet dem uden at fortaelle Maple, at navnene kan genbruges. Jeg hoejreklikker og vaelger nu Collect og derefter. Resultatet kaldes R5, hvor leddene er samlet efter potenseksponenterne i. p^3-p+; ( a b + c) 3 a + b c + R4 := epand((a*^-b*+c)^3-a*^+b*-c+); R4 := a 3 6 3 a 5 b + 3 a 4 c + 3 a 4 b 6 a 3 b c + 3 a c b 3 3 + 3 b c 3 b c + c 3 a + b c + R5 := collect(r4,); R5 := a 3 6 3 a 5 b + ( 3 a c + 3 a b ) 4 + ( b 3 6 a b c) 3 + ( a + 3 a c + 3 b c) + ( b + 3 b c ) c + c 3 Udtryk kan ogsaa differentieres og intergreres. Her er et par eksempler. Bemaerk at Maple selvfoelgelig skal vide hvad den variable, mht hvilken der skal differentieres eller integreres, hedder: diff(r5,); 6 a 3 5 5 a 4 b + 4 ( 3 a c + 3 a b ) 3 + 3 ( b 3 6 a b c) + ( a + 3 a c + 3 b c) + b + 3 b c diff(r4,); 6 a 3 5 5 a 4 b + a 3 c + a 3 b 8 a b c + 6 a c 3 b 3 + 6 b c 3 b c a + b +
int(r4,); 7 a3 7 a 6 3 b + 5 a 5 3 c + 5 a 5 b 3 a 4 b c + a 3 c 4 b3 4 + b 3 3 c b c + c 3 3 a 3 + b c + int(r4,=..4); 6384 a 3 48 a 37 b a 37 c a b 64 b 3 64 + + 384 a b c 7 5 5 3 a + 64 a c + 64 b c + 8 b + 8 4 b c 4 c + 4 c 3 Bemaerk forskellen paa det ubestemte integral og det bestemte. I det sidste angives integrationsintervallet paa formen =..4. Samme format for et interval bruges, hvis man skal tegne grafen for en funktion over et interval. Bemaerk ogsaa, at et udtryk som f.eks. p ovenfor IKKE er en funktion, dvs. Maple forstaar ikke, hvad jeg kunne ske at mene, hvis jeg skriver p(3) eller p(y): p(3); p(y); a( 3 ) ( 3) b( 3 ) ( 3 ) + c( 3) a( y ) ( y) b( y ) ( y ) + c( y)
Substitution i udtryk Maple kan indsaette en vaerdi i et udtryk, som f.eks her subs(=3, p); 9 a 3 b + c subs( = y, p); subs({a=3,b=5,c=-}, p); a y b y + c 3 5
Funktioner Funktionen, hvis vaerdi i tallet er givet ved udtrykket p fra foer, kalder jeg nu f. Jeg kan introducere den saaledes: f:=-a*^-b*+c; f := a b + c For at checke, at Maple forstaar mig rigtigt giver jeg fire eksempler: f(); f(z); diff(f(v),v); diff(f(v),); a b + c a z b z + c a v b Man kunne tro, at jeg kunne bruge udtrykket p i definitionen af funktionen f. Lad os proeve, men kalde resultatet g, for ikke at forstyrre funktionen f g:=-p; g := p g(); g(y); a b + c a b + c Maple forstaar altsaa ikke, at jeg oensker at lade udtrykket p vaere gs vaerdi i tallet. Der er faktisk en ordre, som laver et udtryk til en funktion. Man skal naturligvis fortaelle, hvilke(n) af de stoerrelser, der indgaar i udtrykket, skal vaere de(n) variable i funktionen. Her er tre eksempler, hvor udtrykket p foerst opfattes som funktion af (med a,b,c konstanter), dernest som funktion af og c, og endelig som funktion af a,b, og c. De tre funktioner skal selvfoelgelig have forskellige navne. g:=unapply(p,); h:=unapply(p,(,c)); h := k:=unapply(p,(a,b,c)); g := a b + c (, c) a b + c k := ( a, b, c) a b + c Vi kan lige teste, at f.eks. h virkelig er en funktion af de to variable: h(v,8); + a v b v 8 Logikken bag terminologien unapply er simpel nok, naar man foerst indser den: Unapply taenket paa udtrykket som resultatet af at en funktion har vaeret anvendt (applied) paa nogle variable. Nu u-anvendes funktionen paa resultatet. Saa er man tilbage ved funktionen.
Differentiation og integration af funktioner Vi definerer en funktion af to variable, og leger lidt med den. m:=(u,v)-u^*sin(v)+cos(u+v^); diff(m(u,v),v); diff(m(u,v),v); int(m(u,v),v); m := ( u, v ) u sin( v ) + cos ( u + v ) u cos( v) sin ( u + v ) v u cos( v) sin ( u + v ) v u cos( v) + π cos( u) FresnelC v sin( u) v FresnelS π π Maple kender altsaa en stamfunktion til m(u,v) mht v, men stamfunktionen involverer er par funktioner FresnelC og FresnelS,som ikke alle kender. Man kan faa Maple til at forklare noget om disse funktioner ved flg. ordre (som aabner et nyt vindue med svaret).?fresnelc Her kopierer jeg lidt af svaret ind: FresnelC - The Fresnel Cosine Integral. The Fresnel cosine integral is defined as follows: FresnelC() = int(cos(pi/*t^), t=..); En stamfunktion mht u ser mere bekendt ud. int(m(u,v),u); + 3 u3 sin( v ) sin ( u + v ) Naar man bruger ordren diff(m(u,v), u) er resultatet et udtryk, ikke en funktion. Vil jeg gerne have en funktion ud af differentiation, kan jeg anvende unapply: n:=unapply(diff(m(u,v),u),(u,v)); n := ( u, v) u sin( v ) sin ( u + v ) Multipel differentiation kan klares saaledes (her differentieres to gange mht u, gang mht v) diff(m(u,v),u,u,v); cos( v) + sin ( u + v ) v
Grafen for en funktion (eller flere) af variabel Her er nogle eksempler. Proev at hojreklikke paa billederne. Saa faar du en masse ting, der kan goeres ved billederne. Jeg starter med funktione FresnelC, som dukkede op lige foer. plot(fresnelc(),=-*pi..4*pi);.8.6.4. 6 4 4 6 8..4.6.8 Det ser lidt ud til, at der er for faa punkter i tegningen (Maple beregner et antal stoettepunkter og forbinder dem med rette linjestykker). Man kan regulere antallet af punkter med numpoints plot(fresnelc(),=-*pi..4*pi,numpoints=); Warning, computation interrupted Denne beregning tog lang tid, saa jeg afbroed den. Det goeres ved at trykke paa det 6-kantede STOP skilt i kommandolinjen. Det ser ud som om FresnelC har vandrette asymptoter for - uendelig og -uendelig. Her er en beregning: limit(fresnelc(),=infinity); limit(fresnelc(),=-infinity); - Flere grafer tegnes samtidig ved at anfoere funktionerne i raekkefoelge i {... } eller i [...], adskilt af komma: plot({cos(),sin(*)},=..3*pi);
.5 4 6 8.5 Naar man har cursoren inde paa et billede kan mange ting i billedet laves om ved at trykke paa et ikon i den nederste raekke af ikoner (eller som foer sagt ved at hoejreklikke og faa en rullegardinmenu)
Grafen for en funktion (eller flere) af to variable Eksemplet nedenfor viser, hvordan man tagner grafen for en funktion af to variable, naar defintionsomraadet er et rektangel. Proev at hoejreklikke paa grafen og vaelge nogel af mulighederne fra rullegardinmenuen. Proev isaer de fire forskellige valg for Aes Eller venstreklik paa tegningen og flyt rundt med musen. Eller venstreklik paa tegningen og proev nogel af menukapperne i den nederste raekke knapper i toppen af vinduet. plot3d(^*cos(y)-y^,=-..,y=-3..,aes=frame); 4 4 6 8 3 y Man kan tegne flere grafer samtidig, men her for funktioner af flere variable skal de forskellige funktioner anfoeres i maengdeparentes {... } adskilt af komma (firkantede parenteser virker ikke; proev selv). plot3d({^*cos(y)-y^,y^*sin()},=-..,y=-3..,aes=frame);
5 5 3 y
Vil man gerne tegne definitionsomraadet med, tilfoejer man bare nul-funktionen i {.. }. I saa fald kan det dog vaere en fordel at "snyde" ved at laegge en konstant til hver af funktionerne, saa graferne loeftes fri af definitionsomraadet (og evt. at hinanden). plot3d({,^*cos(y)-y^,y^*sin()},=-..,y=-3..,aes=frame) ; 5 5 3 y plot3d({,^*cos(y)-y^+5,y^*sin()+5},=-..,y=-3..,aes=f RAME);
5 5 5 3 y