Als het gaat om het oplossen van de wiskundige vergelijking in Linux, hebben we eerder gesproken over GeoGebra, een software voor geometrie en 2D-grafieken. Als u echter op zoek bent naar krachtigere tools, moet u Sage eens proberen. We hebben allemaal gehoord van Matlab of Magma, maar Sage biedt een open source alternatief voor die twee, en is naar mijn mening eenvoudiger te gebruiken.

Installatie

Sage is altijd onder zware ontwikkeling, wat betekent dat er vaak nieuwe verbeteringen worden toegevoegd. Om het te installeren vanaf de bron:

Eerst moet je een aantal afhankelijkheden tevreden stellen.

 sudo apt-get install build-essential m4 gfortran libssl-dev dpkg-dev 

U kunt de bronnen vervolgens downloaden van de officiële pagina. Pak ze uit en start het script vanuit een terminal

 ./maken 

Opmerking : u heeft ongeveer 3 GB vrije ruimte nodig om Sage correct te laten werken. Zorg ervoor dat u ze hebt voordat u de compilatie start (wat enige tijd zal duren).

Als u de binaire versie verkiest, is er ook een PPA beschikbaar voor Ubuntu:

 sudo apt-add-repository -y ppa: goals / sagemath sudo apt-get update sudo apt-get install sagemath-upstream-binary 

U kunt ook alle optionele pakketten installeren:

 sudo apt-get install texlive evince xpdf xdvi tk8.5-dev 

Gebruik

Om Sage te starten, kunt u dit doen met de opdracht

 ./salie 

uit de gedownloade map.

Als u salie vanaf elke willekeurige locatie wilt starten, kunt u een symbolische koppeling maken met

 ln -s [pad naar de sage launcher] / usr / local / bin / salie 

of maak zelfs een alias in je ~ / .bashrc-bestand zoals ik deed:

 alias sage = / home / adrien / sage-5.2 / salie 

Sage is standaard een niet-grafisch hulpmiddel. Bij de lancering zou je zoiets als dit moeten krijgen

Je hebt dan de keuze: ga verder met de console, of ga voor de browser-gebaseerde GUI door te typen

 notebook () 

Beide zijn qua functionaliteit vrijwel hetzelfde. De GUI is intuïtiever, vooral voor plots en grafieken, maar de terminal werkt ook prima. Probeer de opdracht met de GUI

 cirkel ((0, 0), 1, rgbcolor = (1, 1, 0)) 

Je ziet een gele cirkel eronder verschijnen.

Als u hetzelfde doet in de console, wordt uw standaardbeeldviewer geopend en wordt dezelfde cirkel weergegeven.

Opmerking : zowel de GUI als de console hebben een functie voor automatisch aanvullen.

Nu u de interface van de sage hebt gekozen, kunnen we beginnen met praten over de functies zelf. Salie is absoluut enorm, en ik meen het. Het is gewoon niet mogelijk om elk aspect ervan in één artikel te bespreken. In plaats daarvan zal ik u enkele algemene toepassingen tonen die u misschien wilt proberen.

1. Rekenmachine

Ja, Sage kan wat basis wiskunde doen. Optellen, vermenigvuldigen, etc. Omdat het voornamelijk in Python is geschreven, kun je ook de python-syntaxis gebruiken om dingen als integraal deling te doen.

2. Polynomial Roots

Het is vrij gebruikelijk om een ​​polynoom te krijgen en te vragen naar zijn wortels. Bij Sage maak je eerst een polynomische ring met

 P.  = PolynomialRing (RR) 

waarbij x de generator is en RR de echte cijfers. Als u wilt dat uw ring over de rationale getallen komt, vervang dan RR door QQ. Vervolgens kopieert u uw polynoom:

 t = x ^ 2 - 25 

En je vraagt ​​dan om de wortels

 t.roots () 

Opmerking : dit zal de wortels in de basisring van de polynoom en hun veelvouden teruggeven. Als je wilt dat de wortels van een andere basisring komen, zet het dan als een argument voor de functie roots ().

3. Matrix omgekeerd

Als je een beetje in de handel of economie handelt, heb je misschien op een bepaald moment in je leven matrices gezien. Over het algemeen is er een heel proces om de inversen van deze matrices te vinden. Welnu, Sage doet het heel eenvoudig voor je. Maak je matrix over de basisring die je wilt.

 m = matrix (QQ, [[1, 2], [3, 4]]) 

En om te zoeken naar zijn omgekeerde:

 m.inverse () 

4. Grafieken

Sage heeft ook een aantal grafische capaciteiten. Eerder tekenen we een cirkel met

 cirkel ((0, 0), 1, rgbcolor = (1, 1, 0)) 

Ik ben er vrij zeker van dat je begreep dat de eerste parameter het midden van de cirkel was, de tweede de straal en de laatste de kleur van de cirkel in RGB-standaard. Nou, je kunt ook basisfuncties plotten door eerst een variabele te declareren:

 x = var ('x') 

En gebruik vervolgens de plot () functie:

 plot (x ^ 3, (-10, 10)) 

Het eerste argument is de functievergelijking, de tweede is de overspanning. Dus hier vroeg ik om de kubieke functie getoond van -10 tot 10 op de x-plot.

Opmerking : als u Jmol hebt geïnstalleerd, kunt u zelfs 3D-grafieken maken door twee variabelen te declareren

 x, y = var ('x, y') 

En gebruik dan de plot3d () functie:

 plot3d (x ^ 2 + y ^ 2, (x, -2, 2), (y, -2, 2)) 

5. Vergelijkingen oplossen

Soms willen we een oplossing voor een vergelijking, maar de rekenmachine geeft ons alleen een schatting. Het is nog erger als er nog andere variabelen in die vergelijking zitten en we willen dat de oplossing in functie van hen wordt uitgedrukt. Jarenlang op de middelbare school zat ik dat handmatig te doen. Hoe dwaas! Salie doet het perfect. Verklaar al uw variabelen

 x, a, b, c = var ('xab c') 

En gebruik dan gewoon de functie solve (), met de vergelijking (en) als eerste argument, en de variabele (n) waar u na wilt worden uitgedrukt:

 oplossen ([x - 3 * a == 6, x + b * c == 10], x, b) 

Ik wou dat ik dat wist op de middelbare school ...

6. Differentiatie en integratie

Dit is de ultieme toepassing als je echt lui bent. U kunt dit programma gebruiken om functies te differentiëren en te integreren. Zoals gebruikelijk, declareer je variabelen

 x = var ('x') 

En gebruik vervolgens de functie diff () of de functie integrate ().

 diff (x ^ 3 + 4 * x + 16, x) 

voor het onderscheiden en

 integraal (x ^ 3 + 4 * x + 16, x) 

voor integratie.

Conclusie

Sage is echt een ongelooflijke tool. De syntaxis is snel om te leren en blijft redelijk standaard. Het nadeel is dat de documentatie echt iets is dat je moet lezen om een ​​idee te krijgen van wat je echt kunt doen. De applicaties zijn zo talrijk dat je gemakkelijk kunt verdwalen. Je kunt differentiaalvergelijkingen doen samen met cryptografie. En het wordt zo specifiek dat er op dit moment een functie in ontwikkeling is om het splitsingsveld van polynomen over eindig veld te vinden (ja ik heb geen idee wat het betekent).

Heeft u een ander voorbeeld om voor te stellen? Een vraag over Sage? Laat het ons weten in de comments.

Beeldtegoed: Wiskunde door Grote Voorraadfoto.