# 10 minutt (wx)Maxima leksjon

Velkommen til wxMaxima!
I denne introduksjonen vil du lære det grunnleggende om Maxima
og wxMaxima. Maxima er et CAS (Computer Algebra System) i likhet
med systemer som Mathematica, Maple og andre. Maxima er lagt som
en kommandolinje applikasjon - men med wxMaxima som GUI (Graphical
User Interface) blir det lett å taste inn matematikk ved hjelp av
interaktive menyer.

La oss sarte med noen enkle beregninger!
Nedenfor er en beregningscelle med en enkel addisjon. Plasser
kursoren i cella og tast SHIFT-ENTER for å beregne.

1 + 1;

Hvis du ikke fikk noen feilmeldinger er Maxima riktig satt opp,
hvis ikke kan du sjekke med wxMaxima nettside
(http://wxmaxima.sourceforge.net/) hvordan wxMaxima og Maxima
skal settes opp.

Antar at du har fått det til å virke, og fortsetter med noe 
flere beregninger (som blir utført når du plasser kursoren i
cella og taster SHIFT-ENTER( for å beregne).

5!;
% * 10;
%o1 * 100;
1 / 3;
2 / 3.0;

I cella ovenfor er det tastet inn 5 "linjer" til Maxima. Hver linje
må slutte med en ";" eller en "$". Hvis linja slutter med en ";" vil
Maxima vise resultatet bak %o.. der .. er nummeret på kommandolinja,
men slutter linja med en "$" blir visning av resultatet undertrykket.
Det kan være nyttig ved større beregninger.

Legg også merke til at Maxima i utgangspunktet gir svar med eksakte
verdier som "1/3" til forskjell fra numeriske applikasjoner (Matlab,
mm), mens derimot beregningen "2/3.0" vil gi tilnærmet svar. Det
samme gjelder for røtter og potenser med heltall og heltallsbrøker.

Vi kan styre Maxima til å lage tilnærming med desimaltall med
med funksjonen float. Klikk i cella nedenfor og beregn!

sqrt(2 * %pi);
float(%);

I linja "float(%);" ble det brukt symbolet "%". Dette er en
systemvariabel som holder svaret av siste beregnede linje.
De nummererte symbolene "%o1", "%o2", .. holder svarene for de
verdiene som ble beregnet i de cellene.
Vi kan også lagre både tall og regneuttrykk i variabler. Da bruker
vi skrivemåten "variabelnavn : verdi" eller "variabelnavn : uttrykk";
Evaluer cella nedenfor og legg merke til resultatet.

radius: 10 $
hoyde: 100 $
areal: %pi * radius^2;
volum: areal * hoyde;

La oss evaluere det siste resultatet numerisk:

float(%);

Til nå har vi brukt axima som en enkel kalkulator. La oss prøve
matematikk som vanlige kalkulatorer ikke kan. Ubestemte og
bestemt integraler:

integrate( sin(x), x);
integrate( sin(x), x, 0, %pi);

Har definerer vi en funksjon, beregner funksjonsverdi og 
integrerer funksjonen!

f(x) := x^2 + a$
f(5);
f(5), a = -5;
integrate( f(var), var );

Noen ganger trenger Maxima mer informasjon for å evaluere et uttrykk
og stiller oss et spørsmål. En ledetekst dukker opp og indikerer at
vi må besvare et spørsmål. Vi må taste inn et av valgene og deretter
SHIFT-ENTER.
I cella nedenfor skal et integral beregnes. Du kan prøve å taste inn
bare "p" i stedet for "positive":

integrate( 1 / (x^2 + a), x);

Vi kan også informere Maxima på forhånd med funksjonen "assume".
En slik informasjon kan oppheves med kommandoen "forget".
(Obs: du kan få hjelp med alle funksjoner ved å klikke på navnet
og trykke F1-tasten. Prøv!)

assume(a > 0)$
integrate( 1 / (x^2 + a), x);
forget(a > 0)$

Nå som vi har fått med oss det elemntære, kan vi se på noen
generelle matematiske eksempler! Husk - hvis du vil vite mer
om en spesiell funksjon kan du klikke på den og trykke F1.

Likninger løses med funksjonen solve:

solve(a*x^2 + b*x + c = 0, x);

Så litt lineær algebra. Matriser lages med funksjonen matrix.
Matriser kan inneholde ikke-numeriske uttrykk. Den inverse av en
matrise finnes med funksjonen "invert", og som operator for
matrisemultiplikasjon brukes ".".

A: matrix([1,-1],
          [1,sin(c)]);
B: invert(A);

A.B;
ratsimp(A.B);

I den siste linja er "ratsimp" brukt til å forenkle resultatet av
"A.B". Maxima har et utvalg funksjoner til ulike typer forenklinger,
se i menyen. Forenklinger kan gjøres på mange måter, og hvis du
ikke er helt kjent med dette kan "ratsimp" væer en grei start.

La oss lage et 2D og 3D plot!

wxplot2d([sin(x), cos(x)], [x,0, 2*%pi]);
wxplot3d( exp(-x^2 - y^2), [x,-2,2],[y,-2,2]);

La oss prøve derivasjon med funksjonen "diff":

f(x) := x^2 $
diff(f(x), x);
g(y) := sin(y)$
g(f(x));
diff( g(f(x)) , x);

Joda, Maxima kjenner til kjerneregelen!

Og til slutt, la oss løse en andregrads ordinær
differensiallikning, ODE:

y''(t) + omega^2 * y(t) = 0

assume(omega > 0);
ode2( 'diff(y, t, 2) + omega^2 * y = 0, y, t );

ic2(%, t = 0, y = amp, 'diff(y,t) = 0 );

Nå er det på tide at du utforsker (wx)Maxima å egen hånd.
Husk å bruke F1-tasten hvis du vil at Maxima skal hjelpe
deg med å løse matematikkoppgavene.

Lykke til med Maxima og wxMaxima!