File: Help.texi

package info (click to toggle)
maxima 5.21.1-2squeeze
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 94,928 kB
  • ctags: 43,849
  • sloc: lisp: 298,974; fortran: 14,666; perl: 14,325; tcl: 10,494; sh: 4,052; makefile: 2,975; ansic: 471; awk: 24; sed: 7
file content (379 lines) | stat: -rw-r--r-- 14,181 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
@c /Help.texi/1.21/Thu Mar  8 03:54:16 2007/-ko/
@iftex
@hyphenation{cor-res-pon-de}
@end iftex
@menu
* Lisp e Maxima::            
* Descartando::          
* Documenta@value{cedilha}@~ao::               
* Defini@value{cedilha}@~oes para Ajuda::        
@end menu

@node Lisp e Maxima, Descartando, Ajuda, Ajuda
@section Lisp e Maxima
Maxima @'e escrito na liguagem de programa@value{cedilha}@~ao Lisp, e @'e f@'acil acessar fun@value{cedilha}@~oes Lisp e vari@'aveis
a partir do Maxima e vice-versa.
S@'{@dotless{i}}mbolos Lisp e Maxima s@~ao distinguidos atrav@'es de uma conven@value{cedilha}@~ao de nome.
Um s@'{@dotless{i}}mbolo Lisp que come@value{cedilha}a com um sinal de d@'olar @code{$} corresponde a
um s@'{@dotless{i}}mbolo Maxima sem o sinal de d@'olar.
@c NEED TO MENTION THIS OR IS IT JUST CLUTTERING ??
@c This includes special Maxima variables such as @code{%} and input and output labels,
@c which appear as @code{$%}, @code{$%i1}, @code{$%o1}, etc., in Lisp.
Um s@'{@dotless{i}}mbolo Maxima que come@value{cedilha}a com um ponto de interroga@value{cedilha}@~ao @code{?} corresponde a
um s@'{@dotless{i}}mbolo Lisp sem o ponto de interroga@value{cedilha}@~ao.
Por exemplo, o s@'{@dotless{i}}mbolo Maxima @code{foo} corresponde ao s@'{@dotless{i}}mbolo Lisp @code{$foo},
enquanto o s@'{@dotless{i}}mbolo Maxima @code{?foo} corresponde ao s@'{@dotless{i}}mbolo Lisp @code{foo},
Note que @code{?foo} @'e escrito sem um espa@value{cedilha}o entre @code{?} e @code{foo};
de outra forma pode ser uma chamada err@^onea para @code{describe ("foo")}.

H@'{@dotless{i}}fen @code{-}, asterisco @code{*}, ou outro caractere especial em s@'{@dotless{i}}mbolos Lisp
deve ser precedido por uma barra invertida @code{\} onde ele aparecer no c@'odigo Maxima.
Por exemplo, o identificador Lisp @code{*foo-bar*} @'e escrito @code{?\*foo\-bar\*} no Maxima.

C@'odigo Lisp pode ser executado dentro de uma sess@~ao Maxima.
Uma linha simples de Lisp (contendo uma ou mais formas) pode ser executada
atrav@'es do comando especial @code{:lisp}. Por exemplo,

@example
(%i1) :lisp (foo $x $y)
@end example

@noindent
chama a fun@value{cedilha}@~ao Lisp @code{foo} com vari@'aveis Maxima @code{x} e @code{y} como argumentos.
A constu@value{cedilha}@~ao @code{:lisp} pode aparecer na linha de comando interativa
ou em um ficheiro processado por @code{batch} ou @code{demo}, mas n@~ao em um ficheiro processado por
@code{load}, @code{batchload}, @code{translate_file}, ou @code{compile_file}.

A fun@value{cedilha}@~ao @code{to_lisp()} abre uma sess@~ao interativa Lisp.
Digitando @code{(to-maxima)} fecha a sess@~ao Lisp e retorna para o Maxima.
@c I DON'T EVEN WANT TO MENTION USING CTRL-C TO OPEN A LISP SESSION.
@c (1) IT TAKES EXTRA SET UP TO GET STARTED NAMELY :lisp (setq *debugger-hook* nil)
@c (2) IT GETS SCREWED UP EASILY -- TYPE SOMETHING WRONG AND YOU CAN'T GET BACK TO MAXIMA
@c (3) IT DOESN'T OFFER FUNCTIONALITY NOT PRESENT IN THE to_lisp() SESSION

Fun@value{cedilha}@~oes Lisp e vari@'aveis que s@~ao para serem vis@'{@dotless{i}}veis no Maxima como
fun@value{cedilha}@~oes e vari@'aveis com nomes comuns (sem pontua@value{cedilha}@~ao especial)
devem ter nomes Lisp come@value{cedilha}ando com o sinal de d@'olar @code{$}.

