Ero sivun ”Maxima” versioiden välillä
p (kh) |
p (siirto luokkaan) |
||
(2 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä) | |||
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. | |||
*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 | |||
(% | Yhtälön ratkaiseminen | ||
(%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 = ---------------] | ||
2 2 | 2 2 | ||
Derivointi | Derivointi | ||
(% | (%i2) diff(4*x^2 + sin(x) - a, x); | ||
(% | (%o2) cos(x) + 8 x | ||
Integrointi | Integrointi | ||
(% | (%i3) 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) - ---------- - ----- | |||
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) - ---------- - ----- | (%o) - ---------- - ----- | ||
a | 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. | ||
*[[wxMaxima]] | |||
*[[Xmaxima]] | *[[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: | [[Luokka:Matematiikkaohjelmat]] |
Nykyinen versio 1. huhtikuuta 2020 kello 16.15
Maxima | |
---|---|
Käyttöliittymä | teksti |
Lisenssi | GPL |
Kotisivu | 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.
Käyttöesimerkkejä[muokkaa]
- Syöte voi päättyä joko puolipisteeseen tai dollarimerkkiin. Puolipisteen käyttäminen tulostaa tuloksen, dollarimerkin ei.
- Syötteet ja tulokset ovat numeroituja, ja niihin voi viitata myöhemmin: %o8
- _-muuttuja viittaa edelliseen syötteeseen
- %-muuttuja viittaa edelliseen tulokseen
- '-etuliiteoperaattori estää lausekkeen laskemisen, mutta ei sievennystä: '%
- ''-etuliiteoperaattori laskee lausekkeen paikallaan, eli korvaa itsensä tuloksellaan: ''%
Yhtälön ratkaiseminen
(%i1) solve(4*x^2 = 3*a, x); sqrt(3) sqrt(a) sqrt(3) sqrt(a) (%o1) [x = - ---------------, x = ---------------] 2 2
Derivointi
(%i2) diff(4*x^2 + sin(x) - a, x); (%o2) cos(x) + 8 x
Integrointi
(%i3) integrate(4*sin(a*x) - a^2*x, x); 2 2 4 cos(a x) a x (%o3) - ---------- - ----- 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[muokkaa]
Tosin kuin Maximan sisäänrakennettu plot-toiminnallisuus, hieman monipuolisemman draw-moduulin funktiot käyttävät Gnuplotia.
Funktio aiemmasta esimerkistä
(%i) import(draw)$ (%i) f(c) := ''%o6$ (%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[muokkaa]
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[muokkaa]
Joissakin jakeluissa SBCL-Lispiä käyttävä Maxima saa tavalliset Readline-ominaisuudet rlwrapilla
rlwrap maxima
Asetukset[muokkaa]
~/.maxima/maxima-init.mac ajetaan aina Maximan käynnistyksen yhteydessä. Seuraava esimerkki kokoaa väliaikaistiedostot samaan paikkaan:
maxima_tempdir: "/.maxima/tmp"$ load(draw)$
Käyttöliittymiä[muokkaa]
Maximaa ei ole pakko käyttää komentoriviltä, vaan sille on olemassa useampiakin käyttöliittymiä. Näitä ovat mm.
Nämä antavat tulokset selkeinä graafisina kaavoina monirivisen ASCIIn sijaan.