Python is een generieke programmeertaal van een hoger niveau dan C of Java, waardoor het makkelijker in gebruik is, maar wel enigszins ten koste van de snelheid.
Sage is een uitbreiding op Python, specifiek voor wiskunde. Het biedt een Python-functiebibliotheek met wiskundige objecten en een preparser. De preparser vertaalt je Sage-objecten naar Python. Sage wordt gebruikt om te werken rond wiskundige onderwerpen.
Sage heeft een grafische gebruikersinterface die beschikbaar is in je browser, de Sage Notebook genaamd, of de Sage Worksheet. Op dit moment gebruik je de Sage Notebook.
Let op de fijne rode lijntjes links van de cellen: deze geven aan dat een cel nog niet uitgevoerd is.
Onderbreken van een lange berekening kan met de ESC toets of met Action/Interrupt in het menu bovenaan.
Soms kan iets niet onderbroken worden of werkt Sage niet meer. In dit geval kan je wel nog Action/Restart worksheet doen. Dit stopt het volledige werkblad, met als gevolg dat alle gekozen variabelen verloren gaan.
|
|
Merk op dat Sage de breuk laat staan en niet omzet naar een kommagetal:
|
Wil je het decimaal antwoord, geef dan de teller in met een punt (dus als decimaal getal)
|
Als één van beide getallen decimaal gegeven wordt, geeft Sage het antwoord decimaal
|
Vierkantswortels berekenen:
|
Als je een mooiere wiskundige output wil, kan je show gebruiken
|
Op deze manier gaan we in de toekomst heel veel het commando show gebruiken. Helemaal bovenaan heb je 3 aanvinkknopjes: Typeset Load 3-D Live Use java for 3-D. Vink de eerste knop Typeset aan; waar mogelijk zal Sage nu de resultaten tonen alsof je show had getypt.
Wil je een numerieke benadering van deze uitdrukking, zet dan de uitdrukking tussen de haakjes in N( ).
|
Derdemachtswortels:
|
Sage kent heel wat constanten: $\pi, e, i$ (imaginaire eenheid) $,\phi$ (gulden snede) $,\ldots$. Sage rekent symbolisch met deze getallen (en dus niet met numerieke benaderingen van die getallen - zoals de meeste rekentoestellen dat doen):
|
Waar mogelijk wordt vereenvoudigd / uitgewerkt:
|
Een numerieke benadering kan (zoals hierboven uitgelegd) bekomen worden met "N( )". Een getal a omzetten naar een kommagetal met een expliciet gekozen precisie gebeurt met de methode a.numerical_approx(bits). Je kan ook het argument .n(digits=d) gebruiken, met d het gewenste aantal cijfers in de benadering.
|
|
|
log ( ) is de natuurlijke logaritme (die op rekenmachines meestal met ln( ) aangeduid wordt). Dat kan je merken als je log(10) ingeeft.
|
|
|
|
Een andere basis ingeven, doe je door log(x,b) te gebruiken voor $\log_{\mathrm{b}}(x)$
|
Hierboven werd duidelijk dat Sage de getallen "10" en "10.0" anders interpreteert . Het commando parent( ) geeft de wiskundige verzameling waarvan het object een element is.
|
|
|
Deze ringen en velden hebben ook een naam in Sage: ZZ voor de gehele getallen (Integer Ring), QQ voor de rationale getallen (Rational Field), RR voor de reële (Real Field), CC voor de complexe (Complex Field). Bij de reële en complexe velden zie je een precisie in bits, die standaard gelijk is aan 53. Deze 53 bits komen overeen met ongeveer 16 decimale cijfers. Als je een getal met meer cijfers ingeeft krijg je een grotere precisie.
|
|
Als R zo'n ring of veld is en x een object, dan kan je R(x) gebruiken om x om te zetten naar een element van R. Hiermee kan je getallen omzetten of van type veranderen:
|
|
|
|
Het volgende geeft een foutmelding, weet je waarom?
|
|
Er zijn verschillende manieren om hulp te krijgen in Sage.
De "Help" link rechtsboven bij elk werkblad geeft toegang tot alle documentatie. Erg nuttig zijn de samenvattingen die je vindt in de Quick Reference cards .
Plaats een vraagteken achter een functie om uitleg en voorbeelden van die functie te bekomen en dan klik je op Evaluate of druk op "Tab" na het "?"
|
Een methode is een handeling die je Sage kan laten uitvoeren op een object. Als $x$ een object is, is de notatie over het algemeen $x$.methode(); ook methode($x$) kan gebruikt worden.
|
|
|
|
Een hulpmiddel in Sage is TAB-Completie: als x een object is en je typt x.[TAB] (de TAB-toets op het toetsenbord), dan krijg je een lijst met alle methoden die op x werken. Als je eerst een paar letters typt, enkel de methoden die met die letters beginnen. Als er maar één mogelijkheid is, wordt de naam automatisch aangevuld.
Hierboven werd het getal $a$ ingevoerd als $a=2-3i$. Ga hieronder op zoek naar een methode die het imaginair deel van $a$ teruggeeft.
|
TAB-completie werkt ook als je de syntax methode($x$) wilt gebruiken, maar dan enkel als je al minstens een letter getypt hebt. Zet je cursor op het einde, druk op de TAB-toets en kies uit de lijst de functie die je wil toepassen. Om bijvoorbeeld het complex toegevoegde van het complex getal a te bepalen, typ je co en dan met TAB kies je voor:
|
De eerste variabelen die we beschouwen zijn in feite letters waar we een bepaalde waarde aan toekennen, dit toekennen gebeurt met "=". De waarde wordt niet getoond als die wordt toegekend.
|
|
|
|
|
|
Let op dat je de letters e en i niet zelf toekent als variabele aan een bepaalde waarde, want dan rekent Sage verder met jouw gekozen waarden! Heb je dit toch voor, kan je het rechtzetten door reset() te gebruiken.
|
|
|
Je kan meerdere lijnen in één cel ingeven, merk op dat alleen het laatste resultaat getoond wordt:
|
Gebruik het print commando om eender waar een resultaat te tonen:
|
Genereer de kwadraten van de natuurlijke getallen van 1 t.e.m. 10:
|
Een symbolische variabele is een variabele waar geen numerieke waarde aan toegekend wordt; Sage rekent dan ook symbolisch met deze variabelen. Deze variabelen kan je maken met behulp van var, zoals hieronder gebeurt met $x$ en $y$.
|
|
De variabelen mogen ook uit meerdere letters bestaan en mogen cijfers en underscores (_) bevatten:
|
Elke variabele moet expliciet gemaakt worden, behalve $x$ die standaard een symbolische variabele is. Hieronder verschijnt een foutmelding omdat Sage de variabele $w$ niet kent:
|
Definieer de functie $f(x)=\cos^2{x}$ als volgt:
|
Alleen $f$ vragen, geeft de functie weer:
|
Een bepaalde functiewaarde opvragen:
|
De functie plot dient om de grafiek van een functie te tonen. Deze heeft heel veel opties, kijk maar eens naar de voorbeelden in plot?. Hieronder tonen we hoe we $f$ kunnen plotten waarbij $x$ van $-5$ tot $5$ loopt:
|
Je kan ook verschillende plots tegelijk laten tekenen, elk in andere kleur.
|
Sommige eenvoudige vereenvoudigingen worden automatisch gedaan, andere niet:
|
|
Om vereenvoudigingen te forceren, gebruik je de methode simplify_full (er bestaan een heleboel varianten van simplify):
|
|
Voor sommige vereenvoudigingen heb je canonicalize_radical nodig:
|
|
canonicalize_radical is soms wel onveilig (waarom?)
|
Uitwerken van uitdrukkingen:
|
|
|
$g$ is een functie in twee veranderlijken:
|
Je kan nagaan hoe Sage x,f,z en g kent:
|
|
|
|
Met solve() kan je een vergelijking of een stelsel van vergelijkingen oplossen. Let erop om == te gebruiken in een vergelijking, want het teken = wordt gebruikt om een waarde aan een variabele toe te kennen. Na de komma staat de veranderlijke. We nemen als voorbeeld de vergelijking van de gulden snede:
|
Complexe oplossingen worden ook gevonden:
|
solve dient enkel om symbolische (i.e. exacte) oplossingen te vinden van een vergelijking. Als Sage geen symbolische oplossing kan vinden, krijg je gewoon de vergelijking terug:
|
In dat geval kan je Sage vragen om numerieke oplossingen te zoeken in een bepaald interval:
|
Vergelijkingen mogen ook andere variabelen bevatten, deze worden dan gezien als parameter:
|
Om stelsels op te lossen moeten we eerst kort leren werken met lijsten.
We definiëren een lijst L van de eerste 5 kwadraten:
|
L[n] geeft het element uit de lijst met rangnummer n. Pas op, want Sage begint te tellen vanaf rangnummer 0.
|
|
Om een stelsel op te lossen, steek je de vergelijkingen in een lijst:
|
De doorsnede van een cirkel en een ellips (4 punten in dit geval):
|
$S$ is een lijst van lijsten: de 4 oplossingen zijn S[0], S[1], S[2] en S[3] en elke S[i] is een lijst met een oplossing voor $x$ en een oplossing voor $y$.
|
|
Het rechterlid van een gelijkheid (rhs staat voor right hand side):
|
|
Sage kan ook overweg met ongelijkheden, dan krijg je als oplossing een verzameling punten of intervallen:
|
|
De invoer- en tekstcellen zijn de gewone manier om met het Sage-proces te interageren. Je moet ook je werk opslaan en om dat te kunnen is het nodig dat je de andere elementen van de interface verstaat, zoals de verschillende knoppen en links bovenaan. Hieronder staat een overzicht van de belangrijkste.
Je kan je werk op verschillende manieren bewaren:
|