Maxima @'e sens@'{@dotless{i}}vel @`a caixa, distingue entre letras em caixa alta (mai@'usculas) e letras em caixa baixa (min@'usculas)
em identificadores, enquanto Lisp n@~ao @'e sens@'{@dotless{i}}vel @`a caixa.
Existem algumas regras governando a tradu@value{cedilha}@~ao de nomes entre o Lisp e o Maxima.

@enumerate
@item
Um identificador Lisp n@~ao contido entre barras verticais corresponde a um identificador Maxima
em caixa baixa.
Se o identificador Lisp estiver em caixa alta, caixa baixa, ou caixa mista, @'e ignorado.
E.g., Lisp @code{$foo}, @code{$FOO}, e @code{$Foo} todos correspondem a Maxima @code{foo}.
@item
Um identificador Lisp que est@'a todo em caixa alta ou todo em caixa baixa
e contido em barras verticais corresponde a um identificador Maxima com caixa invertida.
Isto @'e, caixa alta @'e alterada para caixa baixa e caixa baixa para caixa alta.
E.g., Lisp @code{|$FOO|} e @code{|$foo|}
corresponde a Maxima @code{foo} e @code{FOO}, respectivamente.
@item
Um identificador Lisp que @'e misto de caixa alta e caixa baixa
e contido entre barras verticais corresponde a um identificador Maxima com o mesma caixa.
E.g., Lisp @code{|$Foo|} corresponde a Maxima @code{Foo}.
@end enumerate

