Nauwkeurigheid | Default is nauwkeurigheid 10 cijfers, te
wijzigen in n cijfers met het commando Digits(n); evalf(x,n); geeft x in n significante cijfers Let op: 1/7; blijft exact, zodat evalf(1/7,n); levert waarde in n cijfers; echter, 1./7; wordt geëvalueerd in 10 (resp. Digits(n)) cijfers, zodat evalf(1./7,30); toch maar 10 (resp. Digits(n)) cijfers geeft. | |
Functies | Functie: f := x-> x^2; g := x-> sqrt( 1-x ); p := proc(x,a) local y: y := x-a: if y = 0 then return 0: else return y*sin(1/y): end if: end proc; q := (x,a,b) -> piecewise(x<=a, x^2, x>a and x<=b, x^3, x>b, x^4); saw := x -> piecewise(sin(Pi*x)>=0, x-floor(x), sin(Pi*x)<0, -x+ceil(x)); Samenstelling h := g@f; Expressies: a := x^3 + 1; Van expressie functie maken (" to apply f" om f(x) te krijgen <=> " to unapply f(x)" om f te krijgen): k := unapply(a,x); | |
Plotten | Verschillende manieren om plot te gebruiken: plot( f , -2..2 ); plot( f(x), x = -2..2 ); plot(a, x = -2..2 ); plot(k, -2..2 ); plot(g@f, -2..2 ); plot((g@f)(x), x = -2..2 ); plot(h, -2..2 ); plot(x -> x^3, -2..2 ); plot(x^2, x = -2..2 ); Functie-evaluatie in voorgeschreven punten: f := x-> sin(x);a:=0;b:=10;N:=20;ymin:=-1;ymax:=1; L := [seq([a+(b-a)*n/N,f(a+(b-a)*n/N)],n=0..N)]: plot([L,L], x = a..b, y = ymin..ymax, style=[line,point],color=[red,red]); plot(CurveFitting[Spline](L,x,degree=3), x = a..b, y = ymin..ymax); Geparametriseerde kromme: plot([ cos(t), sin(3*t), t = 0..2*Pi ], -1.1..1.1, -1.1..1.1,); plot([ 1-cos(t), t, t = 0..2*Pi ], -2.5..0.5, -1.5..1.5, coords=polar ); Als een functie f impliciet gegeven is door x=G(f): x := t -> G(t): f := t -> t: plot([x(t),f(t),t=0..3],labels=["x","f(x)"]); Meervoudige plots: plot([cos(t), -cos(t), cos(t)*sin(20*t)],t=0..3*Pi,color=[red, red, black],linestyle=[DASH, DASH, SOLID], view=[-0.5..10, -1.1..1.1], axes=boxed); with(plots): A := array(1..2, 1..2): for n from 1 to 2 do for k from 1 to 2 do A[n,k]:=plot(cos(k^2*x)/sqrt(1+x^n),x=0..10): end: end: display(A); | |
Wantrouwen | Blijf altijd de resultaten wantrouwen: f := x-> sin( arcsin(x) ); en f := x-> cos( arccos(x) ); worden (in Maple 9.5) foutief (waarom?) vereenvoudigd tot f := x-> x. Evenzo gaat fout: exp( ln(x) ), sqrt(x)^2, enz. alleen sqrt( x^2 )gaat weer wel goed, terwijl ook arcsin( sin(x) ); en arccos( cos(x) ); heel correct (waarom?) niet worden vereenvoudigd tot x. | |
Omwerken | Uitdrukkingen uitwerken en vereenvoudigen: expand( expressie ) werkt haakjes weg (en meer) simplify( expressie ) vereenvoudigt een expressie (maar niet altijd tot wat je wilt......) combine( expressie ) combineert operaties in een expressie, bijvoorbeeld combine( exp(x)^2) ; tot exp(2x) combine( 4*cos(x)^3 ); tot cos(3x) + 3 cos(x) subs( x = a, y = b, expressie(x,y,z,w) ) vervangt onderdelen in een expressie door iets anders sort(expressie) sorteert de termen in een polynoom in aflopende machten, bijvoorbeeld: sort( expand( subs( cos(x) = sqrt(1-sin(x)^2), expand( sin(11*x) )))); Let op: simplify( f(x) / f(x) ); wordt altijd vereenvoudigd tot 1, ongeacht waar en of f(x) = 0. | |
Limieten | limit( (x^3 + 3*x + 1) / (2*x^3 + x^2-7), x = infinity); limit( sin(x) / x , x = 0 ); | |
Complex | Complexe getallen: de I is in Maple de imaginaire eenheid: z := 2 + 3*I; Reëel en imaginair deel: Re(z); Im(z); Argument (let op het gebruikte bereik): argument(z); Omzetten naar polaire notatie (eerst de library "polar" inlezen): readlib(polar): polar(z); Vermenigvuldigen en delen: w := 1-I; z*w; z/w; Complexe oplossingen van vergelijkingen: solve( x^2 + 2*x + 5 = 0, x); solve( x^3 = 1, x ); Complexe e-machten en polaire notatie: a := 2*exp(I*t); b := 3*exp(I*s); simplify( a*b ); Plaatjes van complexe functies (complexe vlak = grondvlak, heuvellandschap daarboven van reëel of imaginair deel) plot3d( Re( (x+I*y)^3 ), x = -2..2, y = - 2..2, axes=boxed ); plot3d( Im( (x+I*y)^3 ), x = -2..2, y = - 2..2, axes=boxed ); plot3d( Re( exp(x+I*y) ), x = -2..2, y = - 2*Pi..2*Pi, axes=boxed ); plot3d( Im( exp(x+I*y) ), x = -2..2, y = - 2*Pi..2*Pi, axes=boxed ); | |
Differentieren | diff(f(x), x);
differentieert de expressie
f(x)
naar
x. D(f) differentieert de functie f, met andere woorden: D(f)(x) = diff(f(x), x), terwijl D(f) = unapply(diff(f(x), x), x). (D@@2)(f) is 2e afgeleide van de functie f. diff(f(x),x$2) is 2e afgeleide van expressie f(x). Merk op: x$5 = x,x,x,x,x. | |
Rijen | a := n-> sqrt(a(n-1) + 2); a(1):=0; L := [seq([n,a(n)],n=1..15)]: plot(L, x = 0..15, y = 0..2.5, style=point, symbol=circle, symbolsize=15); | |
Reeksen | sum((-1)^n/n^2,n=1..infinity); S := N-> - sum( (-1)^n / (1+n^2), n = 1..N); L := [seq([n,S(n)] , n=1..15)]: plot(L, x = 0..15, y = 0..1, style=point, symbol=circle); | |
Bijzondere functies | Afronden op gehelen naar beneden: floor(x); Afronden op gehelen naar boven: ceil(x) ; De sign-functie sign(x):= signum(0,x); De stap-functie H(x):= Heaviside(x). | |
Operanden | Operanden van een functie: op(f(x,y,z))=x,y,z; op(1,f(x,y,z))=x; op(sin(x))=x; op(x^y)=x,y; op(1,x^y)=x; op(2,x^y)=y; De functie zelf: op(0,f(x,y,z))=f; op(0,sin(x))=sin; op(0,x^y)=^; Aantal operanden van een functie: nops(f(x,y,z))=3; nops(sin(x))=1; nops(x^y)=2; Vervang een operand: subsop(0=exp,1=y, sin(x)) = exp(y); Operanden van een list: op([5,6,7,8])=5,6,7,8; op(3,[5,6,7,8])=7; op(0,[5,6,7,8])=list; ; Toepassing: plot([seq(op([x^n, x^(1/n)]),n=1..20)],x=0..1,color=[black,red]); Aantal operanden van een list: nops([5,6,7,8])=4; Uitbreiden van een list: L:=[x1,x2]; L:=[op(L),x3] = [x1,x2,x3]; Vervang een element van een list: subsop(3=a,[x1,x2,x3]) = [x1,x2,a]; Verwijderen van elementen van een list: subsop(2=NULL,[x1,x2,x3]) = [x1, x3]; Toepassing: plot(subsop(20=NULL,21=NULL,[seq(x^(abs(n)^sign(n)),n=-20..20)]),x=0..1,color=[black]); | |
Opslaan als | Worksheet : meest handig en compleet, maar verwijder eerst output met "Edit -> Remove Output -> From Worksheet" Maple Input : meest leesbaar maar invoeren door Copy & Paste |