[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
3.1 Introdução a Ajuda | ||
3.2 Lisp e Maxima | ||
3.3 Descartando | ||
3.4 Documentação | ||
3.5 Definições para Ajuda |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
A função primária de ajuda on-line é describe
,
que é tipicamente invocada através do ponto de interrogação ?
na linha de comando interativa.
? foo
(com um espaço entre ?
e foo
)
é equivalente a describe ("foo")
, onde foo
é o nome ou parte do nome de uma função ou tópico;
describe
então acha todos os ítens documentados que possuem a seqüência de caracteres
foo
em seus títulos.
Se existe mais que um tal item, Maxima solicita ao usuário selecionar
um item ou ítens para mostrar.
(%i1) ? integ 0: (maxima.info)Introduction to Elliptic Functions and Integrals. 1: Definitions for Elliptic Integrals. 2: Integration. 3: Introduction to Integration. 4: Definitions for Integration. 5: askinteger :Definitions for Simplification. 6: integerp :Definitions for Miscellaneous Options. 7: integrate :Definitions for Integration. 8: integrate_use_rootsof :Definitions for Integration. 9: integration_constant_counter :Definitions for Integration. Enter space-separated numbers, `all' or `none': 7 8 Info from file /use/local/maxima/doc/info/maxima.info: - Function: integrate (expr, var) - Function: integrate (expr, var, a, b) Attempts to symbolically compute the integral of `expr' with respect to `var'. `integrate (expr, var)' is an indefinite integral, while `integrate (expr, var, a, b)' is a definite integral, [...] |
Nesse exemplo, ítens 7 e 8 foram selecionados.
Todos ou nenhum dos ítens poderia ter sido selecionados através da inserção de all
ou none
,
que podem ser abreviados para a
ou n
, respectivamente.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Maxima é escrito na liguagem de programação Lisp, e é fácil acessar funções Lisp e variáveis
a partir do Maxima e vice-versa.
Símbolos Lisp e Maxima são distingüidos através de uma convenção de nome.
Um símbolo Lisp que começa com um sinal de dólar $
corresponde a
um símbolo Maxima sem o sinal de dólar.
Um símbolo Maxima que começa com um ponto de interrogação ?
corresponde a
um símbolo Lisp sem o ponto de interrogação.
Por exemplo, o símbolo Maxima foo
corresponde ao símbolo Lisp $foo
,
enquanto o símbolo Maxima ?foo
corresponde ao símbolo Lisp foo
,
Note que ?foo
é escrito sem um espaço entre ?
e foo
;
de outra forma pode ser uma chamada errônea para describe ("foo")
.
Hífen -
, asterisco *
, ou outro caractere especial em símbolos Lisp
deve ser precedido por uma barra invertida \
onde ele aparecer no código Maxima.
Por exemplo, o identificador Lisp *foo-bar*
é escrito ?\*foo\-bar\*
no Maxima.
Código Lisp pode ser executado dentro de uma sessão Maxima.
Uma linha simples de Lisp (contendo uma ou mais formas) pode ser executada
através do comando especial :lisp
. Por exemplo,
(%i1) :lisp (foo $x $y) |
chama a função Lisp foo
com variáveis Maxima x
e y
como argumentos.
A constução :lisp
pode aparecer na linha de comando interativa
ou em um arquivo processado por batch
ou demo
, mas não em um arquivo processado por
load
, batchload
, translate_file
, ou compile_file
.
A função to_lisp()
abre uma sessão interativa Lisp.
Digitando (to-maxima)
fecha a sessão Lisp e retorna para o Maxima.
Funções Lisp e variáveis que são para serem visíveis no Maxima como
funções e variáveis com nomes comuns (sem pontuação especial)
devem ter nomes Lisp começando com o sinal de dólar $
.
Maxima é sensível à caixa, distingue entre letras em caixa alta (maiúsculas) e letras em caixa baixa (minúsculas) em identificadores, enquanto Lisp não é sensível à caixa. Existem algumas regras governando a tradução de nomes entre o Lisp e o Maxima.
$foo
, $FOO
, e $Foo
todos correspondem a Maxima foo
.
|$FOO|
e |$foo|
corresponde a Maxima foo
e FOO
, respectivamente.
|$Foo|
corresponde a Maxima Foo
.
A macro Lisp #$
permite o uso de expressões Maxima em código Lisp.
#$expr$
expande para uma expressão Lisp equivalente à expressão Maxima expr.
(msetq $foo #$[x, y]$) |
Isso tem o mesmo efeito que digitar
(%i1) foo: [x, y]; |
A função Lisp displa
imprime uma expressão em formato Maxima.
(%i1) :lisp #$[x, y, z]$ ((MLIST SIMP) $X $Y $Z) (%i1) :lisp (displa '((MLIST SIMP) $X $Y $Z)) [x, y, z] NIL |
Funções definidas em Maxima não são funções comuns em Lisp.
A função Lisp mfuncall
chama uma função Maxima.
Por exemplo:
(%i1) foo(x,y) := x*y$ (%i2) :lisp (mfuncall '$foo 'a 'b) ((MTIMES SIMP) A B) |
Algumas funções Lisp possuem o mesmo nome que no pacote Maxima, a saber as seguintes.
complement
,
continue
,
//
,
float
,
functionp
,
array
,
exp
,
listen
,
signum
,
atan
,
asin
,
acos
,
asinh
,
acosh
,
atanh
,
tanh
,
cosh
,
sinh
,
tan
,
break
,
e gcd
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Computação simbólica tende a criar um bom volume de arquivos temporários, e o efetivo manuseio disso pode ser crucial para sucesso completo de alguns programas.
Sob GCL, nos sistemas UNIX onde a chamada de sistema mprotect ( controle de acessso autorizado a uma região de memória) está disponível (incluindo SUN OS 4.0 e algumas variantes de BSD) uma organização de arquivos temporários estratificada está disponível. Isso limita a organização para páginas que tenham sido recentemente escritas. Veja a documentação da GCL sob ALLOCATE e GBC. No ambiente Lisp fazendo (setq si::*notify-gbc* t) irá ajudar você a determinar quais áreas podem precisar de mais espaço.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
O manual on-line de usuário do Maxima pode ser visto em diferentes formas.
A partir da linha de comando interativa do Maxima, o manual de usuário
é visto em texto plano através do comando ?
(i.e., a função describe
).
O manual de usuário é visto como hipertexto info
através do programa visualizador info
e como uma web page através de qualquer navegador web comum.
example
mostra exemplos de muitas funções do Maxima.
Por exemplo,
(%i1) example (integrate); |
retorna
(%i2) test(f):=block([u],u:integrate(f,x),ratsimp(f-diff(u,x))) (%o2) test(f) := block([u], u : integrate(f, x), ratsimp(f - diff(u, x))) (%i3) test(sin(x)) (%o3) 0 (%i4) test(1/(x+1)) (%o4) 0 (%i5) test(1/(x^2+1)) (%o5) 0 |
e saída adicional.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
Avalia expressões Maxima em nomedearquivo e mostra os resultados.
demo
faz uma pausa após avaliar cada expressão
e continua após a conclusão com um enter das entradas de usuário.
(Se executando em Xmaxima, demo
pode precisar ver um ponto e vírgula ;
seguido por um enter.)
demo
procura na lista de diretórios
file_search_demo
para achar nomedearquivo
.
Se o arquivo tiver o sufixo dem
,
o sufixo pode ser omitido.
Veja também file_search
.
demo
avalia seus argumento.
demo
retorna o nome do arquivo de demonstração.
Exemplo:
(%i1) demo ("disol"); batching /home/wfs/maxima/share/simplification/disol.dem At the _ prompt, type ';' followed by enter to get next demo (%i2) load(disol) _ (%i3) exp1 : a (e (g + f) + b (d + c)) (%o3) a (e (g + f) + b (d + c)) _ (%i4) disolate(exp1, a, b, e) (%t4) d + c (%t5) g + f (%o5) a (%t5 e + %t4 b) _ (%i5) demo ("rncomb"); batching /home/wfs/maxima/share/simplification/rncomb.dem At the _ prompt, type ';' followed by enter to get next demo (%i6) load(rncomb) _ z x (%i7) exp1 : ----- + --------- y + x 2 (y + x) z x (%o7) ----- + --------- y + x 2 (y + x) _ (%i8) combine(exp1) z x (%o8) ----- + --------- y + x 2 (y + x) _ (%i9) rncombine(%) 2 z + x (%o9) --------- 2 (y + x) _ d c b a (%i10) exp2 : - + - + - + - 3 3 2 2 d c b a (%o10) - + - + - + - 3 3 2 2 _ (%i11) combine(exp2) 2 d + 2 c + 3 (b + a) (%o11) --------------------- 6 _ (%i12) rncombine(exp2) 2 d + 2 c + 3 b + 3 a (%o12) --------------------- 6 _ (%i13) |
Encontra todos os ítens documentados que possuem string em seus títulos.
Se existe mais de um de tal item, Maxima solicita ao usuário selecionar
um item ou ítens para mostrar.
Na linha de comando interativa,
? foo
(com um espaço entre ?
e foo
)
é equivalente a describe ("foo")
.
describe ("")
retorna uma lista de todos os tópicos documentados no manual on-line.
describe
não avalia seu argumento. describe
sempre retorna false
.
Exemplo:
(%i1) ? integ 0: (maxima.info)Introduction to Elliptic Functions and Integrals. 1: Definitions for Elliptic Integrals. 2: Integration. 3: Introduction to Integration. 4: Definitions for Integration. 5: askinteger :Definitions for Simplification. 6: integerp :Definitions for Miscellaneous Options. 7: integrate :Definitions for Integration. 8: integrate_use_rootsof :Definitions for Integration. 9: integration_constant_counter :Definitions for Integration. Enter space-separated numbers, `all' or `none': 7 8 Info from file /use/local/maxima/doc/info/maxima.info: - Function: integrate (expr, var) - Function: integrate (expr, var, a, b) Attempts to symbolically compute the integral of `expr' with respect to `var'. `integrate (expr, var)' is an indefinite integral, while `integrate (expr, var, a, b)' is a definite integral, [...] |
Nesse , ítens 7 e 8 foram selecionados.
Todos ou nenhum dos ítens poderia ter sido selecionado através da inserção de all
ou none
,
que podem ser abreviado para a
ou para n
, respectivamente.
see section Introdução a Ajuda
example (topic)
mostra alguns exemplos de tópico,
que é um símbolo (não uma seqüência de caracteres).
A maioria dos tópicos são nomes de função.
example ()
retorna a lista de todos os tópicos reconhecidos.
O nome do arquivo contendo os exemplos é dado pela
variável global manual_demo
, cujo valor padrão é "manual.demo"
.
example
não avalia seu argumento.
example
retorna done
a menos que ocorra um erro ou não exista o argumento fornecido pelo usuário, nesse caso example
retorna uma lista de todos os tópicos reconhecidos.
Exemplos:
(%i1) example (append); (%i2) append([x+y,0,-3.2],[2.5E+20,x]) (%o2) [y + x, 0, - 3.2, 2.5E+20, x] (%o2) done (%i3) example (coeff); (%i4) coeff(b+tan(x)+2*a*tan(x) = 3+5*tan(x),tan(x)) (%o4) 2 a + 1 = 5 (%i5) coeff(1+x*%e^x+y,x,0) (%o5) y + 1 (%o5) done |
[ << ] | [ >> ] | [Top] | [Contents] | [Índice] | [ ? ] |
This document was generated by root on Outubro, 3 2006 using texi2html 1.76.