Computeralgebra met Maxima
4. Vereenvoudigen – expressies 4.1. Vereenvoudigen – ratsimp De grote kracht van een Computer-Algebra-Systeem als Maxima ligt daarin, dat niet alleen numerieke expressies vereenvoudigd/berekend kunnen worden, maar ook algebraïsche uitdrukkingen. Hier twee eenvoudige voorbeelden:
Opmerking:
Het vereenvoudigen gebeurt bij een CAS volgens bepaalde regels (afhankelijk van de geïmplementeerde algoritmen). Omdat het omvormen van termen vaak tot verschillende uitkomsten kan leiden, is het ook mogelijk dat de uitkomsten soms van de gewone handmatig uitgevoerde resultaten kunnen verschillen.
Opmerking:
Bij sommige bewerkingen (oplossen van wortelvergelijkingen, …) stuit CAS soms op de grenzen van haar mogelijkheden. Dit heeft dan weer te maken met de aard van het gebruikte algoritme. Zo kan het gebeuren dat CAS een zeer ingewikkelde uitdrukking in een mum van tijd uitrekent terwijl bij een andere relatief eenvoudige – handmatig gemakkelijk uit te voeren – uitdrukking het CAS faalt. In sommige gevallen biedt CAS dan oplossingen aan via eigen programmabibliotheken (packages).
Hint:
Maxima ordent de gebruikte variabelen standaard in de omgekeerde lexicografische volgorde ( de z komt voor de x …. voor de q … voor de p… ). Bovendien probeert Maxima mintekens aan het begin van een uitdrukking te vermijden. Dit leidt soms tot een uitvoer die enigszins verschilt van het gebruikelijke handgeschreven beeld. De ordening van de variabelen kan met de volgende opdrachten worden beïnvloed : orderless(v1, v2, v3, …) resp. ordergreat(v1, v2, v3, …) .
Voorbeeld:
ordergreat ( p, q, a, b, c); p wordt voor q voor a voor b voor c opgesomd.
1
Vereenvoudigen – expressies
Voorbeelden: Na het afsluiten van de invoer via een ENTER wordt de invoerregel overgenomen in het algebravenster. De vereenvoudiging gebeurt dan via het commando : ratsimp(expr) .. ; bijvoorbeeld via het menu “Simplify → Simplify expression”. ratsimp(expr) vereenvoudigt de expressie expr door de rationale functies in expr te combineren en daarna eventueel teller en noemer te delen door de GGD van teller en noemer.
Na dit ordergreat(a,b,c) commando zal dezelfde invoer leiden tot een andere uitvoer in het algebravenster.
Nu de eigenlijke vereenvoudiging:
Controleer even of het antwoord goed is ! Nog een voorbeeld :
2
Computeralgebra met Maxima
4.1.1. Vereenvoudigen van trigonometrische en logaritmische expressies Maxima kent onder andere wortelfuncties, trigonometrische functies, logaritmische functies, exponentiële functies …… . Bij het vereenvoudigen van trigonometrische en logaritmische expressies is het soms handig eerst die expressie uit te schrijven via de opdrachten trigexpand=super resp. logexpand=super.
3
Vereenvoudigen – expressies
4.1.2. Vereenvoudigen van uitdrukkingen met wortelvormen Bijzonder precair is het vereenvoudigen van geneste wortelvormen. Hiertoe is het aan te bevelen het pakket sqdnst met load(sqdnst) te laden. Zoals bij trigexpand en logexpand kan door middel van sqrtdenest de structuur voor de vereenvoudiging in het voor het CAS eenvoudiger bestanddelen worden opgesplitst.
4.2. Ontbinden – uitvermenigvuldigen 4.2.1. Ontbinden in factoren (factor) De opdracht factor (expr) ( ook bereikbaar via het menu “Simplify → Factor expression”) ontbindt expr rationaal met betrekking tot een variabele (dus zonder gebruik van complexe getallen en wortelvormen). Toegepast op natuurlijke getallen zorgt de opdracht factor voor de ontbinding in priemfactoren. Maxima heeft helaas geen directe functie voor de ontbinding in factoren, waarin wortelvormen of factoren met complexe getallen voorkomen. We moeten ons dan behelpen met de opdracht solve (bepalen van nulpunten).
4
Computeralgebra met Maxima
Voorbeelden: Ontbind de volgende veelterm in rationale factoren: x 4 + 3 ⋅ x 3 − 3 ⋅ x 2 − 7 ⋅ x + 6
Ontbind de volgende veelterm in zoveel mogelijk factoren : x3 + 4 x 2 − 2 x − 8
Dit betekent dat we kunnen schrijven: x 2 − 2 = ( x + 2)( x − 2)
Via de solve en subst-opdrachten is het karwei alsnog geklaard. Veronderstel nu eens dat u de volgende breukfunctie zou moeten integreren
x 4 + 3x 2 − 2 . x3 − x
Dat valt niet mee op basis van uw wiskundekennis van het VO. Maxima biedt u de mogelijkheid om deze breuk te schrijven als de som van een aantal eenvoudiger breuken (die u misschien wel kunt integreren) via de opdracht partfrac . Dit proces heet partiële breuksplitsing.
5
Vereenvoudigen – expressies
Kunt u deze breuken wel integreren? Opmerking:
Partiële breuksplitsing is uiteraard geen voorbeeld van ontbinden in factoren, waarbij een expressie wordt geschreven als een product van eenvoudige factoren. Bij partiële breuksplitsing wordt een expressie immers geschreven als een som van eenvoudige termen. Bij zowel het ontbinden in factoren als de partiële breuksplitsing is het doel een min of meer ingewikkelde uitdrukking tot "basisbouwstenen" te vereenvoudigen.
Opgave 4.1 Ontbind het natuurlijke getal 1023 + 1 in priemfactoren en controleer of de factoren inderdaad priemgetallen zijn via de functie primep. Opgave 4.2 Ontbind de veelterm x 4 − 6 x 2 + 8 op 2 manieren in factoren: rationaal en met wortelvormen. Opgave 4.3 Pas partiële breuksplitsing toe op de volgende breuk
2 x5 x2 − 5
4.2.2. Uitvermenigvuldigen (expand) Met de opdracht expand (ook bereikbaar via het menu “Simplify → Expand expression”) wordt een uitdrukking uitvermenigvuldigd. Een sterkere variant (met betere resultaten) is de opdracht ratexpand. Voorbeeld: Uitvermenigvuldigen van de gehele uitdrukking. De opdracht ratsimp (vereenvoudiging) geeft in veel gevallen ook vergelijkbare resultaten.
In deze vorm is de expressie t bijvoorbeeld geschikt om nulpunten te bepalen.
6
Computeralgebra met Maxima
Als we de expressie t zouden willen integreren, dan is deze uitdrukking daar niet zo geschikt voor. Maar partfrac zou hier wel uitkomst bieden:
Opgave 4.4 Schrijf de uitdrukking (2 x − 3 y )3 helemaal uit en probeer het resultaat weer in factoren te ontbinden. Opgave 4.5 Schrijf de uitdrukking (2 x + 5)(5 x3 − 4 x) − ( x 2 + 5 x)(10 x 2 − 4) helemaal uit en ontbind het resultaat in factoren.
4.3. Breuken Om uitdrukkingen, in het bijzonder veeltermen, verder te ontleden, beschikt Maxima over een aantal functies. Daarmee kunnen we teller en noemer van een breuk rechtstreeks benaderen om bijvoorbeeld een veeltermdeling uit te voeren. •
num(b)
retourneert de teller van een breuk.
•
denom(b)
retourneert de noemer van een breuk.
•
divide(t, n)
retourneert quotient én rest van een veeltermdeling t/n
•
quotient(t, n)
retourneert het quotient van een veeltermdeling t/n
•
remainder(t, n)
retourneert de rest van een veeltermdeling t/n.
Voorbeelden:
Dit betekent dus het volgende:
x3 − x 2 + x 1 = x2 + 1 + x −1 x −1
7
Vereenvoudigen – expressies
Dit betekent het volgende:
x3 − x 2 + x = x 2 − x + 1 (de deling gaat op, want de rest is 0). x
Om de breuk te vereenvoudigen gaan we teller en noemer in factoren ontbinden:
We kunnen dus teller en noemer door x-1 delen:
Deze schoolmethode om breuken te vereenvoudigen kan Maxima ook in één slag doen via de opdracht ratsimp ; dat is een typische kracht van een CAS.
8
Computeralgebra met Maxima
Opgave 4.6 Ontbind de veelterm v =12·x4 - 9·x3 - 17·x2 + 15·x – 5 in factoren. Laat zien dat bij deling van v door deze factoren de rest inderdaad 0 is. Bepaal quotient en rest bij deling van v door 3·x2 – 6 en controleer het resultaat.
4.4. Term-substitutie Behalve variabelen kunnen ook hele termen door andere uitdrukkingen vervangen worden. Dit kan in principe met de opdracht subst(a,b,c) : a vervangt b in c. De opdracht ratsubst is een sterkere variant hiervan. Voorbeelden:
Om v handmatig in factoren te ontbinden gaan we de veelterm v vereenvoudigen door x2 te vervangen door u.
We hadden natuurlijk verwacht dat x4 vervangen zou worden door u2. Dit kan wél met ratsubst :
Nu in factoren ontbinden (moet u ook handmatig kunnen):
Nu terugsubstitutie van x2 voor u:
9
Vereenvoudigen – expressies
De eerste factor kunt u ook nog handmatig ontbinden :
De kracht van een CAS zoals Maxima is dat deze hele formulemanipulatie ook in één opdracht kan gebeuren :
Opgave 4.7 Voer de uitdrukking (5 - a·b) / (3 + a·b) in en vervang dan het product a·b door c.
Opgave 4.8 Vereenvoudig de uitdrukking x4y3 + x4y8 door de term xy2 te vervangen door a.
10