Nykyinen versio |
Oma tekstisi |
Rivi 1: |
Rivi 1: |
| {{ Ohjelma | nimi=Maxima | kuva=[[Kuva:maximalogo.png]] | kuvateksti= | lisenssi=[[GPL]] | käyttöliittymä=teksti | kotisivu=[http://maxima.sourceforge.net/ maxima.sourceforge.net] }} | | {{ Ohjelma | nimi=Maxima | kuva=[[Kuva:maximalogo.png]] | kuvateksti= | lisenssi=[[GPL]] | käyttöliittymä=teksti | kotisivu=[http://maxima.sourceforge.net/ maxima.sourceforge.net] }} |
|
| |
|
| '''Maxima''' on komentorivipohjainen matematiikkaohjelma, joka hallitsee sekä symbolisen että numeerisen laskennan. Maxima on yksi monipuolisimmista avoimen lähdekoodin matematiikkaohjelmistoista. Sillä on mahdollista mm. derivoida ja integroida symbolisesti ja ratkaista yhtälöitä tarkasti.
| | Maxima on komentorivipohjainen matematiikkaohjelma, joka hallitsee sekä symbolisen että numeerisen laskennan. Maxima on yksi monipuolisimmista avoimen lähdekoodin matematiikkaohjelmistoista. Sillä on mahdollista mm. derivoida ja integroida symbolisesti ja ratkaista yhtälöitä tarkasti. |
|
| |
|
| == Käyttöesimerkkejä == | | == Käyttöesimerkkejä == |
| *Syöte voi päättyä joko puolipisteeseen tai dollarimerkkiin. Puolipisteen käyttäminen tulostaa tuloksen, dollarimerkin ei.
| | Kaikki komennot päättyvät puolipisteeseen. |
| *Syötteet ja tulokset ovat numeroituja, ja niihin voi viitata myöhemmin: <tt>%o8</tt>
| |
| *<tt>_</tt>-muuttuja viittaa edelliseen syötteeseen
| |
| *<tt>%</tt>-muuttuja viittaa edelliseen tulokseen
| |
| *<tt>'</tt>-etuliiteoperaattori estää lausekkeen laskemisen, mutta ei sievennystä: <tt>'%</tt>
| |
| *<tt><nowiki>''</nowiki></tt>-etuliiteoperaattori laskee lausekkeen paikallaan, eli korvaa itsensä tuloksellaan: <tt><nowiki>''</nowiki>%</tt>
| |
|
| |
|
| | | Yhtälön ratkaisu: |
| Yhtälön ratkaiseminen | | (%i) solve(4*x^2 = 3*a, x); |
| (%i1) solve(4*x^2 = 3*a, x); | |
| sqrt(3) sqrt(a) sqrt(3) sqrt(a) | | sqrt(3) sqrt(a) sqrt(3) sqrt(a) |
| (%o1) [x = - ---------------, x = ---------------] | | (%o) [x = - ---------------, x = ---------------] |
| 2 2 | | 2 2 |
|
| |
|
| Derivointi | | Derivointi |
| (%i2) diff(4*x^2 + sin(x) - a, x); | | (%i) diff(4*x^2 + sin(x) - a, x); |
| (%o2) cos(x) + 8 x | | (%o) cos(x)+8*x |
|
| |
|
| Integrointi | | Integrointi |
| (%i3) integrate(4*sin(a*x) - a^2*x, x); | | (%i) integrate(4*sin(a*x) - a^2*x, x); |
| 2 2 | | 2 2 |
| 4 cos(a x) a x | | 4 cos(a x) a x |
| (%o3) - ---------- - ----- | | (%o) - ---------- - ----- |
| a 2 | | a 2 |
| (%i4) romberg(x**2, x, 0, 3);
| |
| (%o4) 9.0
| |
|
| |
| Sievennys (huomaa dollarimerkin käyttö ja edelliseen tulokseen viittaaminen %-merkillä)
| |
| (%i5) (b+c)**2$
| |
|
| |
| (%i6) ratsimp(%);
| |
| 2 2
| |
| (%o6) c + 2 b c + b
| |
| (%i7) trigsimp(2*cos(x)^2 + sin(x)^2);
| |
| 2
| |
| (%o7) cos (x) + 1
| |
|
| |
| Sijoitus
| |
| 2 2
| |
| 4 cos(a x) a x
| |
| (%o) - ---------- - -----
| |
| a 2
| |
| (%i) %, a=x;
| |
| 2 4
| |
| 4 cos(x ) x
| |
| (%o) - --------- - --
| |
| x 2
| |
|
| |
| Summia
| |
| (%i) sum(1/(x**2), x, 1, inf) + sum(x**2, x, 1, inf);
| |
| inf inf
| |
| ==== ====
| |
| \ 2 \ 1
| |
| (%o) > x + > --
| |
| / / 2
| |
| ==== ==== x
| |
| x = 1 x = 1
| |
| (%i) sumcontract(%);
| |
| inf
| |
| ====
| |
| \ 2 1
| |
| (%o) > (x + --)
| |
| / 2
| |
| ==== x
| |
| x = 1
| |
| Sarjan konvergenssi
| |
| (%i) sum(1/x**2, x, 1, inf), simpsum;
| |
| 2
| |
| %pi
| |
| (%o) ----
| |
| 6
| |
|
| |
| Tulos [[TeX]]-muodossa
| |
| (%i) tex(%)$
| |
| $${{\pi^2}\over{6}}$$
| |
|
| |
| Datan lukeminen tiedostosta
| |
| $ cat data
| |
| 1 2
| |
| 2 5
| |
| 6 8
| |
| 12 29
| |
| 15 34
| |
| $ maxima
| |
| (%i) v : read_nested_list("data")$
| |
| (%i) v;
| |
| (%o) [[1, 2], [2, 5], [6, 8], [12, 29], [15, 34]]
| |
|
| |
| $ cat mtrx
| |
| 1 3 7
| |
| 2 8 12
| |
| 4 3 9
| |
| $ maxima
| |
| (%i) A : read_matrix("mtrx")$
| |
| (%i) A;
| |
| [ 1 3 7 ]
| |
| [ ]
| |
| (%o) [ 2 8 12 ]
| |
| [ ]
| |
| [ 4 3 9 ]
| |
|
| |
| Redusoitu porrasmuoto
| |
| (%i) B : read_matrix("matrx2");
| |
| [ 2 1 - 1 8 ]
| |
| [ ]
| |
| (%o) [ - 3 - 1 2 - 11 ]
| |
| [ ]
| |
| [ - 2 1 2 - 3 ]
| |
| rref(a):=block([p,q,k],[p,q]:matrix_size(a),a:echelon(a),
| |
| k:min(p,q),
| |
| for i thru min(p,q) do (if a[i,i]=0 then (k:i-1,return())),
| |
| for i:k thru 2 step -1 do (for j from i-1 thru 1 step -1 do a:rowop(a,j,i,a[j,i])),
| |
| a)$
| |
|
| |
| (%i) rref(B);
| |
| [ 1 0 0 2 ]
| |
| [ ]
| |
| (%o) [ 0 1 0 3 ]
| |
| [ ]
| |
| [ 0 0 1 - 1 ]
| |
|
| |
| == Graafien piirto ==
| |
| Tosin kuin Maximan sisäänrakennettu <tt>plot</tt>-toiminnallisuus, hieman monipuolisemman <tt>draw</tt>-moduulin funktiot käyttävät [[Gnuplot]]ia.
| |
|
| |
| Funktio aiemmasta esimerkistä
| |
| (%i) import(draw)$
| |
|
| |
| (%i) f(c) := <nowiki>''%o6$</nowiki>
| |
|
| |
| (%i) f(%pi*3);
| |
| 2
| |
| (%o) (b + 3 %pi)
| |
| (%i) draw2d(terminal = wxt,
| |
| grid = true,
| |
| explicit(f(3), b, 0, 10) )$
| |
|
| |
| Piirto EPS-tiedostoon 10x10cm -mitoituksella
| |
| (%i) draw2d(dimensions = 100*[10,10],
| |
| terminal = eps_color,
| |
| file_name = "deg2",
| |
| grid = true,
| |
| explicit(f(3), b, 0, 10) )$
| |
|
| |
| == Eräajo ==
| |
| Syötteen putkittaminen Maximalle
| |
| echo '1000!;' | xargs -I '{}' maxima --very-quiet --batch-string='{}'
| |
| Syötteen lataaminen tiedostosta (esimerkiksi erillistä datatiedostoa käytettäessä)
| |
| maxima -b ~/cas/regress.mac
| |
|
| |
| == Komentorivieditointi ==
| |
| Joissakin jakeluissa SBCL-Lispiä käyttävä Maxima saa tavalliset [[Readline]]-ominaisuudet <tt>rlwrap</tt>illa
| |
| rlwrap maxima
| |
|
| |
| == Asetukset ==
| |
| <tt>~/.maxima/maxima-init.mac</tt> ajetaan aina Maximan käynnistyksen yhteydessä.
| |
| Seuraava esimerkki kokoaa väliaikaistiedostot samaan paikkaan:
| |
| maxima_tempdir: "/.maxima/tmp"$
| |
| load(draw)$
| |
|
| |
|
| == Käyttöliittymiä == | | == Käyttöliittymiä == |
| Maximaa ei ole pakko käyttää komentoriviltä, vaan sille on olemassa useampiakin käyttöliittymiä. Näitä ovat mm. | | Maximaa ei ole pakko käyttää komentoriviltä, vaan sille on olemassa useampiakin käyttöliittymiä. Näitä ovat mm. |
| | *[[Xmaxima]] |
| *[[wxMaxima]] | | *[[wxMaxima]] |
| *[[Xmaxima]]
| |
| Nämä antavat tulokset selkeinä graafisina kaavoina monirivisen ASCIIn sijaan.
| |
|
| |
|
| == Katso myös == | | == Katso myös == |
| *[[yacas]] | | *[[yacas]] |
| *[[Sage]]
| |
| *[http://maxima.sourceforge.net/docs/manual/en/maxima.html Maximan dokumentaatio] | | *[http://maxima.sourceforge.net/docs/manual/en/maxima.html Maximan dokumentaatio] |
| *[http://www.csulb.edu/~woollett/ Kattavia ohjeita ja esimerkkejä fysiikkapainotuksella]
| |
|
| |
|
| [[Luokka:Matematiikkaohjelmat]] | | [[Luokka:Tiedeohjelmat]] |