Maxima: For den dovne matematiker

kdchjahdskfaywe

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,

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,

lusepuster
lusepuster's picture
Antal: 217
Tilmeldt:
29-10-2005
User is offline
TeXmacs som maxima-interface

Dejlig artikel, Linnk!
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.


shafh.dk
Antal: 93
Tilmeldt:
17-04-2007
User is offline
Cool

Ahh super nice. Det er jo fuldstig som Ti-89'eren. :P
Installerer man btw. Maxisma på samme måde i OpenSUSE?


corfitzulfeldt
Antal: 77
Tilmeldt:
10-10-2005
User is offline
Re: Maxima: For den dovne matematiker

Tilføj Buildservice_science som kilde i opensuse, og installer det vha. Yast.
Overvej også at installere wxmaxima.


Linnk
Antal: 5
Tilmeldt:
15-03-2008
User is offline
Re: Maxima: For den dovne matematiker

Kender godt til TeXmacs, men har ikke haft mulighed for at prøve det da jeg bruger TeXlive og TeXmacs gerne vil have, at jeg bruger (tetex tror jeg det er) en anden LaTeX distribution (oh, og så foretrækker jeg, at skrive LaTeX i hånden, bare for, at lære det grundigt).

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?


lusepuster
lusepuster's picture
Antal: 217
Tilmeldt:
29-10-2005
User is offline
Re: Maxima: For den dovne matematiker

Du kan i givet fald se på den artikel som tjansson er medforfatter på: http://www.gamma.nbi.dk/Galleri/gamma140/frieprog....
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, ...


Outoff
Antal: 20
Tilmeldt:
27-03-2009
User is offline
iMaxima til emacs

God artikel! - Jeg stødte selv på Maxima lidt ved et tilfælde, og synes virkeligt det har været meget brugbart, og nemt at have med at gøre.

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.

http://members3.jcom.home.ne.jp/imaxima/Site/Welco... 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


astoft
Antal: 1
Tilmeldt:
08-09-2009
User is offline
Hvordan løser man en matematisk ligning?

Jeg synes det er synd og skam at man ikke bruger opensource noget mere.
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


jeppester
jeppester's picture
Antal: 228
Tilmeldt:
10-08-2006
User is offline
#7 Jeg er ked af at sige

#7
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.


Remmen
Antal: 78
Tilmeldt:
10-02-2008
User is offline
Re: Hvordan løser man en matematisk ligning?

Til elever i folkeskolen vil jeg hellere anbefale SMath Studio end Maxima. Interfacet er meget lig MathCad og programmet er nemt at komme i gang med. Det er dog ikke open source og kræver Mono for at køre, så der er nok nogle som ikke vil røre det. Det kører desuden på Windows desktops og smartphones hvis man er til sådan noget.

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=...

Udvikles af en russer som ser ud til at være meget lydhør overfor nye forslag.

/Lars


*klonk*
Antal: 249
Tilmeldt:
31-01-2004
User is offline
Re: Maxima: For den dovne matematiker

Flere artikler om matematik tak!

#9 tak for linket, har aldrig set det før, meget spændende.


ask
Antal: 169
Tilmeldt:
14-01-2006
User is offline
Forklaring på Regression formlen i maxima

Er der nogle der kan forklare mig simple_linear_regression
Efter som det ikke er særligt uddybet i manulaen http://maxima.sourceforge.net/docs/manual/en/maxim.... se side 934.


frogmaster
frogmaster's picture
Antal: 3348
Tilmeldt:
20-05-2010
User is offline
That's a hell of a question

That's a hell of a question ...

Måske kan dette hjælpe

http://da.wikipedia.org/wiki/Regressionsanalyse#Si...


quap
quap's picture
Antal: 116
Tilmeldt:
09-11-2004
User is offline
God artikel, keep 'em coming

God artikel, keep 'em coming :-)

Vil lige slå et slag for Octave, Godt alternativ til Matlab.


stra
Antal: 353
Tilmeldt:
08-08-2007
User is offline
#13

Har du set dato for artikel? 2008!!


quap
quap's picture
Antal: 116
Tilmeldt:
09-11-2004
User is offline
Ups næh, det havde jeg

#14:
Ups næh, det havde jeg nu godt nok ikke. - doh, min fejl! :-S


ask
Antal: 169
Tilmeldt:
14-01-2006
User is offline
SF har jeg det.

Men derfor kan man da godt spørge i denne tråd i stedet for at oprette en ny.
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.


ask
Antal: 169
Tilmeldt:
14-01-2006
User is offline
SF har jeg det.

Men derfor kan man da godt spørge i denne tråd i stedet for at oprette en ny.
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.


mrbrown79
Antal: 470
Tilmeldt:
12-01-2010
User is offline
For står bare ikke

#17: For står bare ikke output'et fra simpel_linear_regression.

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