MAXIMA(1L) MAXIMA(1L)

ÍÀÇÂÀÍÈÅ

Maxima - Common Lisp âåðñèÿ ñèìâîëüíîãî ìàòåìàòè÷åñêîãî ïàêåòà MACSYMA, âûïóùåííîãî ïîä Îáùåñòâåííîé ëèöåíçèåé GNU

Xmaxima - ãðàôè÷åñêàÿ âåðñèÿ maxima

ÊÐÀÒÊÀß ÑÂÎÄÊÀ

maxima [options]

xmaxima [options]

ÎÏÈÑÀÍÈÅ

Maxima - ìîäèôèöèðîâàííàÿ äëÿ ðàáîòû ïîä Common Lisp âåðñèÿ ñèñòåìû MACSYMA, ðàçðàáîòàííîé â Ìàññà÷óñåòñêîì òåõíîëîãè÷åñêîì èíñòèòóòå. Ýòî äèàëîãîâàÿ ýêñïåðòíàÿ ñèñòåìà è ñðåäà ïðîãðàììèðîâàíèÿ äëÿ ñèìâîëüíûõ è ÷èñëåííûõ ìàòåìàòè÷åñêèõ ïðåîáðàçîâàíèé. Íàïèñàííàÿ íà Lisp, îíà ïîçâîëÿåò äèôôåðåíöèðîâàòü, èíòåãðèðîâàòü, ðåøàòü ëèíåéíûå èëè ïîëèíîìèàëüíûå óðàâíåíèÿ, ïðîèçâîäèòü ôàêòîðèçàöèþ ìíîãî÷ëåíîâ, ðàçëàãàòü ôóíêöèè â ðÿäû Ëîðàíà èëè Òåéëîðà, âû÷èñëÿòü ðÿäû Ïóàññîíà, ïðîèçâîäèòü ìàòðè÷íûå è òåíçîðíûå ïðåîáðàçîâàíèÿ, äâóõìåðíàÿ è òðåõìåðíàÿ ãðàôèêà. Ïðîöåäóðû ìîãóò áûòü çàïèñàíû ñ ïîìîùüþ ALGOL-ïîäîáíîãî ñèíòàêñèñà; ïðåäóñìîòðåíû êàê Lisp-ïîäîáíûå ôóíêöèè, òàê è ñðåäñòâà ñîïîñòàâëåíèÿ ñ îáðàçöîì. Ôàéëû, ñîäåðæàùèå îáúåêòû Maxima, ìîãóò ÷èòàòüñÿ è çàïèñûâàòüñÿ íà äèñê. Ïðåäâàðèòåëüíî çàïèñàííûå êîìàíäû Maxima ìîãóò ÷èòàòüñÿ èç ôàéëà è âûïîëíÿòüñÿ â ïàêåòíîì ðåæèìå.

ÊËÞ×È

Îáðàáîòàòü file â ïàêåòíîì ðåæèìå.
Îáðàáîòàòü Lisp ôàéë file â ïàêåòíîì ðåæèìå.
Îáðàáîòàòü string â ïàêåòíîì ðåæèìå.
Âûâåñòè èíôîðìàöèþ î äèðåêòîðèÿõ Maxima.
Îòêëþ÷èòü ïîääåðæêó readline.
Âêëþ÷èòü Lisp îòëàä÷èê.
Âûâåñòè êðàòêóþ èíôîðìàöèþ îá èñïîëüçîâàíèè.
Èñïîëüçîâàòü ðåàëèçàöèþ Lisp lisp. Èñïîëüçóéòå --list-avail äëÿ âûâîäà ñïèñêà âîçìîæíûõ çíà÷åíèé.
Âûâåñòè ñïèñîê äîñòóïíûõ âåðñèé Lisp è Maxima.
Ïðåäâàðèòåëüíî çàãðóçèòü lisp_file.
Íå âûâîäèòü ñòàðòîâîå ñîîáùåíèå Maxima.
Îáðàáîòàòü string â äèàëîãîâîì ðåæèìå Maxima.
Çàïóñòèòü ñåðâåð Maxima íà ïîðòó port.
Çàïóñòèòü Maxima âåðñèè version. Èñïîëüçóéòå --list-avail äëÿ âûâîäà ñïèñêà âîçìîæíûõ çíà÷åíèé.
Âûâåñòè äîïîëíèòåëüíóþ èíôîðìàöèþ èç ñöåíàðèÿ çàïóñêà Maxima.
Âûâåñòè óñòàíîâëåííóþ âåðñèþ (ïî óìîë÷àíèþ).
Íå âûâîäèòü ìåòêè âûðàæåíèé è ñòàðòîâîå ñîîáùåíèå Maxima.

