Maxima: For den dovne matematiker
Maxima er det man kalder et CAS, Computer Algebra System, hvilket vil sige, at det er en avanceret lommeregner. I denne artikel vil vi kigge lidt på den funktionalitet som Maxima udbyder, samt vise hvordan man kan løse enkle matematiske problemer med minimalt besvær.
Først skal vi lige have styr på den basale del af Maxima. I Ubuntu skal du skrive kommandoen,
for at installere programmet. Jeg vil lige gøre opmærksom på, at Maxima kører i terminalen. Det skal dog ikke skræmme dig fra at prøve det, hvilket du gør ved, at skrive,
i terminalen. Der findes også en grafisk brugerflade til Maxima som jeg måske vil dække senere i en anden artikel.
Du vil nu se en besked fra Maxima som fortæller om hvilken version du har installeret og lidt om licensen. Den sidste linje skulle gerne ligne dette,
Hvis du nu taster
Du kan også udregne mere avancerede ting, så som,
For at få et forståeligt tal, altså et læsbart resultat, kan du bruge funktionen
Så Maxima understøtter altså en hel del funktioner. Her fik vi demonstreret en af de trigonometriske funktioner, samt kvadratrods funktionen. Men Maxima kan langt mere end dette. Den er en veludrustet symbolsk solver. I dette eksempel starter vi med, at deklarere to funktioner,
Vi kan nu finde skæringspunktet af de to linjer ved at finde det punkt hvor de to funktioner er ens, derfor løser vi ligningerne for
Nu ved du hvordan man løser almindelige ligninger i Maxima. Det er også muligt at differentiere ligninger, som f.eks.,
Vi kan selvfølgelig også integrere ligningen for et specifikt interval, f.eks. for
En sidste nyttig ting er, at du kan deklarere variabler. Dette gøres med kolon operatoren,
Du bør nu kende til de mest basale redskaber i Maxima. Det kan på det stærkeste anbefales, at læse noget af al den anden glimrende dokumentation der findes om Maxima. Heraf kan anbefales,
Først skal vi lige have styr på den basale del af Maxima. I Ubuntu skal du skrive kommandoen,
sudo aptitude install maxima
for at installere programmet. Jeg vil lige gøre opmærksom på, at Maxima kører i terminalen. Det skal dog ikke skræmme dig fra at prøve det, hvilket du gør ved, at skrive,
maxima
i terminalen. Der findes også en grafisk brugerflade til Maxima som jeg måske vil dække senere i en anden artikel.
Du vil nu se en besked fra Maxima som fortæller om hvilken version du har installeret og lidt om licensen. Den sidste linje skulle gerne ligne dette,
(%i1)
Hvis du nu taster
2 + 2;
på tasterne og trykker enter, skulle du gerne se følgende,
(%i1) 2 + 2;
(%o1) 4
Du kan også udregne mere avancerede ting, så som,
(%i2) sin(0.5) * (sqrt(%pi) + 1);
(%o2) 0.4794255386042 (sqrt(%pi) + 1)
For at få et forståeligt tal, altså et læsbart resultat, kan du bruge funktionen
float()
,
(%i3) float(sin(0.5) * (sqrt(%pi) + 1));
(%o3) 1.329185180725674
Så Maxima understøtter altså en hel del funktioner. Her fik vi demonstreret en af de trigonometriske funktioner, samt kvadratrods funktionen. Men Maxima kan langt mere end dette. Den er en veludrustet symbolsk solver. I dette eksempel starter vi med, at deklarere to funktioner,
(%i4) f(x) := 2*x + 5;
(%o4) f(x) := 2*x + 5;
(%i5) g(x) := -0.5*x - 3;
(%o5) g(x) := -0.5*x - 3;
Vi kan nu finde skæringspunktet af de to linjer ved at finde det punkt hvor de to funktioner er ens, derfor løser vi ligningerne for
x
,
(%i6) float(solve(f(x) = g(x), x));
(%o6) [x = - 3.2]
Nu ved du hvordan man løser almindelige ligninger i Maxima. Det er også muligt at differentiere ligninger, som f.eks.,
(%i7) h(x) := 4*x^2 + 0.5*x - 9;
(%o7) h(x) := 4*x^2 + 0.5*x - 9
(%i8) diff(h(x), x);
(%o8) 8 x + 0.5
Vi kan selvfølgelig også integrere ligningen for et specifikt interval, f.eks. for
x
mellem 0 og 10,
(%i9) integrate(8 * x + 0.5, x, 0, 10);
(%o9) 405
En sidste nyttig ting er, at du kan deklarere variabler. Dette gøres med kolon operatoren,
(%i10) r : 4.5;
(%o10) 4.5
(%i11) float(2 * %pi * r);
(%o11) 28.27433388230814
Du bør nu kende til de mest basale redskaber i Maxima. Det kan på det stærkeste anbefales, at læse noget af al den anden glimrende dokumentation der findes om Maxima. Heraf kan anbefales,
- A 10 minute tutorial for solving Math problems with Maxima
- Introduction to Maxima
- Maxima reference manual in English
Kommentarer18
TeXmacs som maxima-interface
jeg bruger Maxima rigtig meget.
Vidste du, at TeXmacs fungerer som interface til Maxima? Det betyder, at man kan foretage inline beregninger i sin artikel, rapport m.m. TeXmacs kan oversætte formatteret matematisk input (integraltegn, summationstegn osv) til Maxima-kode og den anden vej, så man kan få smukt formatteret input og output fra maxima i sit dokument. Og der er endnu flere muligheder end det. Læs denne artikel for en nem og pædagogosk vejledning i at bruge Maxima sammen med TeXmacs.
Ubuntu har et problem i denne sammenhæng: i stedet for bash linker den sin sh til dash, og det ødelægger kompatibiliteten med TeXmacs/Maxima-interfacet. Dette er dog utrolig nemt at rette: Åbn filen /usr/lib/texmacs/TeXmacs/bin/maxima_detect. Denne skal åbnes med administratorrettigheder, for eksempel ved at trykke Alt+F2 og skrive
gksudo "gedit /usr/lib/texmacs/TeXmacs/bin/maxima_detect"
(her skal citationstegnene med!)Når filen er åbnet, ændrer man den første linje fra "#!/bin/sh" til "#!/bin/bash" (uden citationstegnene), genstarter TeXmacs, og vupti! finder den Maxima-plugin'et.
En anden ting man kan komme til at savne er muligeden for at få et plot til at vise sig i dokumentet i stedet for i et separat vindue. For at give denne mulighed kan man hente scriptet tmplot, som tilføjer denne funktionalitet. Download arkivet på siden, kør installeringsscriptet og skriv
load(tmplot)
som det første i din session, så kan du ved at køre kommandoen tmplot eller tmplot3d få dine grafer til at optræde smukt inde i dokumentet. Yderligere info kan findes på tmplot-siden.Cool
Installerer man btw. Maxisma på samme måde i OpenSUSE?
Re: Maxima: For den dovne matematiker
Overvej også at installere wxmaxima.
Re: Maxima: For den dovne matematiker
Glæder mig, at I kunne lide artiklen. Planlægger, at skrive en som omhandler det grafisk interface til Maxima.
Til sidst planlægger jeg, at omskrive de referencer jeg har til gnuplot, LaTeX, maxima og fityk til en guide som kan bruges af studerende, da det er de værktøjer jeg bruger på min uddannelse som erstatning for de Windows programmer som skolen tilbyder os.
Ville det have nogen interesse?
Re: Maxima: For den dovne matematiker
den kan sagtens tåle en udvidelse, men der er jo ikke nogen grund til ikke at lade sig inspirere den.
På Ubuntu 7.10 har jeg ikke noget ptoblem med at få TeXmacs og TeXLive til at spille sammen. Foretrækker også rendyrket LaTeX, men jeg sværger, teXmacs er et dejligt, dejligt interfave til TeXmacs, Gnuplot, Shell, Octave, Matlab, maple, Mathematica, Mupad, ...
iMaxima til emacs
I forlængelse af det lusepuster skriver vedr. TeXmecs: Hvis man ikke ønsker et direkte stand-alone program, som TeXmecs, kan man benytte sig af iMaxima, som er et plugin(?) til emacs. Dette plugin gør det muligt at få genereret LaTeX-formaterede formler, som man så kan kopiere ind i sit LaTeX-dokument nemt og bekvemt.
Bruger selv emacs sammen med imaxima, da TeXmecs ikke faldt helt i min smag.
På http://members3.jcom.home.ne.jp/imaxima/Site/Welcome.html kan der findes nogle screenshots og information omkring imaxima - og selvfølgelig download mulighed :)
Obs. Man skal være opmærksom på at man skal bruge "breqn"-pakken til LaTeX for at overstående virker. Pakken ligger f.eks. i "texlive-math-extra" i Debian/ubuntu.
Mvh. Morten
Hvordan løser man en matematisk ligning?
Jeg er matematiklærer i Virum, og jeg ved hvor store problemer der er med at distribuere licenser til MathCad og Maple.
Maxima er frit tilgængeligt, og det er let at installere.
Se her
http://kortlink.dk/6xmv
Venligst
Søren Toft
Re: Hvordan løser man en matematisk ligning?
SMath har også funktioner som solve og kan plotte funktioner i både 2D og 3D.
http://en.smath.info/forum/default.aspx?g=posts&t=202
Udvikles af en russer som ser ud til at være meget lydhør overfor nye forslag.
/Lars
#7
Jeg er ked af at sige
Jeg er ked af at sige det, men jeg kan desværre ikke åbne din side, da den er i et eller andet MS-format, der kræver et plugin for at virke.
Tror det ville være smart at gemme i et mere tilgængeligt format, hvis du vil noget med dit open source budskab :D.
Re: Maxima: For den dovne matematiker
#9 tak for linket, har aldrig set det før, meget spændende.
Forklaring på Regression formlen i maxima
Efter som det ikke er særligt uddybet i manulaen http://maxima.sourceforge.net/docs/manual/en/maxima.pdf. se side 934.
That's a hell of a question
Måske kan dette hjælpe
http://da.wikipedia.org/wiki/Regressionsanalyse#Simpel_line.C3.A6r_regr…
God artikel, keep 'em coming
Vil lige slå et slag for Octave, Godt alternativ til Matlab.
#13
Ups næh, det havde jeg
Ups næh, det havde jeg nu godt nok ikke. - doh, min fejl! :-S
SF har jeg det.
For samtidigt ville folk der ikke kendte til maxima eller wxmaxima læse den glimrende artikkel. Så jo jeg ved godt den er gammen. Men programmet er ret godt. For står bare ikke output'et fra simpel_linear_regression.
Og der er ikke et decideret maxima forum med mindre der snakkes om en bil hvilken jeg ikke har brug for at vide noget om.
SF har jeg det.
For samtidigt ville folk der ikke kendte til maxima eller wxmaxima læse den glimrende artikkel. Så jo jeg ved godt den er gammen. Men programmet er ret godt. For står bare ikke output'et fra simpel_linear_regression.
Og der er ikke et decideret maxima forum med mindre der snakkes om en bil hvilken jeg ikke har brug for at vide noget om.
For står bare ikke
Er det matematikken eller softwaren, du ikke forstår?
Som det fremgår af manualen returnerer den et inference_result objekt. Du kan trække de enkelte parametre ud af objektet med bl.a. 'take_inference'. Fx.:
load("stats");
s:[[125,140.7], [130,155.1], [135,160.3], [140,167.2],[145,169.8]];
z:simple_linear_regression(s,conflevel=0.99);
take_inference(model,z);
Returnerer:
1.405999999999985*x-31.18999999999804