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
|