ÂÂÎÄÍÛÅ ÈÍÑÒÐÓÊÖÈÈ

Ïðè èíèöèàëèçàöèè maxima âûâîäèò ñòàðòîâîå ñîîáùåíèå, ïîñëå ÷åãî ïîÿâëÿåòñÿ ïðèãëàøåíèå êîìàíäíîé ñòðîêè:

(%i1)

Âñå êîìàíäû Maxima äîëæíû çàâåðøàòüñÿ:

1)
òî÷êîé ñ çàïÿòîé (â ýòîì ñëó÷àå ðåçóëüòàò âûïîëíåíèÿ êîìàíäû âûâîäèòñÿ íà ýêðàí â ñòðîêå, íà÷èíàþùåéñÿ ñ %o , ê êîòîðîé äîáàâëÿåòñÿ íîìåð êîìàíäû), èëè
2)
çíàêîì äîëëàðà, ïîäàâëÿþùèì ïå÷àòü ñòðîêè ñ ðåçóëüòàòîì.

ÏÐÈÌÅÐ

(%i1) diff(sin(x),x);

(%d1) cos(x)

(%i2) integrate(%o1,x);

(%o2) sin(x)

Ïîëüçîâàòåëü ââîäèò êîìàíäû, ñîçäàþùèå îáúåêòû Maxima (òàêèå êàê ôóíêöèè è ñèñòåìíûå ïåðåìåííûå) è âûïîëíÿþùèå äåéñòâèÿ íàä íèìè.

 UNIX ìîæåò îêàçàòüñÿ ïðåäïî÷òèòåëüíûì çàïóñêàòü Maxima ïîä óïðàâëåíèåì GNU Emacs èëè XEmacs. Ýòî ìîæíî ñäåëàòü âûçâàâ êîìàíäíûé ðåæèì èç emacs, à çàòåì ââåñòè maxima. Æåëàòåëüíî óñòàíîâèòü maxima.el èç äèñòðèáóòèâà è èñïîëüçîâàòü êîìàíäó:

M-x maxima

Ãëàâíîå ïðåèìóùåñòâî ðàáîòû âíóòðè emacs - òî, ÷òî îí ïðåäîñòàâëÿåò ïîëíóþ èñòîðèþ ââîäà/âûâîäà. Âûïîëíèâ êîìàíäó

display2d:false ,

Âû ïîëó÷èòå âîçìîæíîñòü èñïîëüçîâàòü âûâîä äëÿ ââîä ñ ïîìîùüþ îïåðàöèé âûðåçêè/âñòàâêè.

Lisp âñòðîåí â Maxima. Ôóíêöèÿ to_lisp() âõîäèò â öèêë ÷òåíèÿ-âû÷èñëåíèÿ-âûâîäà Lisp. Ôóíêöèÿ Lisp (run) ìîæåò èñïîëüçîâàòüñÿ äëÿ âîçâðàòà â Maxima. Êðîìå òîãî, îäèíî÷íûå êîìàíäû Lisp ìîãóò áûòü âûçâàíû ïðè çàïóñêå â êîìàíäíîé ñòðîêå ñ êëþ÷îì :lisp.

ÂÑÒÐÎÅÍÍÀß ÑÏÐÀÂÊÀ

 ñèñòåìó âñòðîåíà îáøèðíàÿ äèàëîãîâàÿ äîêóìåíòàöèÿ. Îïèñàíèå çàäàííîé êîìàíäû ìîæíî ïîëó÷èòü ñ ïîìîùüþ êîìàíäû

describe(command);

èëè, ïðîùå,

? command,

êîòîðàÿ èùåò â ñïèñêå ôóíêöèé ñòðîêó command. Äåìîíñòðàöèîííûå ôàéëû, ïðåäîñòàâëÿþùèå ïîëíûå ïðèìåðû ðåøåíèÿ çàäà÷ ñ ïîìîùüþ Maxima, ìîãóò áûòü âûçâàíû êîìàíäîé demo(command);. Äîïîëíèòåëüíî ïîñòàâëÿåòñÿ áèáëèîòåêà êîìàíäíûõ ôàéëîâ, ñîçäàííûõ ïîëüçîâàòåëÿìè ("ðàçäåëÿåìàÿ áèáëèîòåêà"), ïðåäëàãàþùàÿ ðåøåíèÿ ðàçíîîáðàçíûõ çàäà÷.