A macro Lisp @code{#$} permite o uso de express@~oes Maxima em c@'odigo Lisp.
@code{#$@var{expr}$} expande para uma express@~ao Lisp equivalente @`a express@~ao Maxima @var{expr}.

@example
(msetq $foo #$[x, y]$)
@end example

@noindent
Isso tem o mesmo efeito que digitar

@example
(%i1) foo: [x, y];
@end example

@noindent
A fun@value{cedilha}@~ao Lisp @code{displa} imprime uma express@~ao em formato Maxima.

@example
(%i1) :lisp #$[x, y, z]$ 
((MLIST SIMP) $X $Y $Z)
(%i1) :lisp (displa '((MLIST SIMP) $X $Y $Z))
[x, y, z]
NIL
@end example

Fun@value{cedilha}@~oes definidas em Maxima n@~ao s@~ao fun@value{cedilha}@~oes comuns em Lisp.
A fun@value{cedilha}@~ao Lisp @code{mfuncall} chama uma fun@value{cedilha}@~ao Maxima.
Por exemplo:

@example
(%i1) foo(x,y) := x*y$
(%i2) :lisp (mfuncall '$foo 'a 'b)
((MTIMES SIMP) A B)
@end example

Algumas fun@value{cedilha}@~oes Lisp possuem o mesmo nome que no pacote Maxima, a saber as seguintes.

@code{complement},
@code{continue},
@code{//},
@code{float},
@code{functionp},
@code{array},
@code{exp},
@code{listen},
@code{signum},
@code{atan},
@code{asin},
@code{acos},
@code{asinh},
@code{acosh},
@code{atanh},
@code{tanh},
@code{cosh},
@code{sinh},
@code{tan},
@code{break},
e @code{gcd}.


@node Descartando, Documenta@value{cedilha}@~ao, Lisp e Maxima, Ajuda
@section Descartando
Computa@value{cedilha}@~ao simb@'olica tende a criar um bom volume
de ficheiros tempor@'arios, e o efectivo manuseio disso pode ser crucial para sucesso
completo de alguns programas.

@c HOW MUCH OF THE FOLLOWING STILL HOLDS ??
@c WHAT ABOUT GC IN GCL ON MS WINDOWS ??
@c SHOULD WE SAY SOMETHING ABOUT GC FOR OTHER LISPS ??
Sob GCL, nos sistemas UNIX onde a chamada de sistema mprotect ( controle
de acessso autorizado a uma regi@~ao de mem@'oria) est@'a
dispon@'{@dotless{i}}vel (incluindo SUN OS 4.0 e algumas variantes de
BSD) uma organiza@value{cedilha}@~ao de ficheiros tempor@'arios
estratificada est@'a dispon@'{@dotless{i}}vel.  Isso limita a
organiza@value{cedilha}@~ao para p@'aginas que tenham sido recentemente
escritas.  Veja a documenta@value{cedilha}@~ao da GCL sob ALLOCATE e
GBC.  No ambiente Lisp fazendo (setq si::*notify-gbc* t) ir@'a
ajud@'a-lo a determinar quais @'areas podem precisar de mais
espa@value{cedilha}o.

@node Documenta@value{cedilha}@~ao, Defini@value{cedilha}@~oes para Ajuda, Descartando, Ajuda
@section Documenta@value{cedilha}@~ao

@c SHOULD TALK ABOUT OTHER FORMS OF DOCUMENTATION ASIDE FROM ON-LINE MANUAL.

O manual on-line de utilizador do Maxima pode ser visto em diferentes formas.
A partir da linha de comando interativa do Maxima, o manual de utilizador
@'e visto em texto plano atrav@'es do comando @code{?} (i.e., a fun@value{cedilha}@~ao @code{describe} ).
O manual de utilizador @'e visto como hipertexto @code{info} atrav@'es do programa visualizador @code{info}
e como uma web page atrav@'es de qualquer navegador web comum.

@code{example} mostra exemplos de muitas fun@value{cedilha}@~oes do Maxima.
Por exemplo,

@example
(%i1) example (integrate);
@end example

retorna

@example
(%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
@end example

e sa@'{@dotless{i}}da adicional.

@node Defini@value{cedilha}@~oes para Ajuda,  , Documenta@value{cedilha}@~ao, Ajuda
@section Defini@value{cedilha}@~oes para Ajuda

@deffn {Fun@value{cedilha}@~ao} demo (@var{nomeficheiro})
Avalia express@~oes Maxima em @var{nomeficheiro} e mostra os resultados.
@code{demo} faz uma pausa ap@'os avaliar cada express@~ao
e continua ap@'os a conclus@~ao com um enter das entradas de utilizador.
(Se executando em Xmaxima, @code{demo} pode precisar ver um ponto e v@'{@dotless{i}}rgula @code{;}
seguido por um enter.)

@code{demo} procura na lista de direct@'orios
@code{file_search_demo} para achar @code{nomeficheiro}.
Se o ficheiro tiver o sufixo @code{dem},
o sufixo pode ser omitido.
Veja tamb@'em @code{file_search}.

@code{demo} avalia seus argumento.
@code{demo} retorna o nome do ficheiro de demonstra@value{cedilha}@~ao.

Exemplo:

@example
(%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) 
@end example

@end deffn

@deffn {Fun@value{cedilha}@~ao} describe (@var{string})
@deffnx {Fun@value{cedilha}@~ao} describe (@var{string}, exact)
@deffnx {Fun@value{cedilha}@~ao} describe (@var{string}, inexact)
@ifinfo
@fnindex
@end ifinfo

@code{describe(@var{string})} @'e equivalente a @code{describe(@var{string}, exact)}.

@code{describe(@var{string}, exact)} encontra um item com t@'{@dotless{i}}tulo igual
(case-insensitive)
a @var{string}, se existir tal item.

@code{describe(@var{string}, inexact)} encontra todos os itens documentados que contiverem @var{string} em seus t@'{@dotless{i}}tulos.
Se existe mais de um de tal item, Maxima solicita ao utilizador seleccionar
um item ou @'{@dotless{i}}tens para mostrar.

Na linha de comando interativa,
@code{? foo} (com um espa@value{cedilha}o entre @code{?} e @code{foo})
@'e equivalente a @code{describe("foo", exact)}.
e @code{?? foo} @'e equivalente a @code{describe("foo", inexact)}.

@code{describe("", inexact)} retorna uma lista de todos os t@'opicos documentados no manual on-line.

@code{describe} n@~ao avalia seu argumento.
@code{describe} retorna @code{true} se alguma documenta@value{cedilha}@~ao for encontrada, de outra forma retorna @code{false}.

Veja tamb@'em @emph{Documenta@value{cedilha}@~ao}.

Exemplo:

@example
(%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, [...]
@end example

Nesse , @'{@dotless{i}}tens 7 e 8 foram seleccionados.
Todos ou nenhum dos @'{@dotless{i}}tens poderia ter sido seleccionado atrav@'es da inser@value{cedilha}@~ao de @code{all} ou @code{none},
que podem ser abreviado para @code{a} ou para @code{n}, respectivamente.

@end deffn

@deffn {Fun@value{cedilha}@~ao} example (@var{t@'opico})
@deffnx {Fun@value{cedilha}@~ao} example ()
@code{example (@var{topic})} mostra alguns exemplos de @var{t@'opico},
que @'e um s@'{@dotless{i}}mbolo (n@~ao uma sequ@^encia de caracteres).
A maioria dos t@'opicos s@~ao nomes de fun@value{cedilha}@~ao.
@code{example ()} retorna a lista de todos os t@'opicos reconhecidos.

O nome do ficheiro contendo os exemplos @'e dado pela
vari@'avel global @code{manual_demo}, cujo valor padr@~ao @'e @code{"manual.demo"}.

@code{example} n@~ao avalia seu argumento.
@code{example} retorna @code{done}
a menos que ocorra um erro ou n@~ao exista o argumento fornecido pelo utilizador, nesse caso @code{example}
retorna uma lista de todos os t@'opicos reconhecidos.

Exemplos:

@example
(%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
@end example

@end deffn