Maxima (software)

Maxima
Logo
WxMaxima 0.7.1
WxMaxima 0.7.1
Aktuální verze5.47.0 (1. června 2023)
Operační systémmultiplatformní POSIX
Vyvíjeno vLisp
Typ softwarumatematický software
LicenceGPL
Webmaxima.sourceforge.net
Některá data mohou pocházet z datové položky.

Maxima je svobodný počítačový algebraický systém, napsaný v Lispu (resp. jeho dialektu Common Lisp) a distribuovaný pod GNU General Public License. Je dostupný pro všechny platformy standardu Posix, jakými jsou Unix, BSD nebo Linux; dostupné jsou také binární soubory pro MS Windows. wxMaxima je multiplatformní verzí s grafickým uživatelským rozhraním, založenou na wxWidgets.

Maxima vychází z projektu Macsyma, jenž byl vyvíjen v MIT (Massachusetts Institute of Technology) a financován United States Department of Energy a dalšími vládními organizacemi. O vývoj jedné z verzí Macsyma se staral od roku 1982 až do své smrti v roce 2001 Bill Schelter, jenž v roce 1998 získal svolení uveřejnit svou verzi pod GPL. Tuto verzi, nyní nazývanou Maxima, nyní udržuje nezávislá komunita vývojářů a uživatelů.

Jako interaktivního grafického rozhraní pro Maximu lze využít programu GNU TeXmacs. Dalšími možnostmi jsou front end imaxima nebo interaktivní mód editoru Emacs.

Ovládání Maximy

Při spuštění vypíše Maxima Hlášení o distribuci pod GNU General Public License a pak už rovnou výzvu k zadání příkazu. Od verze 5.9.1 včetně je to (%i1), dříve (C1). Výzvu však můžeme jednoduše změnit nastavením proměnných inchar a outchar.

Základní pravidla pro psaní příkazů:

  • každý příkaz musí končit středníkem – příkaz můžeme rozdělit na více řádků, provede se až po zadání středníku a stisknutí [Enter]
  • Maxima je case sensitive, tzn. rozlišuje velká a malá písmena, z čehož plyne, že solve a SOLVE jsou dva různé příkazy
  • pro násobení se musí používat znak hvězdička * – 2*a je správně, 2a špatně
  • pro umocňování můžeme používat buď symbol stříška ^, nebo dvě hvězdičky **.

Základní aritmetické operace

Maxima se dá používat jako jednoduchá kalkulačka. Pokud počítáme celočíselně, stačí zadat např.:

(C1) 1+1;

a výstupem nám bude

(D1)                    2

Podobně i jiné operace:

(C2) 9-6/3;
(D2)                    7
(C3) 5^3-5*5;
(D3)                   100
(C4) 5!+4!;
(D4)                   144

Pokud zadáme k výpočet s neceločíselným výsledkem, Maxima ho převede na zlomek v základním tvaru.

(C5) 18/4;
                        9
(D5)                    -
                        2

Jestliže chceme dostat výsledek ve tvaru desetinného čísla, musíme zapsat za výpočet parametr numer.

(C6) 18/4,numer;
(D6)                   4.5

Úprava výrazů

Pokud zadáme algebraický výraz, nejdříve se jenom opíše, např.:

(C7) (x+5)^3;
                             3
(D7)                  (x + 5)

Pokud chceme výraz roznásobit (udělat z něj polynom), použijeme příkaz expand(výraz);. Pokud roznásobujeme nebo jinak používáme poslední příkaz, stačí místo něho napsat procento %. Pokud odkazujeme na jiný, dříve použitý příkaz, použijeme jeho název, např. C1, či D5.

(C8) expand(%);
                  3      2
(D8)             x  + 15x  + 75x + 125

Jiná je situace u lomeného výrazu, u kterého nám expand(); nepomůže. Pro zkrácení použijeme příkaz radcan(výraz);

(C9) (a^2-b^2)/(a+b);
                      2    2
                     a  - b
(D9)                 -------
                     a  + b
(C10) expand(%);
                    2       2
                   a       b
(D10)             ----- + -----
                  a + b   a + b
(C11) radcan(%);
(D11)                 a - b

Ludolfovo a Eulerovo číslo, výpočty s velkou přesností

Maxima zná Ludolfovo číslo π, které označuje %pi a Eulerovo číslo e, které označuje %e a umí je normálním způsobem používat ve výrazech a rovnicích. Pokud nezadáme parametr numer, počítá výsledky rovněž s těmito čísly.

(C12) 2*3/%pi;
                        6
(D12)                  ---
                       %pi
(C13) %, numer;
(D13)           1.909859317102744

Parametr numer počítá s přesností na 16 platných číslic. Ten samý výsledek v semilogaritmickém tvaru dostaneme použitím funkce bfloat(výraz);. Ten má primární přesnost také 16 platných číslic. Tu však můžeme měnit pomocí proměnné fpprec. Nejdříve si pomocí zadání fpprec; ověříme, že přesnost je skutečně 16 a pak ji změníme na 121:

(C14) bfloat(%e);
(D14)          2.718281828459045B0
(C15) fpprec;
(D15)                  16
(C16) fpprec: 121;
(D16)                  121
(C17) bfloat(%e);
(D17) 2.718281828459045235360287471352662497757247093699959574966967627724076#
      630353547594571382178525166427427466391932003059922B0

B0 zde vlastně znamená „krát deset na nultou“. Pokud použijeme funkci bfloat(); ve výrazu, pak se celý počítá s přesností fpprec.

Řešení lineárních rovnic

K řešení jedná rovnice slouží funkce solve(rovnice,neznámé);. K řešení soustavy lineárních rovnic slouží funkce linsolve([rovnice],[neznámá]);.

(C18) a:x+y=5;
(D18)                  y + x = 5
(C19) b:x-y=1;
(D19)                  x - y = 1
(C20) linsolve([a,b],[x,y]);
(D20)                  [x = 3, y = 2]

Související články

Externí odkazy

Média použitá na této stránce

WxMaxima 0.7.1 screenshot.png
Autor: Omegatron, Licence: CC BY-SA 3.0
A screenshot of WxMaxima 0.7.1 running in Ubuntu Linux (Clearlooks theme with Tango icons) with some of the standard screenshot equations and a plotting window open to demonstrate the newer features and look of Maxima.
Maximalogo.png
Autor: unknown, Licence: GPL