ÄÐÓÃÀß ÄÎÊÓÌÅÍÒÀÖÈß

Ïîëíàÿ äîêóìåíòàöèÿ ïîñòàâëÿåòñÿ â ôîðìàòàõ info è html.

ÊÎÌÀÍÄÛ ÄËß ÍÀ×ÈÍÀÞÙÈÕ

Ýòîò ñïèñîê âêëþ÷àåò òîëüêî òå êîìàíäû, êîòîðûå ìîãóò áûòü ïîëåçíû íà÷èíàþùèì ïîëüçîâàòåëÿì, äî èçó÷åíèÿ ñïðàâî÷íîãî ðóêîâîäñòâà.

Âûïîëíÿåò ñîäåðæèìîå ôàéëà myfile, êîòîðûé äîëæåí ñîäåðæàòü êîìàíäû Maxima.
Çàêðûâàåò ôàéëîâûé ñåàíñ, îòêðûòûé êîìàíäîé writefile (ñì. íèæå).
Âûïîëíÿåò ñîäåðæèìîå ôàéëà myfile, êîòîðûé äîëæåí ñîäåðæàòü êîìàíäû Maxima, ïî îäíîé.
Âûâîäèò ñîäåðæèìîå âñåõ äîñòóïíûõ èíôîðìàöèîííûõ ñïèñêîâ.
Âûâîäèò ñïèñîê èìåí îïðåäåëåííûõ ê äàííîìó ìîìåíòó ôóíêöèé.
Âûâîäèò ñïèñîê ðàçëè÷íûõ äîñòóïíûõ èíôîðìàöèîííûõ ñïèñêîâ.
Óäàëÿåò îáúåêò(û), çàïèñàííûå âíóòðè êðóãëûõ ñêîáîê. kill(all) óäàëÿåò âñå îáúåêòû, ñîçäàííûå ïîëüçîâàòåëåì, âîññòàíàâëèâàÿ íà÷àëüíîå ñîñòîÿíèå Maxima.
Âûõîä èç Maxima.
Ñáðàñûâàåò âñå óïðàâëÿþùèå ïàðàìåòðû Maxima â çíà÷åíèÿ ïî óìîë÷àíèþ.
Âûâîäèò ñïèñîê èìåí ïåðåìåííûõ, ñîäåðæàùèõ ñêàëÿðíûå çíà÷åíèÿ.
Íà÷èíàåò çàïèñü ñåàíñà â ôàéë myfile; îäíîâðåìåííî ìîæåò áûòü îòêðûò òîëüêî îäèí ôàéë, à êîìàíäà closefile äîëæíà áûòü âûçâàíà äî âûõîäà èç Maxima äëÿ ñáðîñà áóôåðà.

ÃÐÀÔÈ×ÅÑÊÈÅ ÊÎÌÀÍÄÛ

Maxima ñïîñîáíà ñòðîèòü äâóõìåðíûå è òðåõìåðíûå ãðàôèêè. Íèæå ïðèâåäåíû ïðîñòîé äâóìåðíûé

plot2d (sin(x), [x, -2*%pi, 2*%pi]);

è òðåõìåðíûé ïðèìåðû

plot3d (2^(-u^2+v^2), [u, -5, 5], [v, -7, 7]);

Ïî óìîë÷àíèþ ïîñòðîåíèå ãðàôèêîâ îñóùåñòâëÿåòñÿ ïðîãðàììîé gnuplot . Åñòü è äðóãèå ñïîñîáû ïîñòðîåíèÿ ãðàôèêîâ; ñì. "? plot_options". Äëÿ áîëåå ïîäðîáíîé èíôîðìàöèè î ïîñòðîåíèè ãðàôèêîâ, ñì. "? plot".

ÔÀÉËÛ

