Användarmanual till Maple Oktober, 006. Ulf Nyman, Hållfasthetslära, LTH. Introduktion Maple är ett mycket användbart program för symboliska och i viss mån numeriska beräkningar. I Maple finns ett stort antal inbyggda matematiska funktioner för symbolisk manipulering av uttryck, ekvationslösning, derivering, integration mm. Antag till exempel att man vill bestämma integralen sin x cos 3 x dx vilken kan lösas genom att använda en trigonometrisk identitet och substitution. Detta medför ganska ansenliga handräkningar och nyttan med att låta Maple utföra dessa inses snabbt. Detaljerad beskrivning av de inbyggda funktionerna finns under Help menyn. Hjälp för ett specifikt kommando kan dessutom fås genom att skriva?kommando. Maple erbjuder också ett programmeringsspråk med vilket man kan konstruera egna funktioner. Exekvering i Maple sker via en kommandoprompt > där variabler och funktioner kan definieras. Ett kommando avslutas alltid med ; eller :. I det förstnämnda fallet repeteras kommandoraden vilket bekräftar en operation. I det sistnämnda fallet utförs operationen men utan repetition. Installation Programmet kan laddas hem av studenter vid Lunds universitet under adressen www.student.lu.se. Tilldelning av variabler och funktioner En variabel tilldelas ett värde med :=, till exempel a = skrivs > a:=sqrt(); Observera att tilldelningen är symbolisk (exakt), för att erhålla ett närmevärde används evalf enligt > evalf(a); vilket ger svaret.44356. Ett uttryck av x och y, till exempel f = x + y 3 + π, skapas genom
> f:=x^+y^3+pi; Funktioner och uttryck kan också tilldelas på andra sätt vilket dock inte behandlas här. En variabel kan substitueras i ett uttryck med kommandot subs. Antag till exempel att x och y vill ersättas med värdena 3 och 4 i uttrycket ovan. Detta görs med > subs(x=3,y=4,f); vilket ger 73 + π. Ibland kan det också vara nödvändigt att rensa variabler och deras värden vilket görs med kommandot restart;. Algebra Ekvationer kan enkelt definieras i Maple för manipulering. Antag att man till exempel vill lösa ut x ur z = x + 4y vilket görs med raderna > ekv:=z=*x^+4*y; > solve(ekv,x); och Maple returnerar båda rötterna för x. Kommandot solve klarar också att lösa system med flera ekvationer. Satserna > ekvr:={x+*y=,3*x-y=0}; > losn:=solve(ekvr,{x,y}); ger svaret x = /7, y = 3/7. Andra användbara funktioner för manipulering av uttryck är också simplify, factor, expand och coeff. Till exempel kan polynomet faktoruppdelas enligt > poly:=x^6+x^4+x^+; > factor(poly); vilket returnerar (x + )(x 4 + ). x 6 + x 4 + x + Maple har också funktioner för att hantera vektorer och matriser. I detta fall måste initiering av ett funktionsbibliotek göras med > with(linalg); För att utföra multiplikationen skriver man Au = 3 5 x y = x + 3y 5x + y
> A:=array(,3,5,); u:=array(x,y); > multiply(a,u); Istället för multiply kan man också skriva evalm(a&*u);. Funktionen linsolve är användbar för att lösa ekvationssystem, till exempel 5 Au = b, b = löser man med > linsolve(a,b); vilket ger lösningen x =, y =. Kommandot > inverse(a); hittar inversen till A A = 3 3 5 Derivator och integraler Derivatan av ett uttryck bestäms med hjälp av kommandot diff. Till exempel för uttrycket f ovan fås derivatan med avseende på x genom > diff(f,x); vilket ger x och andraderivatan med avseende på y, i punkten y = 3, genom > subs(y=3,diff(f,y$)); vilket returnerar 8. Man kan också använda operatorn D för att definiera derivatan av en funktion, till exempel > D(x^3)(); betecknar derivatan av x 3 utvärderad i punkten. Maple svarar här med 3D(x)()x() eftersom x betraktas som en funktion snarare än en oberoende variabel. Det finns också funktioner för att bestämma vektor gradienten av ett uttryck, med > grad(f,vector(x,y)); fås f x f y Vidare kan Jacobianen för en vektor bestämmas > v:=vector(3*x*y,y^3); > jacobian(v,x,y); = 3 x 3y
vilket ger matrisen 3y 3x 0 3y Primitiva funktioner bestäms i Maple med kommandot int, alltså kan F = fdx fås med > int(f,x); vilket ger F = x 3 /3 + xy 3 + πx. Observera att man själv får addera en integrationskonstant för vidare beräkningar. Bestämda integraler skrivs på samma sätt fast med angivna integrationsgränser > int(cos(x),x=0..pi/4); som returnerar /. Även dubbelintegraler kan bestämmas med Doubleint, observera versalen. Kommandot måste föregås med satsen with(student);, dessutom använder Doubleint en icke utvärderad form av int vilket innebär att utvärdering måste ske med value. Till exempel beräknas med 0 0 fdxdy > with(student): > value(doubleint(f,x=0..,y=0..)); vilket ger resultatet 4/3 + π. Differentialekvationer I Maple finns en funktion, dsolve, för att hitta exakta lösningar till ordinära differentialekvationer. Om randvillkor anges tillsammans med differentialekvationen ges den explicita lösningen, i annat fall returneras lösningen med integrationskonstanterna C, C,...C n. Anta till exempel att man vill bestämma förskjutningsfördelningen för en stång med tvärsnittsarean A och E-modulen E. Vidare gäller förskjutningen u = 0 vid x = 0 och dragkraften F vid x = L. Stångproblemet formuleras då och skrivs i Maple EA d u dx = 0, > dekv:=e*a*diff(u(x),x$)=0; > rv0:=u(0)=0; > rvl:=e*a*d(u)(l)=f; > dsolve({dekv,rv0,rvl},u(x)); vilket ger u(x) = F EA x. EAdu = F, u(0) = 0 dx x=l 4
Grafik Uppritning av ett uttryck i Maple kan utföras med kommandot plot. Man anger först uttrycket och sedan vilket intervall man önskar för x-axeln, till exempel > plot(tan(x),x=-pi/4..pi/4); Vill man rita flera kurvor i samma diagram med olika färg kan skriva > expr:=tan(x),cos(x); > intrval:=x=-pi/4..pi/4; > plot(expr,intrval,color=blue,red,scaling=constrained); där scaling=constrained anger att skalan är lika för både x och y axeln. 5
Övningar. Lös ekvationssystemet a b c d u v Vad står nämnaren för i de erhållna lösningarna?. Tilldela f uttrycket coshx samt bestäm dess derivata. Rita också de båda uttrycken i intervallet < x <. 3. Bestäm en primitiv funktion till e ax sin bx 4. Bestäm integralen b a x dx För att lösa denna integral behöver man först ange att a > 0, b > 0 med assume kommandot, skriv?assume för att få ledning om detta. 5. En balk med böjstyvheten EI är fast inspänd vid x = 0 och belastas vid x = L med en uppåtriktad tvärkraft V. Dessutom verkar den nedåtriktade utbredda lasten q y längs balken. Om Bernoulli s antagande anses gälla kan problemet formuleras enligt EI d4 v dx 4 = q y, EI d3 v dx 3 = V, x=l = EI d v dx = 0, x=l dv = 0, v(0) = 0 dx x=0 Bestäm utböjningen v(x) längs balken. Prova att ersätta x med L, och lastfallen q y = 0 respektive V = 0 i det erhållna uttrycket för v(x). Observera att I är reserverat för komplexa tal i Maple. 6
Svar. u = d b ad bc, v = a c ad bc Nämnarna innehåller determinanten av koefficientmatrisen.. f = coshx, df dx = sinhx 3 - - 0 0 -x - -3 f dfdx 3. e ax (a sin bx b cos bx) a + b 4. b 5. q y = 0: V = 0: a dx = ln b ln a x v(x) = (V L 6q yl 4V x + 4q y Lx q y x )x 4EI v(l) = V L3 3EI v(l) = q yl 4 8EI 7