Computeralgebra met Maxima
2. Een eerste kennismaking met Maxima Als u nog niet eerder kennis heeft gemaakt met CAS (Computer Algebra System) software, dan lijkt Maxima misschien erg gecompliceerd en moeilijk, zelfs voor het oplossen van eenvoudige wiskundeproblemen op VO-niveau. Dat hoeft echter niet het geval te zijn want Maxima is erg gebruiksvriendelijk en deze eerste kennismaking zal u snel en moeiteloos op weg helpen. Als u de eerste stappen achter de rug heeft, kunt u desgewenst altijd zoeken naar meer specifieke informatie over de mogelijkheden van Maxima in de officiële Maxima handleiding (http://maxima.sourceforge.net/docs/manual/en/maxima.html). U kunt ook in-line, d.w.z. tijdens een Maximasessie, documentatie krijgen door het intypen van een vraagteken gevolgd door een spatie en de zoekterm in de invoerlijn (bijvoorbeeld ? integrate). We kiezen in deze kennismaking voor een pragmatische benadering, waarbij we via eenvoudige voorbeelden laten zien hoe de oplossingen van alledaagse (wiskunde) problemen kunnen worden berekend. Natuurlijk is dit slechts het topje van de ijsberg. Maxima biedt veel meer dan dit, maar ook met een beperkte basiskennis kunt u al goed uit de voeten. Uiteindelijk kost deze eerste kennismaking u slechts weinig tijd. Hieronder introduceren we het gebruik van Maxima. We gaan er daarbij vanuit dat u Maxima heeft geïnstalleerd op uw computer. Zie paragraaf 1.4 voor de installatie-instructies.
Maxima als rekenapparaat U kunt Maxima gebruiken als een snelle en betrouwbare calculator met een willekeurig grote precisie binnen de grenzen van de hardware van uw PC. Maxima verwacht van u dat u een of meer opdrachten en expressies intypt, gescheiden van elkaar door een puntkomma (;), zoals u dat ook in andere programmeertalen zou doen.
Maxima biedt u de mogelijkheid om te verwijzen naar het laatst verkregen resultaat via het % karakter, en ook naar eerdere input of output door de prompts %i (
) resp. %o (). Bijvoorbeeld:
1
Een eerste kennismaking met Maxima
Als zowel teller als noemer van een breuk gehele getallen zijn, dan wordt een vereenvoudigde breuk of een geheeltallige waarde teruggegeven. Deze waarde kan worden benaderd door het gebruik van kommagetallen via de functie float (of bfloat voor grote kommagetallen) of via de sneltoets combinatie CTRL-F :
Zoals hierboven vermeld, vormen grote getallen geen enkel probleem voor Maxima:
2
Computeralgebra met Maxima
Uitrekenen van 33! = 33 ⋅ 32 ⋅ 31 ⋅ 30 ⋅ ……… ⋅ 2 ⋅ 1
:
Constanten en eenvoudige functies Hieronder volgt een lijst van veel gebruikte constanten in Maxima, die u soms nodig heeft: •
%e
het getal van Euler
e ≈ 2,71....
•
%pi
π
π ≈ 3,14....
•
%phi
de gulden snede
ϕ =
•
%i
de imaginaire eenheid
i = −1 ; i 2 = −1
•
minf
reële min-oneindig
−∞
•
inf
reële plus-oneindig
∞
•
infinity
complexe oneindig
1+ 5 ≈ 1,618... 2
We zullen hieronder enkele van deze constanten gebruiken samen met bekende functies:
3
Een eerste kennismaking met Maxima
Definiëren van functies en variabelen Aan variabelen kunnen we een waarde toekennen via een dubbele punt ‘:’ en functies kunnen we definiëren door middel van ‘:=’. De volgende voorbeelden illustreren het gebruik ervan:
Merk op dat Maxima alleen de natuurlijke logaritme kent als de functie log. De logaritme met grondtal 10 is niet standaard beschikbaar, maar u kunt deze zelf als volgt definiëren:
4
Computeralgebra met Maxima
Symbolisch rekenen De opdracht factor stelt ons in staat om een getal in priemfactoren te ontbinden, d.w.z. te schrijven als een product van priemgetallen (bijvoorbeeld: 42 = 2 ⋅ 3 ⋅ 7):
Het resultaat (%o32) moet u lezen als: 231 ⋅ 315 ⋅ 57 ⋅ 7 4 ⋅ 113 ⋅ 132 ⋅ 17 ⋅ 19 ⋅ 23 ⋅ 29 ⋅ 31 We kunnen via factor ook veeltermen in factoren ontbinden:
Veeltermen uitschrijven (haakjes wegwerken) gebeurt via de opdracht expand:
Vereenvoudigen van breuken (rationale uitdrukkingen) kan via de opdracht ratsimp:
Vereenvoudigen van trigonometrische uitdrukkingen verloopt via de opdracht trigsimp:
Het uitschrijven/herleiden van trigonometrische uitdrukkingen verloop via trigexpand :
5
Een eerste kennismaking met Maxima
Merk hierbij op dat Maxima 2x niet als een product accepteert, u dient expliciet te schrijven 2*x om aan te geven dat het hier een product betreft. Als u de TeX weergave van een gegeven uitdrukking wilt tonen, dan kunt u de tex functie gebruiken:
Opmerking:
TeX is een veelgebruikte syntax om wiskundige formules mee te representeren. Meer over TeX vindt u bijvoorbeeld op de site: http://www.ntg.nl/
Oplossen van vergelijkingen en stelsels Vergelijkingen en stelsels van vergelijkingen kunnen eenvoudig worden opgelost via de functie solve ; de oplossingen kunnen ook uit complexe getallen bestaan (van de vorm a + bi):
2D en 3D tekenen Maxima biedt de mogelijkheid om tweedimensionale en driedimensionale plaatjes/grafieken te tekenen : ook is het mogelijk meerdere functies in één plaatje te tekenen.
6
Computeralgebra met Maxima
De functies plot2d en plot3d werken heel eenvoudig zoals u hieronder kunt zien. Bij 2D plots geeft de tweede parameter het bereik van de x-waarden aan ; bij een 3D plot geven de tweede en derde parameter het x-bereik resp. het y-bereik van de te plotten grafiek aan. Overigens kan het plotten nog veel eenvoudiger verlopen door middel van een dialoogvenster, dat getoond wordt via het menu “Plotting → Plot2d / Plot3d”. Via dat dialoogvenster kunt u ook nog gebruik maken van allerlei extra opties voor het verfraaien van de grafieken (bijvoorbeeld het tekenen van de assen, aanbrengen van een rooster, etc.).
25 20
x^2-x-6
15 10 5 0 -5 -10
-4
-2
0 x
2
20
4
x^2 x*sin(x)
15 10 5 0 -5 -10 -15
-4
-2
0 7 x
2
4
Een eerste kennismaking met Maxima
cos(y)+sin(x) 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2
2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -6
-4
-2
0
2
4
6-6
-4
-2
0
2
4
6
Met behulp van het cursorkruis is het ook mogelijk de grafiek op het scherm te roteren.
Limieten De algemene gedaante van een limietopdracht ziet er als volgt uit limit (expr, x, val) ; hierbij wordt de limiet berekend van expr als de reële variabele x nadert tot de waarde val :
8
Computeralgebra met Maxima
Differentiëren De basisopdracht bij het differentiëren is diff (expr, x); hierbij wordt de eerste afgeleide van expr naar x geretourneerd:
We kunnen ook hogere afgeleiden berekenen door de orde als een extra parameter mee te geven :
Integreren Maxima biedt verschillende mogelijkheden om te integreren. Om symbolisch te integreren gebruiken we integrate (expr, x) :
9
Een eerste kennismaking met Maxima
Voor bepaalde integralen integrate (expr, x , onder, boven) moeten we de onder- en bovengrens vermelden als derde resp. vierde parameter :
Als de functie integrate niet in staat is een bepaalde integraal te berekenen, dan kunt u de integraal benaderen door een van de beschikbare numerieke methodes (bijvoorbeeld romberg, nadat u via load (“romberg”) het pakket romberg heeft geladen):
Sommen en producten Voor het berekenen van sommen en producten zijn de functies sum en product beschikbaar. De functie simpsum (simplify sum) vereenvoudigt, als dit mogelijk is, de berekende som. Met behulp van het product kunt u ook uw eigen versie van de functie faculteit maken. Bij de opdracht sum (expr, k, begin, eind ) worden de waarden van expr gesommeerd, waarbij de index k loopt van begin tot en met eind:
10
Computeralgebra met Maxima
Reeksontwikkelingen Reeksontwikkelingen zijn belangrijke gereedschappen in de dagelijkse praktijk van de wiskunde. Via reeksontwikkelingen kunnen (ingewikkelde) functies benaderd worden door veeltermen. De functie powerseries (expr, x, a) retourneert de algemene vorm van de machtreeks van expr in de variabele x rond het punt a. De functie taylor (expr, x, a, n ) geeft een veeltermbenadering van de orde n rond het punt a van de uitdrukking expr als functie van x:
11
Een eerste kennismaking met Maxima
Via een plaatje kunt u dan zie hoe goed de Taylorbenadering is. De plaatjes kunt u ook inline verkrijgen door de opdracht plot2d te vervangen door wxplot2d:
10
1+x+x^2/2 %e^x
8 6 4 2 0 -3
-2
-1
0 x
1
2
3
Vectoren en matrices Vectoren en matrices worden tegenwoordig op velerlei terreinen als handige wiskundige hulpmiddelen gebruikt. Ter illustratie laten we hier zien hoe we deze kunnen gebruiken bij het oplossen van stelsels vergelijkingen. We kiezen als voorbeeld het volgende stelsel van 4 vergelijkingen met vier onbekenden: 2 p + 3q − r + s = 6 p − 2q + 3r − s = −2 4 p + q − 2r + 3s = 8 3 p − 4q + r + 2 s = 1
of in vector-matrixnotatie
12
2 3 −1 1 p 6 1 −2 3 −1 q −2 ⋅ = 4 1 −2 3 r 8 3 −4 1 2 s 1
Computeralgebra met Maxima
We kunnen dit stelsel nog compacter schrijven als A ⋅ x = b , 2 3 −1 1 6 1 −2 3 −1 −2 met A = , b = en x = 4 1 −2 3 8 3 −4 1 2 1
p q r s
Matrix A heet de coëfficiëntenmatrix Vector b bevat de rechterleden van het stelsel vergelijkingen Vector x bevat de 4 onbekenden p, q , r en s
De matrix A en de vector b voeren we als volgt in :
De oplossing van het stelsel x = A−1 ⋅ b is in Maxima eenvoudig als volgt te realiseren.
Hopelijk vond u deze eerste kennismaking aardig en nuttig om u op weg te helpen met Maxima. CAS beschikt over krachtige gereedschappen en als u de moeite neemt om te leren hoe u deze op gepaste wijze kunt gebruiken, zult u ontdekken dat dit een goede tijdsbesteding was.
13