/usr/lib/maxima/5.47.0/binary-lisp
Ñêîìïèëèðîâàííûå ôàéëû äëÿ ðåàëèçàöèè Lisp lisp
/usr/info
ïåðâè÷íûé êàòàëîã äîêóìåíòàöèè, ñîäåðæàùèé info-ôàéëû, èñïîëüçóåìûå êîìàíäîé `describe', ñ âîçìîæíîñòüþ ïðîñìîòðà â emacs è äðóãèõ ïðîãðàììàõ äëÿ ïðîñìîòðà info-ôàéëîâ.
/usr/share/maxima/5.47.0/doc/html
HTML-âåðñèÿ äîêóìåíòàöèè.
/usr/share/maxima/5.47.0/demo
Äåìîíñòðàöèîííûå ôàéëû Maxima.
/usr/share/maxima/5.47.0/emacs
Ôàéëû Elisp äëÿ èñïîëüçîâàíèÿ ñ Emacs èëè XEmacs.
/usr/share/maxima/5.47.0/share
Äîïîëíèòåëüíûå âíåøíèå ïàêåòû.
/usr/share/maxima/5.47.0/doc/share
Äîêóìåíòàöèÿ äëÿ äîïîëíèòåëüíûõ âíåøíèõ ïàêåòîâ.
/usr/share/maxima/5.47.0/src
Ïîëíûå èñõîäíûå òåêñòû Maxima.
/usr/share/maxima/5.47.0/tests
Íàáîð òåñòîâ.
/usr/share/maxima/5.47.0/xmaxima
Ôàéëû ïîääåðæêè Xmaxima.
/usr/libexec/maxima/5.47.0/
Ñöåíàðèè ñîïóòñòâóþùèõ Maxima óòèëèò.

ÏÅÐÅÌÅÍÍÛÅ ÎÊÐÓÆÅÍÈß

Óêàçûâàåò íà êàòàëîã ñ ôàéëàìè ïîëüçîâàòåëüñêèõ íàñòðîåê. Ïî óìîë÷àíèþ ïóòè ïîèñêà Maxima âêëþ÷àþò MAXIMA_USERDIR. Çíà÷åíèå ïî óìîë÷àíèþ: $HOME/.maxima.
Ñâîè âõîäíûå ôàéëû Maxima èùåò â êàòàëîãå, óêàçàííîì âî âðåìÿ êîìïèëÿöèè, /usr. Maxima ìîæíî ïåðåìåñòèòü â äðóãîé êàòàëîã äî òåõ ïîð ïîêà ñöåíàðèé maxima ïîääåðæèâàåò òî æå îòíîñèòåëüíîå ïîëîæåíèå ïî îòíîøåíèåþ ê âõîäíûì ôàéëàì Maxima. Åñëè, â ñèëó êàêèõ-òî ïðè÷èí, ñöåíàðèé maxima ïåðåìåùàåòñÿ îòäåëüíî, äëÿ óêàçàíèÿ âåðøèíû äåðåâà, ñîäåðæàùåãî âõîäíûå ôàéëû ñèñòåìû, íåîáõîäèìî óñòàíîâèòü çíà÷åíèå MAXIMA_PREFIX.
MAXIMA_DIRECTORY ýêèâàëåíòíà MAXIMA_PREFIX. Âêëþ÷åíà òîëüêî äëÿ îáðàòíîé ñîâìåñòèìîñòè ñ ïðåäûäóùèìè âåðñèÿìè Maxima.

Maxima èñïîëüçóåò íåñêîëüêî äîïîëíèòåëüíûõ ïåðåìåííûõ îêðóæåíèÿ äëÿ âçàèìîäåéñòâèÿ ìåæäó ñöåíàðèåì maxima è îáðàçîì Lisp-ñèñòåìû. Âñå ýòè ïåðåìåííûå íà÷èíàþòñÿ ñ MAXIMA_ è íå äîëæíû ìåíÿòüñÿ ïîëüçîâàòåëåì.

ÔÀÉËÛ ÍÀÑÒÐÎÅÊ

maximarc çàãðóæàåòñÿ ñêðèïòîì maxima ïðè çàïóñêå ñèñòåìû. Îí äîëæåí áûòü ðàñïîëîæåí â êàòàëîãå $MAXIMA_USERDIR (ñì. âûøå). maximarc ìîæíî èñïîëüçîâàòü, íàïðèìåð, äëÿ èçìåíåíèÿ âûáðàííîé ïî óìîë÷àíèþ ðåàëèçàöèè Lisp íà CMUCL âêëþ÷åíèåì ñòðîêè "MAXIMA_LISP=cmucl".
Ïðè çàïóñêå Maxima çàãðóçèò Lisp-ôàéë maxima-init.lisp, åñëè íàéäåò åãî â êàòàëîãàõ äëÿ ïîèñêà. Äëÿ ïîëüçîâàòåëüñêîé íàñòðîéêå, maxima-init.lisp äîëæåí ðàñïîëàãàòüñÿ â $MAXIMA_USERDIR (ñì. âûøå). Ïîñêîëüêó Maxima îáû÷íî èìååò ñèñòåìíûé ôàéë maxima-init.lisp, ïîëüçîâàòåëü ìîæåò ñêîïèðîâàòü ñîäåðæèìîå ñèñòåìíîãî maxima-init.lisp â ñâîé ëè÷íûé ôàéë.
Ïðè çàïóñêå Maxima çàãðóçèò Maxima-ôàéë maxima-init.mac, åñëè íàéäåò åãî â êàòàëîãàõ äëÿ ïîèñêà. Äëÿ ïîëüçîâàòåëüñêîé íàñòðîéêå, maxima-init.mac äîëæåí ðàñïîëàãàòüñÿ â $MAXIMA_USERDIR (ñì. âûøå).

ÑÑÛËÊÈ

Ñòàðàÿ ññûëêà: MACSYMA. Ñïðàâî÷íîå ðóêîâîäñòâî (òîìà 1 è 2). Ãðóïïà Mathlab, Ëàáîðàòîðèÿ êîìïüþòåðíûõ íàóê, ÌÒÈ. Âåðñèÿ 10. ßíâàðü 1983 ã.

Íîâûå ññûëêè: http://maxima.sourceforge.net

ÎØÈÁÊÈ

Maxima - ñëîæíàÿ ñèñòåìà, ñîäåðæàùàÿ êàê èçâåñòíûå, òàê è íåèçâåñòíûå îøèáêè. Èñïîëüçóéòå åå íà ñâîé ñòðàõ è ðèñê. Áàçà îøèáîê Maxima äîñòóïíà ïî àäðåñó

https://sourceforge.net/p/maxima/bugs/

Íîâûå ñîîáùåíèÿ îá îøèáêàõ âñåãäà ïðèâåòñòâóþòñÿ. Ïîæàëóéñòà, âêëþ÷àéòå â ñîîáùåíèå âûâîä ôóíêöèè Maxima "build_info()".

ÀÂÒÎÐÛ

MACSYMA (Ïðîåêò MAC's SYmbolic MAnipulation System) áûëà ðàçðàáîòàíà ãðóïïîé Mathlab â ëàáîðàòîðèè êîìïüþòåðíûõ íàóê ÌÒÈ (ïåðâîíà÷àëüíî èçâåñòíîé êàê Ïðîåêò MAC) â 1969-1972 ãã. Ýòà ðàáîòà áûëà ïîääåðæàíà ãðàíòàìè NSG 1323 NASA, N00014-77-C-0641 Èññëåäîâàòåëüñêîãî àãåíòñòâà ÂÌÑ, ET-78-C-02-4687 Ìèíèñòåðñòâà ýíåðãåòèêè ÑØÀ è F49620-79-C-020 ÂÂÑ ÑØÀ. Çàòåì MACSYMA áûëà ìîäèôèöèðîâàíà äëÿ èñïîëüçîâàíèÿ ïîä îïåðàöèîííîé ñèñòåìîé UNIX (íà êîìïüþòåðàõ DEC VAX è ðàáî÷èõ ñòàíöèÿõ Sun) Ðè÷àðäîì Ôåéòìàíîì è åãî êîëëåãàìè èç Êàëèôîðíèéñêîãî óíèâåðñèòåòà â Áåðêëè; ýòà âåðñèÿ MACSYMA èçâåñòíàÿ êàê VAXIMA. Íàñòîÿùàÿ âåðñèÿ ðàçâèâàåòñÿ èç ïåðåðàáîòêè îáùåäîñòóïíîé MIT MACSYMA äëÿ GNU Common Lisp, âûïîëíåííîé Óèëüÿìîì Øåëòåðîì (Òåõàññêèé óíèâåðñèòåò â Îñòèíå), êîòîðûé ðàçâèâàë åå äî ñâîåé êîí÷èíû â 2001 ã. Îíà ñîäåðæèò ìíîãî÷èñëåííûå äîïîëíåíèÿ, ðàñøèðåíèÿ è óëó÷øåíèÿ îòíîñèòåëüíî îðèãèíàëà. Îðèãèíàëüíàÿ âåðñèÿ ýòîé ñïðàâî÷íîé ñòðàíèöû áûëà íàïèñàíà Ð.Ï.Ê. Ðîäæåðñîì (rodgers@maxwell.mmwb.ucsf.edu) èç Ôàðìàöåâòè÷åñêîé øêîëû Êàëèôîðíèéñêîãî óíèâåðñèòåòà (Ñàí-Ôðàíöèñêî, CA 94143) â 1989 ã., è ñóùåñòâåííî ïåðåðàáîòàíà Äæåéìñîì Àìóíäñîíîì â 2002 ã.

Ñåé÷àñ Maxima ðàçâèâàåòñÿ è ïîääåðæèâàåòñÿ ïðîåêòîì Maxima http://maxima.sourceforge.net.

September 10, 2005