1This is maxima.info, produced by makeinfo version 6.6 from maxima.texi.
2
3Este � o Manual do Maxima no formato Texinfo
4
5Copyright 1994, 2001 William F. Schelter
6
7START-INFO-DIR-ENTRY
8* Maxima: (maxima).     Um sistema de �lgebra computacional.
9END-INFO-DIR-ENTRY
10
11
12File: maxima.info,  Node: Ponto Flutuante,  Next: Contextos,  Prev: Entrada e Sa�da,  Up: Top
13
1410, Ponto Flutuante
15*******************
16
17* Menu:
18
19* Defini��es para ponto Flutuante::
20
21
22File: maxima.info,  Node: Defini��es para ponto Flutuante,  Prev: Ponto Flutuante,  Up: Ponto Flutuante
23
2410.1, Defini��es para ponto Flutuante
25=====================================
26
27 -- Fun��o da class: bffac (<expr>, <n>)
28     Vers�o para grandes n�meros em ponto flutuante da fun��o
29     'factorial' (usa o artif�cio gamma).  O segundo argumento informa
30     quantos d�gitos reter e retornar, isso � uma boa id�ia para
31     requisitar precis�o adicional.
32
33     'load ("bffac")' chama essa fun��o.
34
35 -- Vari�vel de Op��o da class: algepsilon
36     Valor por omiss�o: 10^8
37
38     'algepsilon' � usada por 'algsys'.
39
40 -- Fun��o da class: bfloat (<expr>)
41     Converte todos os n�meros e fun��es de n�meros em <expr> para
42     grandes n�meros em ponto flutuante (bigfloat).  O n�mero de
43     algarismos significativos no grande n�mero em ponto flutuante
44     resultante � especificado atrav�s da vari�vel global 'fpprec'.
45
46     Quando 'float2bf' for 'false' uma mensagem de alerta � mostrada
47     quando uma n�mero em ponto flutuante (float) � convertido em um
48     grande n�mero em ponto flutuante (bigfloat - uma vez que isso pode
49     resultar em perda de precis�o).
50
51 -- Fun��o da class: bfloatp (<expr>)
52     Retorna 'true' se a avalia��o da <expr> resultar em um grande
53     n�mero em ponto flutuante, de outra forma retorna 'false'.
54
55 -- Fun��o da class: bfpsi (<n>, <z>, <fpprec>)
56 -- Fun��o da class: bfpsi0 (<z>, <fpprec>)
57     'bfpsi' � a fun��o 'polygamma' de argumentos reais <z> e ordem de
58     inteiro <n>.  'bfpsi0' � a fun��o 'digamma'.  'bfpsi0 (<z>,
59     <fpprec>)' � equivalente a 'bfpsi (0, <z>, <fpprec>)'.
60
61     Essas fun��es retornam valores em grandes n�meros em ponto
62     flutuante.  <fpprec> � a precis�o do valor de retorno dos grandes
63     n�meros em ponto flutuante.
64
65     'load ("bffac")' chama essas fun��es.
66
67 -- Vari�vel de Op��o da class: bftorat
68     Valor por omiss�o: 'false'
69
70     'bftorat' controla a convers�o de 'bfloats' para n�meros racionais.
71     Quando 'bftorat' for 'false', 'ratepsilon' ser� usada para
72     controlar a convers�o (isso resulta em n�meros racionais
73     relativametne pequenos).  Quando 'bftorat' for 'true', o n�mero
74     racional gerado ir� representar precisamente o 'bfloat'.
75
76 -- Vari�vel de Op��o da class: bftrunc
77     Valor por omiss�o: 'true'
78
79     'bftrunc' faz com que tilhas de zeros em grandes n�meros em ponto
80     flutuante diferentes de zero sejam ocultadas.  Desse modo, se
81     'bftrunc' for 'false', 'bfloat (1)' ser� mostrado como
82     '1.000000000000000B0'.  De outra forma, ser� mostrado como '1.0B0'.
83
84 -- Fun��o da class: cbffac (<z>, <fpprec>)
85     Factorial complexo de grandes n�meros em ponto flutuante.
86
87     'load ("bffac")' chama essa fun��o.
88
89 -- Fun��o da class: float (<expr>)
90     Converte inteiros, n�meros racionais e grandes n�meros em ponto
91     flutuante em <expr> para n�meros em ponto flutuante.  Da mesma
92     forma um 'evflag', 'float' faz com que n�meros racionais
93     n�o-inteiros e grandes n�meros em ponto flutuante sejam convertidos
94     para ponto flutuante.
95
96 -- Vari�vel de Op��o da class: float2bf
97     Valor por omiss�o: 'false'
98
99     Quando 'float2bf' for 'false', uma mensagem de alerta � mostrada
100     quando um n�mero em ponto flutuante � convertido em um grande
101     n�mero em ponto flutuante (uma vez que isso pode resultar em perda
102     de precis�o).
103
104 -- Fun��o da class: floatnump (<expr>)
105     Retorna 'true' se <expr> for um n�mero em ponto flutuante, de outra
106     forma retorna 'false'.
107
108 -- Vari�vel de Op��o da class: fpprec
109     Valor por omiss�o: 16
110
111     'fpprec' � o n�mero de algarismos significativos para aritm�tica
112     sobre grandes n�meros em ponto flutuante 'fpprec' n�o afecta
113     c�lculos sobre n�meros em ponto flutuante comuns.
114
115     Veja tamb�m 'bfloat' e 'fpprintprec'.
116
117 -- Vari�vel de Op��o da class: fpprintprec
118     Valor por omiss�o: 0
119
120     'fpprintprec' � o n;umero de d�gitos a serem mostrados na tela
121     quando no caso de nu�meros em ponto flutuante e no caso de grandes
122     n�meros em ponto flutuante.
123
124     Para n�meros em ponto flutuante comuns, quando 'fpprintprec' tiver
125     um valor entre 2 e 16 (inclusive), o n;umero de d�gitos mostrado na
126     tela � igual a 'fpprintprec'.  De outra forma, 'fpprintprec' � 0,
127     ou maior que 16, e o n�mero de d�gitos mostrados � 16.
128
129     Para grandes n�meros em ponto flutuante, quando 'fpprintprec' tiver
130     um valor entre 2 e 'fpprec' (inclusive), o n;umero de d�gitos
131     mostrados � giaul a 'fpprintprec'.  De outra forma, 'fpprintprec' �
132     0, ou maior que 'fpprec', e o n;umero de d�gitos mostrados � igual
133     a 'fpprec'.
134
135     'fpprintprec' n�o pode ser 1.
136
137
138File: maxima.info,  Node: Contextos,  Next: Polin�mios,  Prev: Ponto Flutuante,  Up: Top
139
14011, Contextos
141*************
142
143* Menu:
144
145* Defini��es para Contextos::
146
147
148File: maxima.info,  Node: Defini��es para Contextos,  Prev: Contextos,  Up: Contextos
149
15011.1, Defini��es para Contextos
151===============================
152
153 -- Fun��o da class: activate (<context_1>, ..., <context_n>)
154     Ativa os contextos <context_1>, ..., <context_n>.  Os factos nesses
155     contextos est�o ent�o dispon�veis para fazer dedu��es e recuperar
156     informa��o.  Os factos nesses contextos n�o s�o listadas atrav�s de
157     'facts ()'.
158
159     A vari�vel 'activecontexts' � a lista de contextos que est�o
160     activos pelo caminho da fun��o 'activate'.
161
162 -- Vari�vel de sistema da class: activecontexts
163     Valor por omiss�o: '[]'
164
165     'activecontexts' � a lista de contextos que est�o activos pelo
166     caminho da fun��o 'activate', em oposi��o a sendo activo porque
167     eles s�o subcontextos do contexto corrente.
168
169 -- Fun��o da class: assume (<pred_1>, ..., <pred_n>)
170     Adiciona predicados <pred_1>, ..., <pred_n> ao contexto corrente.
171     Se um predicado for incossistente ou redundante com os predicados
172     no contexto corrente, esses predicados n�o s�o adicionados ao
173     contexto.  O contexto acumula predicados de cada chamada a
174     'assume'.
175
176     'assume' retorna uma lista cujos elementos s�o os predicados
177     adicionados ao contexto ou os �tomos 'redundant' ou 'inconsistent'
178     onde for aplic�vel.
179
180     Os predicados <pred_1>, ..., <pred_n> podem somente ser express�es
181     com os operadores relacionais '< <= equal notequal >=' e '>'.
182     Predicados n�o podem ser express�es de igualdades literais '=' ou
183     express�es de desigualdades literais '#', nem podem elas serem
184     fun��es de predicado tais como 'integerp'.
185
186     Predicados combinados da forma '<pred_1> and ... and <pred_n>' s�o
187     reconhecidos, mas n�o '<pred_1> or ... or <pred_n>'.  'not
188     <pred_k>' � reconhecidos se <pred_k> for um predicado relacional.
189     Express�es da forma 'not (<pred_1> e <pred_2>)' and 'not (<pred_1>
190     or <pred_2>)' n�o s�o reconhecidas.
191
192     O mecanismo de dedu��o do Maxima n�o � muito forte; exitem
193     consequ�ncias muito �bvias as quais n�o podem ser determinadas por
194     meio de 'is'.  Isso � uma fraqueza conhecida.
195
196     'assume' avalia seus argumentos.
197
198     Veja tamb�m 'is', 'facts', 'forget', 'context', e 'declare'.
199
200     Exemplos:
201
202          (%i1) assume (xx > 0, yy < -1, zz >= 0);
203          (%o1)              [xx > 0, yy < - 1, zz >= 0]
204          (%i2) assume (aa < bb and bb < cc);
205          (%o2)                  [bb > aa, cc > bb]
206          (%i3) facts ();
207          (%o3)     [xx > 0, - 1 > yy, zz >= 0, bb > aa, cc > bb]
208          (%i4) is (xx > yy);
209          (%o4)                         true
210          (%i5) is (yy < -yy);
211          (%o5)                         true
212          (%i6) is (sinh (bb - aa) > 0);
213          (%o6)                         true
214          (%i7) forget (bb > aa);
215          (%o7)                       [bb > aa]
216          (%i8) prederror : false;
217          (%o8)                         false
218          (%i9) is (sinh (bb - aa) > 0);
219          (%o9)                        unknown
220          (%i10) is (bb^2 < cc^2);
221          (%o10)                       unknown
222
223 -- Vari�vel de op��o da class: assumescalar
224     Valor por omiss�o: 'true'
225
226     'assumescalar' ajuda a governar se express�es 'expr' para as quais
227     'nonscalarp (expr)' for 'false' s�o assumidas comportar-se como
228     escalares para certas transforma��es.
229
230     Tomemos 'expr' representando qualquer express�o outra que n�o uma
231     lista ou uma matriz, e tomemos '[1, 2, 3]' representando qualquer
232     lista ou matriz.  Ent�o 'expr . [1, 2, 3]' retorna '[expr, 2 expr,
233     3 expr]' se 'assumescalar' for 'true', ou 'scalarp (expr)' for
234     'true', ou 'constantp (expr)' for 'true'.
235
236     Se 'assumescalar' for 'true', tais express�es ir�o comportar-se
237     como escalares somente para operadores comutativos, mas n�o para
238     multiplica��o n�o comutativa '.'.
239
240     Quando 'assumescalar' for 'false', tais express�es ir�o
241     comportar-se como n�o escalares.
242
243     Quando 'assumescalar' for 'all', tais express�es ir�o comportar-se
244     como escalares para todos os operadores listados acima.
245
246 -- Vari�vel de op��o da class: assume_pos
247     Valor por omiss�o: 'false'
248
249     Quando 'assume_pos' for 'true' e o sinal de um par�metro <x> n�o
250     pode ser determinado a partir do contexto corrente ou outras
251     considera��es, 'sign' e 'asksign (<x>)' retornam 'true'.  Isso pode
252     impedir algum questionamento de 'asksign' gerado automaticamente,
253     tal como pode surgir de 'integrate' ou de outros c�lculos.
254
255     Por padr�o, um par�metro � <x> tal como 'symbolp (<x>)' or 'subvarp
256     (<x>)'.  A classe de express�es consideradas par�metros pode ser
257     modificada para alguma abrang�ncia atrav�s da vari�vel
258     'assume_pos_pred'.
259
260     'sign' e 'asksign' tentam deduzir o sinal de express�es a partir de
261     sinais de operandos dentro da express�o.  Por exemplo, se 'a' e 'b'
262     s�o ambos positivos, ent�o 'a + b' � tamb�m positivo.
263
264     Todavia, n�o existe caminho para desviar todos os questionamentos
265     de 'asksign'.  Particularmente, quando o argumento de 'asksign' for
266     uma diferen�a '<x> - <y>' ou um logaritmo 'log(<x>)', 'asksign'
267     sempre solicita uma entrada ao utilizador, mesmo quando
268     'assume_pos' for 'true' e 'assume_pos_pred' for uma fun��o que
269     retorna 'true' para todos os argumentos.
270
271 -- Vari�vel de op��o da class: assume_pos_pred
272     Valor por omiss�o: 'false'
273
274     Quando 'assume_pos_pred' for atribu�do o nome de uma fun��o ou uma
275     express�o lambda de um argumento <x>, aquela fun��o � chamada para
276     determinar se <x> � considerado um par�metro para o prop�sito de
277     'assume_pos'.  'assume_pos_pred' � ignorado quando 'assume_pos' for
278     'false'.
279
280     A fun��o 'assume_pos_pred' � chamada atrav�s de 'sign' e de
281     'asksign' com um argumento <x> que � ou um �tomo, uma vari�vel
282     subscrita, ou uma express�o de chamada de fun��o.  Se a fun��o
283     'assume_pos_pred' retorna 'true', <x> � considerado um par�metro
284     para o prop�sito de 'assume_pos'.
285
286     Por padr�o, um par�metro � <x> tal que 'symbolp (x)' ou 'subvarp
287     (x)'.
288
289     Veja tamb�m 'assume' e 'assume_pos'.
290
291     Exemplos:
292
293          (%i1) assume_pos: true$
294          (%i2) assume_pos_pred: symbolp$
295          (%i3) sign (a);
296          (%o3)                          pos
297          (%i4) sign (a[1]);
298          (%o4)                          pnz
299          (%i5) assume_pos_pred: lambda ([x], display (x), true)$
300          (%i6) asksign (a);
301                                        x = a
302
303          (%o6)                          pos
304          (%i7) asksign (a[1]);
305                                       x = a
306                                            1
307
308          (%o7)                          pos
309          (%i8) asksign (foo (a));
310                                     x = foo(a)
311
312          (%o8)                          pos
313          (%i9) asksign (foo (a) + bar (b));
314                                     x = foo(a)
315
316                                     x = bar(b)
317
318          (%o9)                          pos
319          (%i10) asksign (log (a));
320                                        x = a
321
322          Is  a - 1  positive, negative, or zero?
323
324          p;
325          (%o10)                         pos
326          (%i11) asksign (a - b);
327                                        x = a
328
329                                        x = b
330
331                                        x = a
332
333                                        x = b
334
335          Is  b - a  positive, negative, or zero?
336
337          p;
338          (%o11)                         neg
339
340 -- Vari�vel de op��o da class: context
341     Valor por omiss�o: 'initial'
342
343     'context' nomeia a colec��o de factos mantida atrav�s de 'assume' e
344     'forget'.  'assume' adiciona factos � colec��o nomeada atrav�s de
345     'context', enquanto 'forget' remove factos.
346
347     Associando 'context' para um nome <foo> altera o contexto corrente
348     para <foo>.  Se o contexto especificado <foo> n�o existe ainda, ele
349     � criado automaticamente atrav�s de uma chamada a 'newcontext'.  O
350     contexto especificado � activado automaticamente.
351
352     Veja 'contexts' para uma descri��o geral do mecanismo de contexto.
353
354 -- Vari�vel de op��o da class: contexts
355     Valor por omiss�o: '[initial, global]'
356
357     'contexts' � uma lista dos contextos que existem actualmente,
358     incluindo o contexto activo actualmente.
359
360     O mecanismo de contexto torna poss�vel para um utilizador associar
361     e nomear uma por��o seleccionada de factos, chamada um contexto.
362     Assim que isso for conclu�do, o utilizador pode ter o Maxima
363     assumindo ou esquecendo grande quantidade de factos meramente
364     atrav�s da activa��o ou desativa��o seu contexto.
365
366     Qualquer �tomo simb�lico pode ser um contexto, e os factos contidos
367     naquele contexto ir�o ser retidos em armazenamento at� que sejam
368     destru�dos um por um atrav�s de chamadas a 'forget' ou destru�dos
369     com um conjunto atrav�s de uma chamada a 'kill' para destruir o
370     contexto que eles pertencem.
371
372     Contextos existem em uma hierarqu�a, com o ra�z sempre sendo o
373     contexto 'global', que cont�m informa��es sobre Maxima que alguma
374     fun��o precisa.  Quando em um contexto dado, todos os factos
375     naquele contexto est�o "ativos" (significando que eles s�o usados
376     em dedu��es e recuperados) como est�o tamb�m todos os factos em
377     qualquer contexto que for um subcontexto do contexto activo.
378
379     Quando um novo Maxima for iniciado, o utilizador est� em um
380     contexto chamado 'initial', que tem 'global' como um subcontexto.
381
382     Veja tamb�m 'facts', 'newcontext', 'supcontext', 'killcontext',
383     'activate', 'deactivate', 'assume', e 'forget'.
384
385 -- Fun��o da class: deactivate (<context_1>, ..., <context_n>)
386     Desativa os contextos especificados <context_1>, ..., <context_n>.
387
388 -- Fun��o da class: facts (<item>)
389 -- Fun��o da class: facts ()
390     Se <item> for o nome de um contexto, 'facts (<item>)' retorna uma
391     lista de factos no contexto especificado.
392
393     Se <item> n�o for o nome de um contexto, 'facts (<item>)' retorna
394     uma lista de factos conhecidos sobre <item> no contexto actual.
395     Fatos que est�o atuvos, mas em um diferente contexto, n�o s�o
396     listados.
397
398     'facts ()' (i.e., sem argumento) lista o contexto actual.
399
400 -- Declara��o da class: features
401     Maxima recnhece ceertas propriedades matem�ticas de fun��es e
402     vari�veis.  Essas s�o chamadas "recursos".
403
404     'declare (<x>, <foo>)' fornece a propriedade <foo> para a fun��o ou
405     vari�vel <x>.
406
407     'declare (<foo>, recurso)' declara um novo recurso <foo>.  Por
408     exemplo, 'declare ([red, green, blue], feature)' declara tr�s novos
409     recursos, 'red', 'green', e 'blue'.
410
411     O predicado 'featurep (<x>, <foo>)' retorna 'true' se <x> possui a
412     propriedade <foo>, e 'false' de outra forma.
413
414     A infolista 'features' � uma lista de recursos conhecidos.  S�o
415     esses 'integer', 'noninteger', 'even', 'odd', 'rational',
416     'irrational', 'real', 'imaginary', 'complex', 'analytic',
417     'increasing', 'decreasing', 'oddfun', 'evenfun', 'posfun',
418     'commutative', 'lassociative', 'rassociative', 'symmetric', e
419     'antisymmetric', mais quaisquer recursos definidos pelo utilizador.
420
421     'features' � uma lista de recursos matem�ticos.  Existe tamb�m uma
422     lista de recursos n�o matem�ticos, recursos dependentes do sistema.
423     Veja 'status'.
424
425 -- Fun��o da class: forget (<pred_1>, ..., <pred_n>)
426 -- Fun��o da class: forget (<L>)
427     Remove predicados estabelecidos atrav�s de 'assume'.  Os predicados
428     podem ser express�es equivalentes a (mas n�o necess�riamente
429     id�nticas a) esses prevamentes assumidos.
430
431     'forget (<L>)', onde <L> � uma lista de predicados, esquece cada
432     item da lista.
433
434 -- Fun��o da class: killcontext (<context_1>, ..., <context_n>)
435     Mata os contextos <context_1>, ..., <context_n>.
436
437     Se um dos contextos estiver for o contexto actual, o novo contexto
438     actual ir� tornar-se o primeiro subcontexto dispon�vel do contexto
439     actual que n�o tiver sido morto.  Se o primeiro contexto dispon�vel
440     n�o morto for 'global' ent�o 'initial' � usado em seu lugar.  Se o
441     contexto 'initial' for morto, um novo, por�m vazio contexto
442     'initial' � criado.
443
444     'killcontext' recusa-se a matar um contexto que estiver ativo
445     actualmente, ou porque ele � um subcontexto do contexto actual, ou
446     atrav�s do uso da fun��o 'activate'.
447
448     'killcontext' avalia seus argumentos.  'killcontext' retorna
449     'done'.
450
451 -- Fun��o da class: newcontext (<nome>)
452     Cria um novo contexto, por�m vazio, chamado <nome>, que tem
453     'global' como seu �nico subcontexto.  O contexto recentemente
454     criado torna-se o contexto activo actualmente.
455
456     'newcontext' avalia seu argumento.  'newcontext' retorna <nome>.
457
458 -- Fun��o da class: supcontext (<nome>, <context>)
459 -- Fun��o da class: supcontext (<nome>)
460     Cria um novo contexto, chamado <nome>, que tem <context> como um
461     subcontexto.  <context> deve existir.
462
463     Se <context> n�o for especificado, o contexto actual � assumido.
464
465
466File: maxima.info,  Node: Polin�mios,  Next: Constantes,  Prev: Contextos,  Up: Top
467
46812, Polin�mios
469**************
470
471* Menu:
472
473* Introdu��o a Polin�mios::
474* Defini��es para Polin�mios::
475
476
477File: maxima.info,  Node: Introdu��o a Polin�mios,  Next: Defini��es para Polin�mios,  Prev: Polin�mios,  Up: Polin�mios
478
47912.1, Introdu��o a Polin�mios
480=============================
481
482Polin�mios s�o armazenados no Maxima ou na forma geral ou na forma de
483Express�es Racionais Can�nicas (CRE). Essa �ltima � uma forma padr�o, e
484� usada internamente por opera��es tais como 'factor', 'ratsimp', e
485assim por diante.
486
487Express�es Racionais Can�nicas constituem um tipo de representa��o que �
488especialmente adequado para polin�mios expandidos e fun��es racionais
489(tamb�m para polin�mios parcialmente factorizados e fun��es racionais
490quando RATFAC for escolhida para 'true').  Nessa forma CRE uma ordena��o
491de vari�veis (da mais para a menos importante) � assumida para cada
492express�o.  Polin�mios s�o representados recursivamente por uma lista
493consistindo da vari�vel principal seguida por uma s�rie de pares de
494express�es, uma para cada termo do polin�mio.  O primeiro membro de cada
495par � o expoente da vari�vel principal naquele termo e o segundo membro
496� o coeficiente daquele termo que pode ser um n�mero ou um polin�mio em
497outra vari�vel novamente respresentado nessa forma.  Sendo assim a parte
498principal da forma CRE de 3*X^2-1 � (X 2 3 0 -1) e que a parte principal
499da forma CRE de 2*X*Y+X-3 � (Y 1 (X 1 2) 0 (X 1 1 0 -3)) assumindo Y
500como sendo a vari�vel principal, e � (X 1 (Y 1 2 0 1) 0 -3) assumindo X
501como sendo a vari�vel principal.  A vari�vel principal � usualmente
502determineda pela ordem alfab�tica reversa.  As "vari�veis" de uma
503express�o CRE n�o necessariamente devem ser at�micas.  De facto qualquer
504subexpress�o cujo principal operador n�o for + - * / or ^ com expoente
505inteiro ser� considerado uma "vari�vel" da express�o (na forma CRE) na
506qual essa ocorrer.  Por exemplo as vari�veis CRE da express�o
507X+SIN(X+1)+2*SQRT(X)+1 s�o X, SQRT(X), e SIN(X+1).  Se o utilizador n�o
508especifica uma ordem de vari�veis pelo uso da fun��o RATVARS Maxima
509escolher� a alfab�tica por conta pr�pria.  Em geral, CREs representam
510express�es racionais, isto �, raz�es de polin�mios, onde o numerador e o
511denominador n�o possuem factores comuns, e o denominador for positivo.
512A forma interna � essencialmente um par de polin�mios (o numerador e o
513denominador) precedidos pela lista de ordena��o de vari�vel.  Se uma
514express�o a ser mostrada estiver na forma CRE ou se contiver quaisquer
515subexpress�es na forma CRE, o s�mbolo /R/ seguir� o r�tulo da linha.
516Veja a fun��o RAT para saber como converter uma express�o para a forma
517CRE. Uma forma CRE extendida � usada para a representa��o de s�ries de
518Taylor.  A no��o de uma express�o racional � extendida de modo que os
519expoentes das vari�veis podem ser n�meros racionais positivos ou
520negativos em lugar de apenas inteiros positivos e os coeficientes podem
521eles mesmos serem express�es racionais como descrito acima em lugar de
522apenas polin�mios.  Estes s�o representados internamente por uma forma
523polinomial recursiva que � similar � forma CRE e � a generaliza��o dessa
524mesma forma CRE, mas carrega informa��o adicional tal com o grau de
525trunca��o.  Do mesmo modo que na forma CRE, o s�mbolo /T/ segue o r�tulo
526de linha que cont�m as tais express�es.
527
528
529File: maxima.info,  Node: Defini��es para Polin�mios,  Prev: Introdu��o a Polin�mios,  Up: Polin�mios
530
53112.2, Defini��es para Polin�mios
532================================
533
534 -- Vari�vel de op��o da class: algebraic
535     Valor Padr�o: 'false'
536
537     'algebraic' deve ser escolhida para 'true' com o objectivo de que a
538     simplifica��o de inteiros alg�bricos tenha efeito.
539
540 -- Vari�vel de op��o da class: berlefact
541     Valor Padr�o: 'true'
542
543     Quando 'berlefact' for 'false' ent�o o algoritmo de factoriza��o de
544     Kronecker ser� usado.  De outra forma o algoritmo de Berlekamp, que
545     � o padr�o, ser� usado.
546
547 -- Fun��o da class: bezout (<p1>, <p2>, <x>)
548     uma alternativa para o comando 'resultant'.  Isso retorna uma
549     matriz.  'determinant' dessa matriz � o resultante desejado.
550
551 -- Fun��o da class: bothcoef (<expr>, <x>)
552     Retorna uma lista da qual o primeiro membro � o coeficiente de <x>
553     em <expr> (como achado por 'ratcoef' se <expr> est� na forma CRE de
554     outro modo por 'coeff') e cujo segundo membro � a parte restante de
555     <expr>.  Isto �, '[A, B]' onde '<expr> = A*<x> + B'.
556
557     Exemplo:
558
559          (%i1) islinear (expr, x) := block ([c],
560                  c: bothcoef (rat (expr, x), x),
561                  � (freeof (x, c) and c[1] # 0))$
562          (%i2) islinear ((r^2 - (x - r)^2)/x, x);
563          (%o2)                         true
564
565 -- Fun��o da class: coeff (<expr>, <x>, <n>)
566     Retorna o coeficiente de '<x>^<n>' em <expr>.  <n> pode ser omitido
567     se for 1.  <x> pode ser um �tomo, ou subexpress�o completa de
568     <expr> e.g., 'sin(x)', 'a[i+1]', 'x + y', etc.  (No �ltimo caso a
569     express�o '(x + y)' pode ocorrer em <expr>).  Algumas vezes isso
570     pode ser necess�rio para expandir ou factorizar <expr> com o
571     objectivo de fazer '<x>^<n>' explicito.  Isso n�o � realizado por
572     'coeff'.
573
574     Exemplos:
575
576          (%i1) coeff (2*a*tan(x) + tan(x) + b = 5*tan(x) + 3, tan(x));
577          (%o1)                      2 a + 1 = 5
578          (%i2) coeff (y + x*%e^x + 1, x, 0);
579          (%o2)                         y + 1
580
581 -- Fun��o da class: combine (<expr>)
582     Simplifica a adi��o <expr> por termos combinados com o mesmo
583     denominador dentro de um termo simples.
584
585 -- Fun��o da class: content (<p_1>, <x_1>, ..., <x_n>)
586     Retorna uma lista cujo primeiro elemento � o m�ximo divisor comum
587     dos coeficientes dos termos do polin�mio <p_1> na vari�vel <x_n>
588     (isso � o conte�do) e cujo segundo elemento � o polin�mio <p_1>
589     dividido pelo conte�do.
590
591     Exemplos:
592
593          (%i1) content (2*x*y + 4*x^2*y^2, y);
594                                             2
595          (%o1)                   [2 x, 2 x y  + y]
596
597 -- Fun��o da class: denom (<expr>)
598     Retorna o denominador da express�o racional <expr>.
599
600 -- Fun��o da class: divide (<p_1>, <p_2>, <x_1>, ..., <x_n>)
601     calcula o quocietne e o resto do polin�mio <p_1> dividido pelo
602     polin�mio <p_2>, na vari�vel principal do polin�mio, <x_n>.  As
603     outras vari�veis s�o como na fun��o 'ratvars'.  O resultado � uma
604     lista cujo primeiro elemento � o quociente e cujo segundo elemento
605     � o resto.
606
607     Exemplos:
608
609          (%i1) divide (x + y, x - y, x);
610          (%o1)                       [1, 2 y]
611          (%i2) divide (x + y, x - y);
612          (%o2)                      [- 1, 2 x]
613
614     Note que 'y' � a vari�vel principal no segundo exemplo.
615
616 -- Fun��o da class: eliminate ([<eqn_1>, ..., <eqn_n>], [<x_1>, ...,
617          <x_k>])
618     Elimina vari�veis de equa��es (ou express�es assumidas iguais a
619     zero) obtendo resultantes sucessivos.  Isso retorna uma lista de
620     '<n> - <k>' express�es com <k> vari�veis <x_1>, ..., <x_k>
621     eliminadas.  Primeiro <x_1> � eliminado retornando '<n> - 1'
622     express�es, ent�o 'x_2' � eliminado, etc.  Se '<k> = <n>' ent�o uma
623     express�o simples em uma lista � retornada livre das vari�veis
624     <x_1>, ..., <x_k>.  Nesse caso 'solve' � chamado para resolver a
625     �ltima resultante para a �ltima vari�vel.
626
627     Exemplo:
628
629          (%i1) expr1: 2*x^2 + y*x + z;
630                                                2
631          (%o1)                    z + x y + 2 x
632          (%i2) expr2: 3*x + 5*y - z - 1;
633          (%o2)                  - z + 5 y + 3 x - 1
634          (%i3) expr3: z^2 + x - y^2 + 5;
635                                    2    2
636          (%o3)                    z  - y  + x + 5
637          (%i4) eliminate ([expr3, expr2, expr1], [y, z]);
638                       8         7         6          5          4
639          (%o4) [7425 x  - 1170 x  + 1299 x  + 12076 x  + 22887 x
640
641                                              3         2
642                                      - 5154 x  - 1291 x  + 7688 x + 15376]
643
644 -- Fun��o da class: ezgcd (<p_1>, <p_2>, <p_3>, ...)
645     Retorna uma lista cujo primeiro elemento � o m.d.c.  dos polin�mios
646     <p_1>, <p_2>, <p_3>, ...  e cujos restantes elementos s�o os
647     polin�mios divididos pelo mdc.  Isso sempre usa o algoritmo
648     'ezgcd'.
649
650 -- Vari�vel de op��o da class: facexpand
651     Valor Padr�o: 'true'
652
653     'facexpand' controla se os factores irredut�veis retornados por
654     'factor' est�o na forma expandida (o padr�o) ou na forma recursiva
655     (CRE normal).
656
657 -- Fun��o da class: factcomb (<expr>)
658     Tenta combinar os coeficientes de factoriais em <expr> com os
659     pr�prios factoriais convertendo, por exemplo, '(n + 1)*n!' em '(n +
660     1)!'.
661
662     'sumsplitfact' se escolhida para 'false' far� com que
663     'minfactorial' seja aplicado ap�s um 'factcomb'.
664
665 -- Fun��o da class: factor (<expr>)
666 -- Fun��o da class: factor (<expr>, <p>)
667
668     Factoriza a express�o <expr>, contendo qualquer n�mero de vari�veis
669     ou fun��es, em factores irredut�veis sobre os inteiros.  'factor
670     (<expr>, <p>)' factoriza <expr> sobre o campo dos inteiros com um
671     elemento adjunto cujo menor polin�mio � <p>.
672
673     'factor' usa a fun��o 'ifactors' para factorizar inteiros.
674
675     'factorflag' se 'false' suprime a factoriza��o de factores inteiros
676     de express�es racionais.
677
678     'dontfactor' pode ser escolhida para uma lista de vari�veis com
679     rela��o � qual factoriza��o n�o � para ocorrer.  (Essa �
680     inicialmente vazia).  Factoriza��o tamb�m n�o acontece com rela��o
681     a quaisquer vari�veis que s�o menos importantes (usando a ordena��o
682     de vari�vel assumida pela forma CRE) como essas na lista
683     'dontfactor'.
684
685     'savefactors' se 'true' faz com que os factores de uma express�o
686     que � um produto de factores seja guardada por certas fun��es com o
687     objectivo de aumentar a velocidade de futuras factoriza��es de
688     express�es contendo alguns dos mesmos factores.
689
690     'berlefact' se 'false' ent�o o algoritmo de factoriza��o de
691     Kronecker ser� usado de outra forma o algoritmo de Berlekamp, que �
692     o padr�o, ser� usado.
693
694     'intfaclim' se 'true' maxima ir� interromper a factoriza��o de
695     inteiros se nenhum factor for encontrado ap�s tentar divis�es e o
696     m�todo rho de Pollard.  Se escolhida para 'false' (esse � o caso
697     quando o utilizador chama 'factor' explicitamente), a factoriza��o
698     completa do inteiro ser� tentada.  A escolha do utilizador para
699     'intfaclim' � usada para chamadas internas a 'factor'.  Dessa
700     forma, 'intfaclim' pode ser resetada para evitar que o Maxima gaste
701     um tempo muito longo factorizando inteiros grandes.
702
703     Exemplos:
704
705          (%i1) factor (2^63 - 1);
706                              2
707          (%o1)              7  73 127 337 92737 649657
708          (%i2) factor (-8*y - 4*x + z^2*(2*y + x));
709          (%o2)               (2 y + x) (z - 2) (z + 2)
710          (%i3) -1 - 2*x - x^2 + y^2 + 2*x*y^2 + x^2*y^2;
711                          2  2        2    2    2
712          (%o3)          x  y  + 2 x y  + y  - x  - 2 x - 1
713          (%i4) block ([dontfactor: [x]], factor (%/36/(1 + 2*y + y^2)));
714                                 2
715                               (x  + 2 x + 1) (y - 1)
716          (%o4)                ----------------------
717                                     36 (y + 1)
718          (%i5) factor (1 + %e^(3*x));
719                                x         2 x     x
720          (%o5)              (%e  + 1) (%e    - %e  + 1)
721          (%i6) factor (1 + x^4, a^2 - 2);
722                              2              2
723          (%o6)             (x  - a x + 1) (x  + a x + 1)
724          (%i7) factor (-y^2*z^2 - x*z^2 + x^2*y^2 + x^3);
725                                 2
726          (%o7)              - (y  + x) (z - x) (z + x)
727          (%i8) (2 + x)/(3 + x)/(b + x)/(c + x)^2;
728                                       x + 2
729          (%o8)               ------------------------
730                                                     2
731                              (x + 3) (x + b) (x + c)
732          (%i9) ratsimp (%);
733                          4                  3
734          (%o9) (x + 2)/(x  + (2 c + b + 3) x
735
736               2                       2             2                   2
737           + (c  + (2 b + 6) c + 3 b) x  + ((b + 3) c  + 6 b c) x + 3 b c )
738          (%i10) partfrac (%, x);
739                     2                   4                3
740          (%o10) - (c  - 4 c - b + 6)/((c  + (- 2 b - 6) c
741
742               2              2         2                2
743           + (b  + 12 b + 9) c  + (- 6 b  - 18 b) c + 9 b ) (x + c))
744
745                           c - 2
746           - ---------------------------------
747               2                             2
748             (c  + (- b - 3) c + 3 b) (x + c)
749
750                                   b - 2
751           + -------------------------------------------------
752                       2             2       3      2
753             ((b - 3) c  + (6 b - 2 b ) c + b  - 3 b ) (x + b)
754
755                                   1
756           - ----------------------------------------------
757                       2
758             ((b - 3) c  + (18 - 6 b) c + 9 b - 27) (x + 3)
759          (%i11) map ('factor, %);
760                        2
761                       c  - 4 c - b + 6                 c - 2
762          (%o11) - ------------------------- - ------------------------
763                          2        2                                  2
764                   (c - 3)  (c - b)  (x + c)   (c - 3) (c - b) (x + c)
765
766                                 b - 2                        1
767                      + ------------------------ - ------------------------
768                                       2                          2
769                        (b - 3) (c - b)  (x + b)   (b - 3) (c - 3)  (x + 3)
770          (%i12) ratsimp ((x^5 - 1)/(x - 1));
771                                 4    3    2
772          (%o12)                x  + x  + x  + x + 1
773          (%i13) subst (a, x, %);
774                                 4    3    2
775          (%o13)                a  + a  + a  + a + 1
776          (%i14) factor (%th(2), %);
777                                 2        3        3    2
778          (%o14)   (x - a) (x - a ) (x - a ) (x + a  + a  + a + 1)
779          (%i15) factor (1 + x^12);
780                                 4        8    4
781          (%o15)               (x  + 1) (x  - x  + 1)
782          (%i16) factor (1 + x^99);
783                           2            6    3
784          (%o16) (x + 1) (x  - x + 1) (x  - x  + 1)
785
786             10    9    8    7    6    5    4    3    2
787           (x   - x  + x  - x  + x  - x  + x  - x  + x  - x + 1)
788
789             20    19    17    16    14    13    11    10    9    7    6
790           (x   + x   - x   - x   + x   + x   - x   - x   - x  + x  + x
791
792              4    3            60    57    51    48    42    39    33
793           - x  - x  + x + 1) (x   + x   - x   - x   + x   + x   - x
794
795              30    27    21    18    12    9    3
796           - x   - x   + x   + x   - x   - x  + x  + 1)
797
798 -- Vari�vel de op��o da class: factorflag
799     Valor Padr�o: 'false'
800
801     Quando 'factorflag' for 'false', suprime a factoriza��o de factores
802     inteiros em express�es racionais.
803
804 -- Fun��o da class: factorout (<expr>, <x_1>, <x_2>, ...)
805     Rearranja a adi��o <expr> em uma adi��o de parcelas da forma 'f
806     (<x_1>, <x_2>, ...)*g' onde 'g' � um produto de express�es que n�o
807     possuem qualquer <x_i> e 'f' � factorizado.
808
809 -- Fun��o da class: factorsum (<expr>)
810     Tenta agrupar parcelas em factores de <expr> que s�o adi��es em
811     grupos de parcelas tais que sua adi��o � factor�vel.  'factorsum'
812     pode recuperar o resultado de 'expand ((x + y)^2 + (z + w)^2)' mas
813     n�o pode recuperar 'expand ((x + 1)^2 + (x + y)^2)' porque os
814     termos possuem vari�veis em comum.
815
816     Exemplo:
817
818          (%i1) expand ((x + 1)*((u + v)^2 + a*(w + z)^2));
819                     2      2                            2      2
820          (%o1) a x z  + a z  + 2 a w x z + 2 a w z + a w  x + v  x
821
822                                               2        2    2            2
823                                  + 2 u v x + u  x + a w  + v  + 2 u v + u
824          (%i2) factorsum (%);
825                                             2          2
826          (%o2)            (x + 1) (a (z + w)  + (v + u) )
827
828 -- Fun��o da class: fasttimes (<p_1>, <p_2>)
829     Retorna o produto dos polin�mios <p_1> e <p_2> usando um algoritmo
830     especial para a multiplica��o de polin�mios.  'p_1' e 'p_2' podem
831     ser de v�rias vari�veis, densos, e aproximadamente do mesmo
832     tamanho.  A multiplica��o cl�ssica � de ordem 'n_1 n_2' onde 'n_1'
833     � o grau de 'p_1' and 'n_2' � o grau de 'p_2'.  'fasttimes' � da
834     ordem 'max (n_1, n_2)^1.585'.
835
836 -- Fun��o da class: fullratsimp (<expr>)
837     'fullratsimp' aplica repetidamente 'ratsimp' seguido por
838     simplifica��o n�o racional a uma express�o at� que nenhuma mudan�a
839     adicional ocorra, e retorna o resultado.
840
841     Quando express�es n�o racionais est�o envolvidas, uma chamada a
842     'ratsimp' seguida como � usual por uma simplifica��o n�o racional
843     ("geral") pode n�o ser suficiente para retornar um resultado
844     simplificado.  Algumas vezes, mais que uma tal chamada pode ser
845     necess�ria.  'fullratsimp' faz esse processo convenientemente.
846
847     'fullratsimp (<expr>, <x_1>, ..., <x_n>)' aceita um ou mais
848     argumentos similar a 'ratsimp' e 'rat'.
849
850     Exemplo:
851
852          (%i1) expr: (x^(a/2) + 1)^2*(x^(a/2) - 1)^2/(x^a - 1);
853                                 a/2     2   a/2     2
854                               (x    - 1)  (x    + 1)
855          (%o1)                -----------------------
856                                        a
857                                       x  - 1
858          (%i2) ratsimp (expr);
859                                    2 a      a
860                                   x    - 2 x  + 1
861          (%o2)                    ---------------
862                                        a
863                                       x  - 1
864          (%i3) fullratsimp (expr);
865                                        a
866          (%o3)                        x  - 1
867          (%i4) rat (expr);
868                                 a/2 4       a/2 2
869                               (x   )  - 2 (x   )  + 1
870          (%o4)/R/             -----------------------
871                                        a
872                                       x  - 1
873
874 -- Fun��o da class: fullratsubst (<a>, <b>, <c>)
875     � o mesmo que 'ratsubst' excepto que essa chama a si mesma
876     recursivamente sobre esse resultado at� que o resultado para de
877     mudar.  Essa fun��o � �til quando a express�o de substitui��o e a
878     express�o substitu�da tenham uma ou mais vari�veis em comum.
879
880     'fullratsubst' ir� tamb�m aceitar seus argumentos no formato de
881     'lratsubst'.  Isto �, o primeiro argumento pode ser uma
882     substitui��o simples de equa��o ou uma lista de tais equa��es,
883     enquanto o segundo argumento � a express�o sendo processada.
884
885     'load ("lrats")' chama 'fullratsubst' e 'lratsubst'.
886
887     Exemplos:
888
889          (%i1) load ("lrats")$
890        * 'subst' pode realizar multiplas substitui��es.  'lratsubst' �
891          analogo a 'subst'.
892          (%i2) subst ([a = b, c = d], a + c);
893          (%o2)                         d + b
894          (%i3) lratsubst ([a^2 = b, c^2 = d], (a + e)*c*(a + c));
895          (%o3)                (d + a c) e + a d + b c
896        * Se somente uma substitui��o � desejada, ent�o uma equa��o
897          simples pode ser dada como primeiro argumento.
898          (%i4) lratsubst (a^2 = b, a^3);
899          (%o4)                          a b
900        * 'fullratsubst' � equivalente a 'ratsubst' excepto que essa
901          executa recursivamente at� que seu resultado para de mudar.
902          (%i5) ratsubst (b*a, a^2, a^3);
903                                         2
904          (%o5)                         a  b
905          (%i6) fullratsubst (b*a, a^2, a^3);
906                                           2
907          (%o6)                         a b
908        * 'fullratsubst' tamb�m aceita uma lista de equa��es ou uma
909          equa��o simples como primeiro argumento.
910          (%i7) fullratsubst ([a^2 = b, b^2 = c, c^2 = a], a^3*b*c);
911          (%o7)                           b
912          (%i8) fullratsubst (a^2 = b*a, a^3);
913                                           2
914          (%o8)                         a b
915        * 'fullratsubst' pode causar uma recurs�o infinita.
916          (%i9) errcatch (fullratsubst (b*a^2, a^2, a^3));
917
918          *** - Lisp stack overflow. RESET
919
920 -- Fun��o da class: gcd (<p_1>, <p_2>, <x_1>, ...)
921     Retorna o m�ximo divisor comum entre <p_1> e <p_2>.  O sinalizador
922     'gcd' determina qual algoritmo � empregado.  Escolhendo 'gcd' para
923     'ez', 'subres', 'red', ou 'spmod' selecciona o algoritmo 'ezgcd',
924     subresultante 'prs', reduzido, ou modular, respectivamente.  Se
925     'gcd' for 'false' ent�o 'gcd (<p_1>, <p_2>, <x>)' sempre retorna 1
926     para todo <x>.  Muitas fun��es (e.g.  'ratsimp', 'factor', etc.)
927     fazem com que mdc's sejam feitos implicitamente.  Para polin�mios
928     homog�neos � recomendado que 'gcd' igual a 'subres' seja usado.
929     Para obter o mdc quando uma express�o alg�brica est� presente, e.g.
930     'gcd (<x>^2 - 2*sqrt(2)*<x> + 2, <x> - sqrt(2))', 'algebraic' deve
931     ser 'true' e 'gcd' n�o deve ser 'ez'.  'subres' � um novo
932     algoritmo, e pessoas que tenham estado usando a op��o 'red' podem
933     provavelmente alterar isso para 'subres'.
934
935     O sinalizador 'gcd', padr�o: 'subres', se 'false' ir� tamb�m evitar
936     o m�ximo divisor comum de ser usado quando express�es s�o
937     convertidas para a forma de express�o racional can�nica (CRE). Isso
938     ir� algumas vezes aumentar a velocidade dos c�lculos se mdc's n�o
939     s�o requeridos.
940
941 -- Fun��o da class: gcdex (<f>, <g>)
942 -- Fun��o da class: gcdex (<f>, <g>, <x>)
943     Retornam uma lista '[<a>, <b>, <u>]' onde <u> � o m�ximo divisor
944     comum (mdc) entre <f> e <g>, e <u> � igual a '<a> <f> + <b> <g>'.
945     Os argumentos <f> e <g> podem ser polin�mios de uma vari�vel, ou de
946     outra forma polin�mios em <x> uma main(principal) vari�vel suprida
947     desde que n�s precisamos estar em um dom�nio de ideal principal
948     para isso trabalhar.  O mdc significa o mdc considerando <f> e <g>
949     como polin�mios de uma �nica vari�vel com coeficientes sendo
950     fun��es racionais em outras vari�veis.
951
952     'gcdex' implementa o algoritmo Euclideano, onde temos a sequ�ncia
953     of 'L[i]: [a[i], b[i], r[i]]' que s�o todos perpendiculares a '[f,
954     g, -1]' e o pr�ximo se � constru�do como se 'q =
955     quotient(r[i]/r[i+1])' ent�o 'L[i+2]: L[i] - q L[i+1]', e isso
956     encerra em 'L[i+1]' quando o resto 'r[i+2]' for zero.
957
958          (%i1) gcdex (x^2 + 1, x^3 + 4);
959                                 2
960                                x  + 4 x - 1  x + 4
961          (%o1)/R/           [- ------------, -----, 1]
962                                     17        17
963          (%i2) % . [x^2 + 1, x^3 + 4, -1];
964          (%o2)/R/                        0
965
966     Note que o mdc adiante � '1' uma vez que trabalhamos em 'k(y)[x]',
967     o 'y+1' n�o pode ser esperado em 'k[y, x]'.
968
969          (%i1) gcdex (x*(y + 1), y^2 - 1, x);
970                                         1
971          (%o1)/R/                 [0, ------, 1]
972                                        2
973                                       y  - 1
974
975 -- Fun��o da class: gcfactor (<n>)
976     Factoriza o inteiro Gaussiano <n> sobre os inteiros Gaussianos,
977     i.e., n�meros da forma '<a> + <b> %i' onde <a> e <b> s�o inteiros
978     raconais (i.e., inteiros comuns).  Factoriza��es s�o normalizadas
979     fazendo <a> e <b> n�o negativos.
980
981 -- Fun��o da class: gfactor (<expr>)
982     Factoriza o polin�mio <expr> sobre os inteiros de Gauss (isto �, os
983     inteiros com a unidade imagin�ria '%i' adjunta).  Isso � como
984     'factor (<expr>, <a>^2+1)' trocando <a> por '%i'.
985
986     Exemplo:
987
988          (%i1) gfactor (x^4 - 1);
989          (%o1)           (x - 1) (x + 1) (x - %i) (x + %i)
990
991 -- Fun��o da class: gfactorsum (<expr>)
992     � similar a 'factorsum' mas aplica 'gfactor' em lugar de 'factor'.
993
994 -- Fun��o da class: hipow (<expr>, <x>)
995     Retorna o maior expoente expl�cito de <x> em <expr>.  <x> pode ser
996     uma vari�vel ou uma express�o geral.  Se <x> n�o aparece em <expr>,
997     'hipow' retorna '0'.
998
999     'hipow' n�o considera express�es equivalentes a 'expr'.  Em
1000     particular, 'hipow' n�o expande 'expr', ent�o 'hipow (<expr>, <x>)'
1001     e 'hipow (expand (<expr>, <x>))' podem retornar diferentes
1002     resultados.
1003
1004     Exemplos:
1005
1006          (%i1) hipow (y^3 * x^2 + x * y^4, x);
1007          (%o1)                           2
1008          (%i2) hipow ((x + y)^5, x);
1009          (%o2)                           1
1010          (%i3) hipow (expand ((x + y)^5), x);
1011          (%o3)                           5
1012          (%i4) hipow ((x + y)^5, x + y);
1013          (%o4)                           5
1014          (%i5) hipow (expand ((x + y)^5), x + y);
1015          (%o5)                           0
1016
1017 -- Vari�vel de op��o da class: intfaclim
1018     Valor por omiss�o: true
1019
1020     Se 'true', maxima ir� interromper a factoriza��o de inteiros se
1021     nenhum factor for encontrado ap�s tentar divis�es e o m�todo rho de
1022     Pollard e a factoriza��o n�o ser� completada.
1023
1024     Quando 'intfaclim' for 'false' (esse � o caso quando o utilizador
1025     chama 'factor' explicitamente), a factoriza��o completa ser�
1026     tentada.  'intfaclim' � escolhida para 'false' quando factores s�o
1027     calculados em 'divisors', 'divsum' e 'totient'.
1028
1029     Chamadas internas a 'factor' respeitam o valor especificado pelo
1030     utilizador para 'intfaclim'.  Setting 'intfaclim' to 'true' may
1031     reduce 'intfaclim'.  Escolhendo 'intfaclim' para 'true' podemos
1032     reduzir o tempo gasto factorizando grandes inteiros.
1033
1034 -- Vari�vel de op��o da class: keepfloat
1035     Valor Padr�o: 'false'
1036
1037     Quando 'keepfloat' for 'true', evitamos que n�meros em ponto
1038     flutuante sejam racionalizados quando express�es que os possuem s�o
1039     ent�o convertidas para a forma de express�o racional can�nica
1040     (CRE).
1041
1042 -- Fun��o da class: lratsubst (<L>, <expr>)
1043     � an�logo a 'subst (<L>, <expr>)' excepto que esse usa 'ratsubst'
1044     em lugar de 'subst'.
1045
1046     O primeiro argumento de 'lratsubst' � uma equa��o ou uma lista de
1047     equa��es id�nticas em formato para que sejam aceitas por 'subst'.
1048     As substitui��es s�o feitas na ordem dada pela lista de equa��es,
1049     isto �, da esquerda para a direita.
1050
1051     'load ("lrats")' chama 'fullratsubst' e 'lratsubst'.
1052
1053     Exemplos:
1054
1055          (%i1) load ("lrats")$
1056        * 'subst' pode realizar multiplas substitui��es.  'lratsubst' �
1057          analoga a 'subst'.
1058          (%i2) subst ([a = b, c = d], a + c);
1059          (%o2)                         d + b
1060          (%i3) lratsubst ([a^2 = b, c^2 = d], (a + e)*c*(a + c));
1061          (%o3)                (d + a c) e + a d + b c
1062        * Se somente uma substitui��o for desejada, ent�o uma equa��o
1063          simples pode ser dada como primeiro argumento.
1064          (%i4) lratsubst (a^2 = b, a^3);
1065          (%o4)                          a b
1066
1067 -- Vari�vel de op��o da class: modulus
1068     Valor Padr�o: 'false'
1069
1070     Quando 'modulus' for um n�mero positivo <p>, opera��es sobre os
1071     n�meros racionais (como retornado por 'rat' e fun��es relacionadas)
1072     s�o realizadas m�dulo <p>, usando o ent�o chamado sistema de m�dulo
1073     "balanceado" no qual '<n> m�dulo <p>' � definido como um inteiro
1074     <k> em '[-(<p>-1)/2, ..., 0, ..., (<p>-1)/2]' quando <p> for �mpar,
1075     ou '[-(<p>/2 - 1), ..., 0, ...., <p>/2]' quando <p> for par, tal
1076     que '<a> <p> + <k>' seja igual a <n> para algum inteiro <a>.
1077
1078     Se <expr> j� estiver na forma de express�o racional can�nica (CRE)
1079     quando 'modulus' for colocado no seu valor original, ent�o pode
1080     precisar repetir o rat <expr>, e.g., 'expr: rat (ratdisrep
1081     (expr))', com o objectivo de obter resultados correctos.
1082
1083     Tipicamente 'modulus' � escolhido para um n�mero primo.  Se
1084     'modulus' for escolhido para um inteiro n�o primo positivo, essa
1085     escolha � aceita, mas uma mensagem de alerta � mostrada.  Maxima
1086     permitir� que zero ou um inteiro negativo seja atribu�do a
1087     'modulus', embora isso n�o seja limpo se aquele tiver quaisquer
1088     consequ�ncias �teis.
1089
1090 -- Fun��o da class: num (<expr>)
1091     Retorna o numerador de <expr> se isso for uma raz�o.  Se <expr> n�o
1092     for uma raz�o, <expr> � retornado.
1093
1094     'num' avalia seu argumento.
1095
1096 -- Fun��o da class: polydecomp (<p>, <x>)
1097
1098     Decomp�es o polin�mio <p> na vari�vel <x> em uma composi��o
1099     funcional de polin�mios em <x>.  'polydecomp' retorna uma lista
1100     '[<p_1>, ..., <p_n>]' tal que
1101
1102          lambda ([x], p_1) (lambda ([x], p_2) (... (lambda ([x], p_n) (x)) ...))
1103
1104     seja igual a <p>.  O grau de <p_i> � maior que 1 para <i> menor que
1105     <n>.
1106
1107     Tal decomposi��o n�o � �nica.
1108
1109     Exemplos:
1110
1111          (%i1) polydecomp (x^210, x);
1112                                    7   5   3   2
1113          (%o1)                   [x , x , x , x ]
1114          (%i2) p : expand (subst (x^3 - x - 1, x, x^2 - a));
1115                          6      4      3    2
1116          (%o2)          x  - 2 x  - 2 x  + x  + 2 x - a + 1
1117          (%i3) polydecomp (p, x);
1118                                  2       3
1119          (%o3)                 [x  - a, x  - x - 1]
1120
1121     As seguintes fun��es comp�em 'L = [e_1, ..., e_n]' como fun��es em
1122     'x'; essa fun��o � a inversa de 'polydecomp':
1123
1124          compose (L, x) :=
1125            block ([r : x], for e in L do r : subst (e, x, r), r) $
1126
1127     Re-exprimindo o exemplo acima usando 'compose':
1128
1129          (%i3) polydecomp (compose ([x^2 - a, x^3 - x - 1], x), x);
1130                                  2       3
1131          (%o3)                 [x  - a, x  - x - 1]
1132
1133     Note que apesar de 'compose (polydecomp (<p>, <x>), <x>)' sempre
1134     retornar <p> (n�o expandido), 'polydecomp (compose ([<p_1>, ...,
1135     <p_n>], <x>), <x>)' n�o necess�riamente retorna '[<p_1>, ...,
1136     <p_n>]':
1137
1138          (%i4) polydecomp (compose ([x^2 + 2*x + 3, x^2], x), x);
1139                                    2       2
1140          (%o4)                   [x  + 2, x  + 1]
1141          (%i5) polydecomp (compose ([x^2 + x + 1, x^2 + x + 1], x), x);
1142                                2       2
1143                               x  + 3  x  + 5
1144          (%o5)               [------, ------, 2 x + 1]
1145                                 4       2
1146
1147 -- Fun��o da class: quotient (<p_1>, <p_2>)
1148 -- Fun��o da class: quotient (<p_1>, <p_2>, <x_1>, ..., <x_n>)
1149     Retorna o polin�mio <p_1> dividido pelo polin�mio <p_2>.  Os
1150     argumentos <x_1>, ..., <x_n> s�o interpretados como em 'ratvars'.
1151
1152     'quotient' retorna o primeiro elemento de uma lista de dois
1153     elementos retornada por 'divide'.
1154
1155 -- Fun��o da class: rat (<expr>)
1156 -- Fun��o da class: rat (<expr>, <x_1>, ..., <x_n>)
1157     Converte <expr> para a forma de express�o racional can�nica (CRE)
1158     expandindo e combinando todos os termos sobre um denominador comum
1159     e cancelando para fora o m�ximo divisor comum entre o numerador e o
1160     denominador, tamb�m convertendo n�meros em ponto flutuante para
1161     n�meros racionais dentro da toler�ncia de 'ratepsilon'.  As
1162     vari�veis s�o ordenadas de acordo com <x_1>, ..., <x_n>, se
1163     especificado, como em 'ratvars'.
1164
1165     'rat' geralmente n�o simplifica fun��es outras que n�o sejam adi��o
1166     '+', subtra��o '-', multiplica��o '*', divis�o '/', e exponencia��o
1167     com expoente inteiro, uma vez que 'ratsimp' n�o manuseia esses
1168     casos.  Note que �tomos (n�meros e vari�veis) na forma CRE n�o s�o
1169     os mesmos que eles s�o na forma geral.  Por exemplo, 'rat(x)- x'
1170     retorna 'rat(0)' que tem uma representa��o interna diferente de 0.
1171
1172     Quando 'ratfac' for 'true', 'rat' retorna uma forma parcialmente
1173     factorizada para CRE. Durante opera��es racionais a express�o �
1174     mantida como totalmente factorizada como poss�vel sem uma chamada
1175     ao pacote de factoriza��o ('factor').  Isso pode sempre economizar
1176     espa�o de mem�ria e algum tempo em algumas computa��es.  O
1177     numerador e o denominador s�o ainda tidos como relativamente primos
1178     (e.g.  'rat ((x^2 - 1)^4/(x + 1)^2)' retorna '(x - 1)^4 (x +
1179     1)^2)', mas os factores dentro de cada parte podem n�o ser
1180     relativamente primos.
1181
1182     'ratprint' se 'false' suprime a impress�o de mensagens informando o
1183     utilizador de convers�es de n�meros em ponto flutuante para n�meros
1184     racionais.
1185
1186     'keepfloat' se 'true' evita que n�meros em ponto flutuante sejam
1187     convertidos para n�meros racionais.
1188
1189     Veja tamb�m 'ratexpand' e 'ratsimp'.
1190
1191     Exemplos:
1192
1193          (%i1) ((x - 2*y)^4/(x^2 - 4*y^2)^2 + 1)*(y + a)*(2*y + x) /(4*y^2 + x^2);
1194                                                     4
1195                                            (x - 2 y)
1196                        (y + a) (2 y + x) (------------ + 1)
1197                                             2      2 2
1198                                           (x  - 4 y )
1199          (%o1)         ------------------------------------
1200                                        2    2
1201                                     4 y  + x
1202          (%i2) rat (%, y, a, x);
1203                                      2 a + 2 y
1204          (%o2)/R/                    ---------
1205                                       x + 2 y
1206
1207 -- Vari�vel de op��o da class: ratalgdenom
1208     Valor Padr�o: 'true'
1209
1210     Quando 'ratalgdenom' for 'true', permite racionaliza��o de
1211     denominadores com respeito a radicais tenham efeito.  'ratalgdenom'
1212     tem efeito somente quando express�es racionais can�nicas (CRE)
1213     forem usadas no modo alg�brico.
1214
1215 -- Fun��o da class: ratcoef (<expr>, <x>, <n>)
1216 -- Fun��o da class: ratcoef (<expr>, <x>)
1217     Retorna o coeficiente da express�o '<x>^<n>' dentro da express�o
1218     <expr>.  Se omitido, <n> � assumido ser 1.
1219
1220     O valor de retorno est� livre (excepto possivelmente em um senso
1221     n�o racional) das vari�veis em <x>.  Se nenhum coeficiente desse
1222     tipo existe, 0 � retornado.
1223
1224     'ratcoef' expande e simplifica racionalmente seu primeiro argumento
1225     e dessa forma pode produzir respostas diferentes das de 'coeff' que
1226     � puramente sint�tica.  Dessa forma 'ratcoef ((x + 1)/y + x, x)'
1227     retorna '(y + 1)/y' ao passo que 'coeff' retorna 1.
1228
1229     'ratcoef (<expr>, <x>, 0)', visualiza <expr> como uma adi��o,
1230     retornando uma soma desses termos que n�o possuem <x>.  portanto se
1231     <x> ocorre para quaisquer expoentes negativos, 'ratcoef' pode n�o
1232     ser usado.
1233
1234     Uma vez que <expr> � racionalmente simplificada antes de ser
1235     examinada, coeficientes podem n�o aparecer inteiramente no caminho
1236     que eles foram pensados.
1237
1238     Exemplo:
1239
1240          (%i1) s: a*x + b*x + 5$
1241          (%i2) ratcoef (s, a + b);
1242          (%o2)                           x
1243
1244 -- Fun��o da class: ratdenom (<expr>)
1245     Retorna o denominador de <expr>, ap�s for�ar a convers�o de <expr>
1246     para express�o racional can�nica (CRE). O valor de retorno � a CRE.
1247
1248     <expr> � for�ada para uma CRE por 'rat' se n�o for j� uma CRE. Essa
1249     convers�o pode mudar a forma de <expr> colocando todos os termos
1250     sobre um denominador comum.
1251
1252     'denom' � similar, mas retorna uma express�o comum em lugar de uma
1253     CRE. Tamb�m, 'denom' n�o tenta colocar todos os termos sobre um
1254     denominador comum, e dessa forma algumas express�es que s�o
1255     consideradas raz�es por 'ratdenom' n�o s�o consideradas raz�es por
1256     'denom'.
1257
1258 -- Vari�vel de op��o da class: ratdenomdivide
1259     Valor Padr�o: 'true'
1260
1261     Quando 'ratdenomdivide' for 'true', 'ratexpand' expande uma raz�o
1262     cujo o numerador for uma adi��o dentro de uma soma de raz�es, tendo
1263     todos um denominador comum.  De outra forma, 'ratexpand' colapsa
1264     uma adi��o de raz�es dentro de uma raz�o simples, cujo numerador
1265     seja a adi��o dos numeradores de cada raz�o.
1266
1267     Exemplos:
1268
1269          (%i1) expr: (x^2 + x + 1)/(y^2 + 7);
1270                                      2
1271                                     x  + x + 1
1272          (%o1)                      ----------
1273                                        2
1274                                       y  + 7
1275          (%i2) ratdenomdivide: true$
1276          (%i3) ratexpand (expr);
1277                                 2
1278                                x        x        1
1279          (%o3)               ------ + ------ + ------
1280                               2        2        2
1281                              y  + 7   y  + 7   y  + 7
1282          (%i4) ratdenomdivide: false$
1283          (%i5) ratexpand (expr);
1284                                      2
1285                                     x  + x + 1
1286          (%o5)                      ----------
1287                                        2
1288                                       y  + 7
1289          (%i6) expr2: a^2/(b^2 + 3) + b/(b^2 + 3);
1290                                               2
1291                                     b        a
1292          (%o6)                    ------ + ------
1293                                    2        2
1294                                   b  + 3   b  + 3
1295          (%i7) ratexpand (expr2);
1296                                            2
1297                                       b + a
1298          (%o7)                        ------
1299                                        2
1300                                       b  + 3
1301
1302 -- Fun��o da class: ratdiff (<expr>, <x>)
1303     Realiza a deriva��o da express�o racional <expr> com rela��o a <x>.
1304     <expr> deve ser uma raz�o de polin�mios ou um polin�mio em <x>.  O
1305     argumento <x> pode ser uma vari�vel ou uma subexpress�o de <expr>.
1306
1307     O resultado � equivalente a 'diff', embora talvez em uma forma
1308     diferente.  'ratdiff' pode ser mais r�pida que 'diff', para
1309     express�es racionais.
1310
1311     'ratdiff' retorna uma express�o racional can�nica (CRE) se 'expr'
1312     for uma CRE. De outra forma, 'ratdiff' retorna uma express�o geral.
1313
1314     'ratdiff' considera somente as depend�ncias de <expr> sobre <x>, e
1315     ignora quaisquer depend�ncias estabelecidas por 'depends'.
1316
1317     Exemplo:
1318
1319          (%i1) expr: (4*x^3 + 10*x - 11)/(x^5 + 5);
1320                                     3
1321                                  4 x  + 10 x - 11
1322          (%o1)                   ----------------
1323                                        5
1324                                       x  + 5
1325          (%i2) ratdiff (expr, x);
1326                              7       5       4       2
1327                           8 x  + 40 x  - 55 x  - 60 x  - 50
1328          (%o2)          - ---------------------------------
1329                                    10       5
1330                                   x   + 10 x  + 25
1331          (%i3) expr: f(x)^3 - f(x)^2 + 7;
1332                                   3       2
1333          (%o3)                   f (x) - f (x) + 7
1334          (%i4) ratdiff (expr, f(x));
1335                                     2
1336          (%o4)                   3 f (x) - 2 f(x)
1337          (%i5) expr: (a + b)^3 + (a + b)^2;
1338                                        3          2
1339          (%o5)                  (b + a)  + (b + a)
1340          (%i6) ratdiff (expr, a + b);
1341                              2                    2
1342          (%o6)            3 b  + (6 a + 2) b + 3 a  + 2 a
1343
1344 -- Fun��o da class: ratdisrep (<expr>)
1345     Retorna seu argumento como uma express�o geral.  Se <expr> for uma
1346     express�o geral, � retornada inalterada.
1347
1348     Tipicamente 'ratdisrep' � chamada para converter uma express�o
1349     racional can�nica (CRE) em uma express�o geral.  Isso � algumas
1350     vezes conveniente se deseja-se parar o "cont�gio", ou caso se
1351     esteja usando fun��es racionais em contextos n�o racionais.
1352
1353     Veja tamb�m 'totaldisrep'.
1354
1355 -- Vari�vel de op��o da class: ratepsilon
1356     Valor Padr�o: 2.0e-8
1357
1358     'ratepsilon' � a toler�ncia usada em convers�es de n�meros em ponto
1359     flutuante para n�meros racionais.
1360
1361 -- Fun��o da class: ratexpand (<expr>)
1362 -- Vari�vel de op��o da class: ratexpand
1363     Expande <expr> multiplicando para fora produtos de somas e somas
1364     exponenciadas, combinando fra��es sobre um denominador comum,
1365     cancelando o m�ximo divisor comum entre entre o numerador e o
1366     denominador, ent�o quebrando o numerador (se for uma soma) dentro
1367     de suas respectivas parcelas divididas pelo denominador.
1368
1369     O valor de retorno de 'ratexpand' � uma express�o geral, mesmo se
1370     <expr> for uma express�o racional can�nica (CRE).
1371
1372     O comutador 'ratexpand' se 'true' far� com que express�es CRE sejam
1373     completamente expandidas quando forem convertidas de volta para a
1374     forma geral ou mostradas, enquanto se for 'false' ent�o elas ser�o
1375     colocadas na forma recursiva.  Veja tamb�m 'ratsimp'.
1376
1377     Quando 'ratdenomdivide' for 'true', 'ratexpand' expande uma raz�o
1378     na qual o numerador � uma adi��o dentro de uma adi��o de raz�es,
1379     todas tendo um denominador comum.  De outra forma, 'ratexpand'
1380     contrai uma soma de raz�es em uma raz�o simples, cujo numerador � a
1381     soma dos numeradores de cada raz�o.
1382
1383     Quando 'keepfloat' for 'true', evita que n�meros em ponto flutuante
1384     sejam racionalizados quando express�es que contenham n�meros em
1385     ponto flutuante forem convertidas para a forma de express�o
1386     racional can�nica (CRE).
1387
1388     Exemplos:
1389
1390          (%i1) ratexpand ((2*x - 3*y)^3);
1391                               3         2       2        3
1392          (%o1)          - 27 y  + 54 x y  - 36 x  y + 8 x
1393          (%i2) expr: (x - 1)/(x + 1)^2 + 1/(x - 1);
1394                                   x - 1       1
1395          (%o2)                   -------- + -----
1396                                         2   x - 1
1397                                  (x + 1)
1398          (%i3) expand (expr);
1399                              x              1           1
1400          (%o3)          ------------ - ------------ + -----
1401                          2              2             x - 1
1402                         x  + 2 x + 1   x  + 2 x + 1
1403          (%i4) ratexpand (expr);
1404                                  2
1405                               2 x                 2
1406          (%o4)           --------------- + ---------------
1407                           3    2            3    2
1408                          x  + x  - x - 1   x  + x  - x - 1
1409
1410 -- Vari�vel de op��o da class: ratfac
1411     Valor Padr�o: 'false'
1412
1413     Quando 'ratfac' for 'true', express�es racionais can�nicas (CRE)
1414     s�o manipuladas na forma parcialmente factorizada.
1415
1416     Durante opera��es racionais a express�o � mantida como
1417     completamente factorizada como foi poss�vel sem chamadas a
1418     'factor'.  Isso pode sempre economizar espa�o e pode economizar
1419     tempo em algumas computa��es.  O numerador e o denominador s�o
1420     feitos relativamente primos, por exemplo 'rat ((x^2 - 1)^4/(x +
1421     1)^2)' retorna '(x - 1)^4 (x + 1)^2)', mas o factor dentro de cada
1422     parte pode n�o ser relativamente primo.
1423
1424     No pacote 'ctensor' (Manipula��o de componentes de tensores),
1425     tensores de Ricci, Einstein, Riemann, e de Weyl e a curvatura
1426     escalar s�o factorizados automaticamente quando 'ratfac' for
1427     'true'.  'ratfac' pode somente ser escolhido para casos onde as
1428     componentes tensoriais sejam sabidametne consistidas de poucos
1429     termos.
1430
1431     Os esquemas de 'ratfac' e de 'ratweight' s�o incompat�veis e n�o
1432     podem ambos serem usados ao mesmo tempo.
1433
1434 -- Fun��o da class: ratnumer (<expr>)
1435     Retorna o numerador de <expr>, ap�s for�ar <expr> para uma
1436     express�o racional can�nica (CRE). O valor de retorno � uma CRE.
1437
1438     <expr> � for�ada para uma CRE por 'rat' se isso n�o for j� uma CRE.
1439     Essa convers�o pode alterar a forma de <expr> pela coloca��o de
1440     todos os termos sobre um denominador comum.
1441
1442     'num' � similar, mas retorna uma express�o comum em lugar de uma
1443     CRE. Tamb�m, 'num' n�o tenta colocar todos os termos sobre um
1444     denominador comum, e dessa forma algumas express�es que s�o
1445     consideradas raz�es por 'ratnumer' n�o s�o consideradas raz�es por
1446     'num'.
1447
1448 -- Fun��o da class: ratnump (<expr>)
1449     Retorna 'true' se <expr> for um inteiro literal ou raz�o de
1450     inteiros literais, de outra forma retorna 'false'.
1451
1452 -- Fun��o da class: ratp (<expr>)
1453     Retorna 'true' se <expr> for uma express�o racional can�nica (CRE)
1454     ou CRE extendida, de outra forma retorna 'false'.
1455
1456     CRE s�o criadas por 'rat' e fun��es relacionadas.  CRE extendidas
1457     s�o criadas por 'taylor' e fun��es relacionadas.
1458
1459 -- Vari�vel de op��o da class: ratprint
1460     Valor Padr�o: 'true'
1461
1462     Quando 'ratprint' for 'true', uma mensagem informando ao utilizador
1463     da convers�o de n�meros em ponto flutuante para n�meros racionais �
1464     mostrada.
1465
1466 -- Fun��o da class: ratsimp (<expr>)
1467 -- Fun��o da class: ratsimp (<expr>, <x_1>, ..., <x_n>)
1468     Simplifica a express�o <expr> e todas as suas subexpress�es,
1469     incluindo os argumentos para fun��es n�o racionais.  O resultado �
1470     retornado como o quociente de dois polin�mios na forma recursiva,
1471     isto �, os coeficientes de vari�vel principal s�o polin�mios em
1472     outras vari�veis.  Vari�veis podem incluir fun��es n�o racionais
1473     (e.g., 'sin (x^2 + 1)') e os argumentos para quaisquer tais fun��es
1474     s�o tamb�m simplificados racionalmente.
1475
1476     'ratsimp (<expr>, <x_1>, ..., <x_n>)' habilita simplifica��o
1477     racional com a especiica��o de vari�vel ordenando como em
1478     'ratvars'.
1479
1480     Quando 'ratsimpexpons' for 'true', 'ratsimp' � aplicado para os
1481     expoentes de express�es durante a simplifica��o.
1482
1483     Veja tamb�m 'ratexpand'.  Note que 'ratsimp' � afectado por algum
1484     dos sinalizadores que afectam 'ratexpand'.
1485
1486     Exemplos:
1487
1488          (%i1) sin (x/(x^2 + x)) = exp ((log(x) + 1)^2 - log(x)^2);
1489                                                   2      2
1490                             x         (log(x) + 1)  - log (x)
1491          (%o1)        sin(------) = %e
1492                            2
1493                           x  + x
1494          (%i2) ratsimp (%);
1495                                       1          2
1496          (%o2)                  sin(-----) = %e x
1497                                     x + 1
1498          (%i3) ((x - 1)^(3/2) - (x + 1)*sqrt(x - 1))/sqrt((x - 1)*(x + 1));
1499                                 3/2
1500                          (x - 1)    - sqrt(x - 1) (x + 1)
1501          (%o3)           --------------------------------
1502                               sqrt((x - 1) (x + 1))
1503          (%i4) ratsimp (%);
1504                                     2 sqrt(x - 1)
1505          (%o4)                    - -------------
1506                                           2
1507                                     sqrt(x  - 1)
1508          (%i5) x^(a + 1/a), ratsimpexpons: true;
1509                                         2
1510                                        a  + 1
1511                                        ------
1512                                          a
1513          (%o5)                        x
1514
1515 -- Vari�vel de op��o da class: ratsimpexpons
1516     Valor Padr�o: 'false'
1517
1518     Quando 'ratsimpexpons' for 'true', 'ratsimp' � aplicado para os
1519     expoentes de express�es durante uma simplifica��o.
1520
1521 -- Fun��o da class: ratsubst (<a>, <b>, <c>)
1522     Substitue <a> por <b> em <c> e retorna a express�o resultante.  <b>
1523     pode tamb�m ser uma adi��o, produto, expoente, etc.
1524
1525     'ratsubst' sabe alguma coisa do significado de express�es uma vez
1526     que 'subst' n�o � uma substitui��o puramente sint�tica.  Dessa
1527     forma 'subst (a, x + y, x + y + z)' retorna 'x + y + z' ao passo
1528     que 'ratsubst' retorna 'z + a'.
1529
1530     Quando 'radsubstflag' for 'true', 'ratsubst' faz substitui��o de
1531     radicais em express�es que explicitamente n�o possuem esses
1532     radicais.
1533
1534     Exemplos:
1535
1536          (%i1) ratsubst (a, x*y^2, x^4*y^3 + x^4*y^8);
1537                                        3      4
1538          (%o1)                      a x  y + a
1539          (%i2) cos(x)^4 + cos(x)^3 + cos(x)^2 + cos(x) + 1;
1540                         4         3         2
1541          (%o2)       cos (x) + cos (x) + cos (x) + cos(x) + 1
1542          (%i3) ratsubst (1 - sin(x)^2, cos(x)^2, %);
1543                      4           2                     2
1544          (%o3)    sin (x) - 3 sin (x) + cos(x) (2 - sin (x)) + 3
1545          (%i4) ratsubst (1 - cos(x)^2, sin(x)^2, sin(x)^4);
1546                                  4           2
1547          (%o4)                cos (x) - 2 cos (x) + 1
1548          (%i5) radsubstflag: false$
1549          (%i6) ratsubst (u, sqrt(x), x);
1550          (%o6)                           x
1551          (%i7) radsubstflag: true$
1552          (%i8) ratsubst (u, sqrt(x), x);
1553                                          2
1554          (%o8)                          u
1555
1556 -- Fun��o da class: ratvars (<x_1>, ..., <x_n>)
1557 -- Fun��o da class: ratvars ()
1558 -- Vari�vel de sistema da class: ratvars
1559     Declara vari�veis principais <x_1>, ..., <x_n> para express�es
1560     racionais.  <x_n>, se presente em uma express�o racional, �
1561     considerada a vari�vel principal.  De outra forma, <x_[n-1]> �
1562     considerada a vari�vel principal se presente, e assim por diante
1563     at� as vari�veis precedentes para <x_1>, que � considerada a
1564     vari�vel principal somente se nenhuma das vari�veis que a sucedem
1565     estiver presente.
1566
1567     Se uma vari�vel em uma express�o racional n�o est� presente na
1568     lista 'ratvars', a ela � dada uma prioridade menor que <x_1>.
1569
1570     Os argumentos para 'ratvars' podem ser ou vari�veis ou fun��es n�o
1571     racionais tais como 'sin(x)'.
1572
1573     A vari�vel 'ratvars' � uma lista de argumentos da fun��o 'ratvars'
1574     quando ela foi chamada mais recentemente.  Cada chamada para a
1575     fun��o 'ratvars' sobre-grava a lista apagando seu conte�do
1576     anterior.  'ratvars ()' limpa a lista.
1577
1578 -- Fun��o da class: ratweight (<x_1>, <w_1>, ..., <x_n>, <w_n>)
1579 -- Fun��o da class: ratweight ()
1580     Atribui um peso <w_i> para a vari�vel <x_i>.  Isso faz com que um
1581     termo seja substitu�do por 0 se seu peso exceder o valor da
1582     vari�vel 'ratwtlvl' (o padr�o retorna sem trunca��o).  O peso de um
1583     termo � a soma dos produtos dos pesos de uma vari�vel no termo
1584     vezes seu expoente.  Por exemplo, o peso de '3 x_1^2 x_2' � '2 w_1
1585     + w_2'.  A trunca��o de acordo com 'ratwtlvl' � realizada somente
1586     quando multiplicando ou exponencializando express�es racionais
1587     can�nicas (CRE).
1588
1589     'ratweight ()' retorna a lista cumulativa de atribui��es de pesos.
1590
1591     Nota: Os esquemas de 'ratfac' e 'ratweight' s�o incompat�veis e n�o
1592     podem ambo serem usados ao mesmo tempo.
1593
1594     Exemplos:
1595
1596          (%i1) ratweight (a, 1, b, 1);
1597          (%o1)                     [a, 1, b, 1]
1598          (%i2) expr1: rat(a + b + 1)$
1599          (%i3) expr1^2;
1600                            2                  2
1601          (%o3)/R/         b  + (2 a + 2) b + a  + 2 a + 1
1602          (%i4) ratwtlvl: 1$
1603          (%i5) expr1^2;
1604          (%o5)/R/                  2 b + 2 a + 1
1605
1606 -- Vari�vel de sistema da class: ratweights
1607     Valor Padr�o: '[]'
1608
1609     'ratweights' � a lista de pesos atribu�dos por 'ratweight'.  A
1610     lista � cumulativa: cada chamada a 'ratweight' coloca �tens
1611     adicionais na lista.
1612
1613     'kill (ratweights)' e 'save (ratweights)' ambos trabalham como
1614     esperado.
1615
1616 -- Vari�vel de op��o da class: ratwtlvl
1617     Valor Padr�o: 'false'
1618
1619     'ratwtlvl' � usada em combina��o com a fun��o 'ratweight' para
1620     controlar a trunca��o de express�o racionais can�nicas (CRE). Para
1621     o valor padr�o 'false', nenhuma trunca��o ocorre.
1622
1623 -- Fun��o da class: remainder (<p_1>, <p_2>)
1624 -- Fun��o da class: remainder (<p_1>, <p_2>, <x_1>, ..., <x_n>)
1625     Retorna o resto do polin�mio <p_1> dividido pelo polin�mio <p_2>.
1626     Os argumentos <x_1>, ..., <x_n> s�o interpretados como em
1627     'ratvars'.
1628
1629     'remainder' retorna o segundo elemento de uma lista de dois
1630     elementos retornada por 'divide'.
1631
1632 -- Fun��o da class: resultant (<p_1>, <p_2>, <x>)
1633 -- Vari�vel da class: resultant
1634     Calcula o resultante de dois polin�mios <p_1> e <p_2>, eliminando a
1635     vari�vel <x>.  O resultante � um determinante dos coeficientes de
1636     <x> em <p_1> e <p_2>, que � igual a zero se e somente se <p_1> e
1637     <p_2> tiverem um factor em comum n�o constante.
1638
1639     Se <p_1> ou <p_2> puderem ser factorizados, pode ser desej�vel
1640     chamar 'factor' antes de chamar 'resultant'.
1641
1642     A vari�vel 'resultant' controla que algoritmo ser� usado para
1643     calcular o resultante.  'subres' para o prs subresultante, 'mod'
1644     para o algoritmo resultante modular, e 'red' para prs reduzido.
1645     Para muitos problemas 'subres' pode ser melhor.  Para alguns
1646     problemas com valores grandes de grau de uma �nica vari�vel ou de
1647     duas vari�veis 'mod' pode ser melhor.
1648
1649     A fun��o 'bezout' aceita os mesmos argumentos que 'resultant' e
1650     retorna uma matriz.  O determinante do valor de retorno � o
1651     resultante desejado.
1652
1653 -- Vari�vel de op��o da class: savefactors
1654     Valor Padr�o: 'false'
1655
1656     Quando 'savefactors' for 'true', faz com que os factores de uma
1657     express�o que � um produto de factores sejam gravados por certas
1658     fun��es com o objectivo de aumentar a velocidade em posteriores
1659     factoriza��es de express�es contendo algum desses mesmos factores.
1660
1661 -- Fun��o da class: sqfr (<expr>)
1662     � similar a 'factor' excepto que os factores do polin�mio s�o
1663     "livres de ra�zes".  Isto �, eles possuem factores somente de grau
1664     um.  Esse algoritmo, que � tamb�m usado no primeiro est�gio de
1665     'factor', utiliza o facto que um polin�mio tem em comum com sua
1666     n'�sima derivada todos os seus factores de grau maior que n.  Dessa
1667     forma obtendo o maior divisor comum com o polin�mio das derivadas
1668     com rela��o a cada vari�vel no polin�mio, todos os factores de grau
1669     maior que 1 podem ser achados.
1670
1671     Exemplo:
1672
1673          (%i1) sqfr (4*x^4 + 4*x^3 - 3*x^2 - 4*x - 1);
1674                                          2   2
1675          (%o1)                  (2 x + 1)  (x  - 1)
1676
1677 -- Fun��o da class: tellrat (<p_1>, ..., <p_n>)
1678 -- Fun��o da class: tellrat ()
1679     Adiciona ao anel dos inteiros alg�bricos conhecidos do Maxima os
1680     elementos que s�o as solu��es dos polin�mios <p_1>, ..., <p_n>.
1681     Cada argumento <p_i> � um polin�mio concoeficientes inteiros.
1682
1683     'tellrat (<x>)' efectivamente significa substituir 0 por <x> em
1684     fun��es racionais.
1685
1686     'tellrat ()' retorna uma lista das substitui��es correntes.
1687
1688     'algebraic' deve ser escolhida para 'true' com o objectivo de que a
1689     simplifica��o de inteiros alg�bricos tenha efeito.
1690
1691     Maxima inicialmente sabe sobre a unidade imagin�ria '%i' e todas as
1692     ra�zes de inteiros.
1693
1694     Existe um comando 'untellrat' que recebe n�cleos e remove
1695     propriedades 'tellrat'.
1696
1697     Quando fazemos 'tellrat' em um polin�mio de v�rias vari�veis, e.g.,
1698     'tellrat (x^2 - y^2)', pode existir uma ambiguidade como para ou
1699     substituir '<y>^2' por '<x>^2' ou vice-versa.  Maxima selecciona
1700     uma ordena��o particular, mas se o utilizador desejar especificar
1701     qual e.g.  'tellrat (y^2 = x^2)' forne�e uma sintaxe que diga para
1702     substituir '<y>^2' por '<x>^2'.
1703
1704     Exemplos:
1705
1706          (%i1) 10*(%i + 1)/(%i + 3^(1/3));
1707                                     10 (%i + 1)
1708          (%o1)                      -----------
1709                                            1/3
1710                                      %i + 3
1711          (%i2) ev (ratdisrep (rat(%)), algebraic);
1712                       2/3      1/3              2/3      1/3
1713          (%o2)    (4 3    - 2 3    - 4) %i + 2 3    + 4 3    - 2
1714          (%i3) tellrat (1 + a + a^2);
1715                                      2
1716          (%o3)                     [a  + a + 1]
1717          (%i4) 1/(a*sqrt(2) - 1) + a/(sqrt(3) + sqrt(2));
1718                                1                 a
1719          (%o4)           ------------- + -----------------
1720                          sqrt(2) a - 1   sqrt(3) + sqrt(2)
1721          (%i5) ev (ratdisrep (rat(%)), algebraic);
1722                   (7 sqrt(3) - 10 sqrt(2) + 2) a - 2 sqrt(2) - 1
1723          (%o5)    ----------------------------------------------
1724                                         7
1725          (%i6) tellrat (y^2 = x^2);
1726                                  2    2   2
1727          (%o6)                 [y  - x , a  + a + 1]
1728
1729 -- Fun��o da class: totaldisrep (<expr>)
1730     Converte toda subexpress�o de <expr> da forma de express�o
1731     racionais can�nicas (CRE) para a forma geral e retorna o resultado.
1732     Se <expr> � em s� mesma na forma CRE ent�o 'totaldisrep' � identica
1733     a 'ratdisrep'.
1734
1735     'totaldisrep' pode ser usada para fazer um 'ratdisrep' em
1736     express�es tais como equa��es, listas, matrizes, etc., que tiverem
1737     algumas subexpress�es na forma CRE.
1738
1739 -- Fun��o da class: untellrat (<x_1>, ..., <x_n>)
1740     Remove propriedades 'tellrat' de <x_1>, ..., <x_n>.
1741
1742
1743File: maxima.info,  Node: Constantes,  Next: Logaritmos,  Prev: Polin�mios,  Up: Top
1744
174513, Constantes
1746**************
1747
1748* Menu:
1749
1750* Defini��es para Constantes::
1751
1752
1753File: maxima.info,  Node: Defini��es para Constantes,  Prev: Constantes,  Up: Constantes
1754
175513.1, Defini��es para Constantes
1756================================
1757
1758 -- Constante da class: %e
1759     '%e' representa a base do logaritmo natural, tamb�m conhecido como
1760     constante de Euler.  O valor num�rico de '%e' � um n�mero em ponto
1761     flutuante de precis�o dupla 2.718281828459045d0.
1762
1763 -- Constante da class: %i
1764     '%i' representa a unidade imagin�ria, sqrt(- 1).
1765
1766 -- Constante da class: false
1767     'false' representa a constante Booleana falso.  Maxima implementa
1768     'false' atrav�s do valor 'NIL' no Lisp.
1769
1770 -- Constante da class: inf
1771     'inf' representa o infinito positivo real.
1772
1773 -- Constante da class: infinity
1774     'infinity' representa o infinito complexo.
1775
1776 -- Constante da class: minf
1777     'minf' representa o menos infinito (i.e., negativo) real.
1778
1779 -- Constante da class: %phi
1780
1781     '%phi' representa o ent�o chamado n�mero �ureo, (1 + sqrt(5))/2.  O
1782     valor num�rico de '%phi' � o n�mero em ponto flutuante de de dupla
1783     precis�o 1.618033988749895d0.
1784
1785     'fibtophi' expressa n�meros de Fibonacci 'fib(n)' em termos de
1786     '%phi'.
1787
1788     Por padr�o, Maxima n�o conhece as propriedade alg�bricas de '%phi'.
1789     Ap�s avaliar 'tellrat(%phi^2 - %phi - 1)' e 'algebraic: true',
1790     'ratsimp' pode simplificar algumas express�oes contendo '%phi'.
1791
1792     Exemplos:
1793
1794     'fibtophi' expresses Fibonacci numbers 'fib(n)' in terms of '%phi'.
1795
1796          (%i1) fibtophi (fib (n));
1797                                     n             n
1798                                 %phi  - (1 - %phi)
1799          (%o1)                  -------------------
1800                                     2 %phi - 1
1801          (%i2) fib (n-1) + fib (n) - fib (n+1);
1802          (%o2)          - fib(n + 1) + fib(n) + fib(n - 1)
1803          (%i3) fibtophi (%);
1804                      n + 1             n + 1       n             n
1805                  %phi      - (1 - %phi)        %phi  - (1 - %phi)
1806          (%o3) - --------------------------- + -------------------
1807                          2 %phi - 1                2 %phi - 1
1808                                                    n - 1             n - 1
1809                                                %phi      - (1 - %phi)
1810                                              + ---------------------------
1811                                                        2 %phi - 1
1812          (%i4) ratsimp (%);
1813          (%o4)                           0
1814
1815     Por padr�o, Maxima n�o conhece as propriedade alg�bricas de '%phi'.
1816     Ap�s avaliar 'tellrat(%phi^2 - %phi - 1)' e 'algebraic: true',
1817     'ratsimp' pode simplificar algumas express�oes contendo '%phi'.
1818
1819          (%i1) e : expand ((%phi^2 - %phi - 1) * (A + 1));
1820                           2                      2
1821          (%o1)        %phi  A - %phi A - A + %phi  - %phi - 1
1822          (%i2) ratsimp (e);
1823                            2                     2
1824          (%o2)        (%phi  - %phi - 1) A + %phi  - %phi - 1
1825          (%i3) tellrat (%phi^2 - %phi - 1);
1826                                      2
1827          (%o3)                  [%phi  - %phi - 1]
1828          (%i4) algebraic : true;
1829          (%o4)                         true
1830          (%i5) ratsimp (e);
1831          (%o5)                           0
1832
1833 -- Constante da class: %pi
1834     '%pi' representa a raz�o do per�metro de um c�rculo para seu
1835     di�metro.  O valor num�rico de '%pi' � o n;umero em ponto flutuante
1836     de dupla precis�o 3.141592653589793d0.
1837
1838 -- Constante da class: true
1839     'true' representa a constante Booleana verdadeiro.  Maxima
1840     implementa 'true' atrav�s do valor 'T' no Lisp.
1841
1842
1843File: maxima.info,  Node: Logaritmos,  Next: Trigonometria,  Prev: Constantes,  Up: Top
1844
184514, Logaritmos
1846**************
1847
1848* Menu:
1849
1850* Defini��es para Logaritmos::
1851
1852
1853File: maxima.info,  Node: Defini��es para Logaritmos,  Prev: Logaritmos,  Up: Logaritmos
1854
185514.1, Defini��es para Logaritmos
1856================================
1857
1858 -- Vari�vel de op��o da class: %e_to_numlog
1859     Valor por omiss�o: 'false'
1860
1861     Quando 'true', sendo 'r' algum n�mero racional, e 'x' alguma
1862     express�o, '%e^(r*log(x))' ser� simplificado em 'x^r' .  Note-se
1863     que o comando 'radcan' tamb�m faz essa transforma��o, assim como
1864     algumas transforma��es mais complicadas.  O comando 'logcontract'
1865     _contrai_ express�es contendo 'log'.
1866
1867 -- Fun��o da class: li [<s>] (<z>)
1868     Representa a fun��o polilogaritmo de ordem <s> e argumento <z>,
1869     definida por meio da s�rie infinita
1870
1871                                           inf
1872                                           ====   k
1873                                           \     z
1874                                  Li (z) =  >    --
1875                                    s      /      s
1876                                           ====  k
1877                                           k = 1
1878
1879     'li [1]' � '- log (1 - z)'.  'li [2]' e 'li [3]' s�o as fun��es
1880     dilogaritmo e trilogaritmo, respectivamente.
1881
1882     Quando a ordem for 1, o polilogaritmo simplifica para '- log (1 -
1883     z)', o qual por sua vez simplifica para um valor num�rico se <z>
1884     for um n�mero em ponto flutuante real ou complexo ou o sinalizador
1885     de avalia��o 'numer' estiver presente.
1886
1887     Quando a ordem for 2 ou 3, o polilogaritmo simplifica para um valor
1888     num�rico se <z> for um n�mero real em ponto flutuante ou o
1889     sinalizador de avalia��o 'numer' estiver presente.
1890
1891     Exemplos:
1892
1893          (%i1) assume (x > 0);
1894          (%o1)                        [x > 0]
1895          (%i2) integrate ((log (1 - t)) / t, t, 0, x);
1896          (%o2)                       - li (x)
1897                                          2
1898          (%i3) li [2] (7);
1899          (%o3)                        li (7)
1900                                         2
1901          (%i4) li [2] (7), numer;
1902          (%o4)        1.24827317833392 - 6.113257021832577 %i
1903          (%i5) li [3] (7);
1904          (%o5)                        li (7)
1905                                         3
1906          (%i6) li [2] (7), numer;
1907          (%o6)        1.24827317833392 - 6.113257021832577 %i
1908          (%i7) L : makelist (i / 4.0, i, 0, 8);
1909          (%o7)   [0.0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0]
1910          (%i8) map (lambda ([x], li [2] (x)), L);
1911          (%o8) [0, .2676526384986274, .5822405249432515,
1912          .9784693966661848, 1.64493407, 2.190177004178597
1913           - .7010261407036192 %i, 2.374395264042415
1914           - 1.273806203464065 %i, 2.448686757245154
1915           - 1.758084846201883 %i, 2.467401098097648
1916           - 2.177586087815347 %i]
1917          (%i9) map (lambda ([x], li [3] (x)), L);
1918          (%o9) [0, .2584613953442624, 0.537213192678042,
1919          .8444258046482203, 1.2020569, 1.642866878950322
1920           - .07821473130035025 %i, 2.060877505514697
1921           - .2582419849982037 %i, 2.433418896388322
1922           - .4919260182322965 %i, 2.762071904015935
1923           - .7546938285978846 %i]
1924
1925 -- Fun��o da class: log (<x>)
1926     Representa o logaritmo natural (base e) de <x>.
1927
1928     Maxima n�o possui uma fun��o interna para logaritmo de base 10 ou
1929     de outras bases.  'log10(x) := log(x) / log(10)' � uma defini��o
1930     �til.
1931
1932     A simplifica��o e avalia��o de logaritmos s�o governadas por v�rios
1933     sinalizadores globais:
1934
1935     'logexpand' - faz com que 'log(a^b)' se transfome em 'b*log(a)'.
1936     Se 'logexpand' tiver o valor 'all', 'log(a*b)' ir� tamb�m
1937     simplificar para 'log(a)+log(b)'.  Se 'logexpand' for igual a
1938     'super', ent�o 'log(a/b)' ir� tamb�m simplificar para
1939     'log(a)-log(b)' para n�meros racionais 'a/b', 'a#1' ('log(1/b)',
1940     para 'b' inteiro, sempre simplifica).  Se 'logexpand' for igaul a
1941     'false', todas essas simplifica��es ir�o ser desabilitadas.
1942
1943     'logsimp' - se tiver valor 'false', n�o ser� feita nenhuma
1944     simplifica��o de '%e' para um expoente contendo 'log''s.
1945
1946     'lognumer' - se tiver valor 'true', os argumentos negativos em
1947     ponto flutuante para 'log' ir� sempre ser convertidos para seu
1948     valor absoluto antes que 'log' seja calculado.  Se 'numer' for
1949     tamb�m 'true', ent�o argumentos negativos inteiros para 'log' ir�o
1950     tamb�m ser convertidos para os seus valores absolutos.
1951
1952     'lognegint' - se tiver valor 'true', implementa a regra 'log(-n)'
1953     -> 'log(n)+%i*%pi' para 'n' um inteiro positivo.
1954
1955     '%e_to_numlog' - quando for igual a 'true', '%e^(r*log(x))', sendo
1956     'r' algum n�mero racional, e 'x' alguma express�o, ser�
1957     simplificado para 'x^r'.  Note-se que o comando 'radcan' tamb�m faz
1958     essa transforma��o, e outras transforma��es mais complicadas desse
1959     g�nero.
1960
1961     O comando 'logcontract' "contrai" express�es contendo 'log'.
1962
1963 -- Vari�vel de op��o da class: logabs
1964     Valor por omiss�o: 'false'
1965
1966     No c�lculo de primitivas em que sejam gerados logaritmos, por
1967     exemplo, 'integrate(1/x,x)', a resposta ser� dada em termos de
1968     'log(abs(...))' se 'logabs' for 'true', mas em termos de 'log(...)'
1969     se 'logabs' for 'false'.  Para integrais definidos, usa-se
1970     'logabs:true', porque nesse caso muitas vezes � necess�rio calcular
1971     a primitiva nos extremos.
1972
1973 -- Vari�vel de op��o da class: logarc
1974 -- Fun��o da class: logarc (<expr>)
1975
1976     Quando a vari�vel global 'logarc' for igual a 'true', as fun��es
1977     trigononom�tricas inversas, circulares e hiperb�licas, ser�o
1978     substitu�das por suas fun��es logar�tmicas equivalentes.  O valor
1979     padr�o de 'logarc' � 'false'.
1980
1981     A fun��o 'logarc(<expr>)' realiza essa substitui��o para uma
1982     express�o <expr> sem modificar o valor da vari�vel global 'logarc'.
1983
1984 -- Vari�vel de op��o da class: logconcoeffp
1985     Valor por omiss�o: 'false'
1986
1987     Controla quais coeficientes s�o contra�dos quando se usa
1988     'logcontract'.  Poder� ser igual ao nome de uma fun��o de um
1989     argumento.  Por exemplo, se quiser gerar ra�zes quadradas, pode
1990     fazer 'logconcoeffp:'logconfun$ logconfun(m):=featurep(m,integer)
1991     or ratnump(m)$'.  E assim, 'logcontract(1/2*log(x));' produzir�
1992     'log(sqrt(x))'.
1993
1994 -- Fun��o da class: logcontract (<expr>)
1995     Examina recursivamente a express�o <expr>, transformando
1996     subexpress�es da forma 'a1*log(b1) + a2*log(b2) + c' em
1997     'log(ratsimp(b1^a1 * b2^a2)) + c'
1998
1999          (%i1) 2*(a*log(x) + 2*a*log(y))$
2000          (%i2) logcontract(%);
2001                                           2  4
2002          (%o2)                     a log(x  y )
2003
2004
2005     Se fizer 'declare(n,integer);' ent�o 'logcontract(2*a*n*log(x));'
2006     produzir� 'a*log(x^(2*n))'.  Os coeficientes que _contraem_ dessa
2007     maneira s�o os que, tal como 2 e 'n' neste exemplo, satisfazem
2008     'featurep(coeficiente,integer)'.  O utilizador pode controlar quais
2009     coeficientes s�o contra�dos, dando � vari�vel 'logconcoeffp' o nome
2010     de uma fun��o de um argumento.  Por exemplo, se quiser gerar ra�zes
2011     quadradas, pode fazer 'logconcoeffp:'logconfun$
2012     logconfun(m):=featurep(m,integer) or ratnump(m)$'.  E assim,
2013     'logcontract(1/2*log(x));' produzir� 'log(sqrt(x))'.
2014
2015 -- Vari�vel de op��o da class: logexpand
2016     Valor por omiss�o: 'true'
2017
2018     Faz com que 'log(a^b)' se transfome em 'b*log(a)'.  Se 'logexpand'
2019     tiver o valor 'all', 'log(a*b)' ir� tamb�m simplificar para
2020     'log(a)+log(b)'.  Se 'logexpand' for igual a 'super', ent�o
2021     'log(a/b)' ir� tamb�m simplificar para 'log(a)-log(b)' para n�meros
2022     racionais 'a/b', 'a#1' ('log(1/b)', para 'b' inteiro, sempre
2023     simplifica).  Se 'logexpand' for igaul a 'false', todas essas
2024     simplifica��es ir�o ser desabilitadas.
2025
2026 -- Vari�vel de op��o da class: lognegint
2027     Valor por omiss�o: 'false'
2028
2029     Se for igual a 'true', implementa a regra 'log(-n)' ->
2030     'log(n)+%i*%pi' para 'n' um inteiro positivo.
2031
2032 -- Vari�vel de op��o da class: lognumer
2033     Valor por omiss�o: 'false'
2034
2035     Se tiver valor 'true', os argumentos negativos em ponto flutuante
2036     para 'log' ir� sempre ser convertidos para seu valor absoluto antes
2037     que 'log' seja calculado.  Se 'numer' for tamb�m 'true', ent�o
2038     argumentos negativos inteiros para 'log' ir�o tamb�m ser
2039     convertidos para os seus valores absolutos.
2040
2041 -- Vari�vel de op��o da class: logsimp
2042     Valor por omiss�o: 'true'
2043
2044     Se tiver valor 'false', n�o ser� feita nenhuma simplifica��o de
2045     '%e' para um expoente contendo 'log''s.
2046
2047 -- Fun��o da class: plog (<x>)
2048     Representa o ramo principal dos logaritmos naturais no plano
2049     complexo, com '-%pi' < 'carg(<x>)' <= '+%pi'.
2050
2051
2052File: maxima.info,  Node: Trigonometria,  Next: Fun��es Especiais,  Prev: Logaritmos,  Up: Top
2053
205415, Trigonometria
2055*****************
2056
2057* Menu:
2058
2059* Introdu��o ao Pacote Trigonom�trico::
2060* Defini��es para Trigonometria::
2061
2062
2063File: maxima.info,  Node: Introdu��o ao Pacote Trigonom�trico,  Next: Defini��es para Trigonometria,  Prev: Trigonometria,  Up: Trigonometria
2064
206515.1, Introdu��o ao Pacote Trigonom�trico
2066=========================================
2067
2068Maxima tem muitas fun��es trigonom�tricas definidas.  N�o todas as
2069identidades trigonometricas est�o programadas, mas isso � poss�vel para
2070o utilizador adicionar muitas delas usando a compatibilidade de
2071correspond�ncia de modelos do sistema.  As fun��es trigonom�tricas
2072definidas no Maxima s�o: 'acos', 'acosh', 'acot', 'acoth', 'acsc',
2073'acsch', 'asec', 'asech', 'asin', 'asinh', 'atan', 'atanh', 'cos',
2074'cosh', 'cot', 'coth', 'csc', 'csch', 'sec', 'sech', 'sin', 'sinh',
2075'tan', e 'tanh'.  Existe uma colec��o de comandos especialmente para
2076manusear fun��es trigonom�tricas, veja 'trigexpand', 'trigreduce', e o
2077comutador 'trigsign'.  Dois pacotes compartilhados extendem as regras de
2078simplifica��o constru�das no Maxima, 'ntrig' e 'atrig1'.  Fa�a
2079'describe(<comando>)' para detalhes.
2080
2081
2082File: maxima.info,  Node: Defini��es para Trigonometria,  Prev: Introdu��o ao Pacote Trigonom�trico,  Up: Trigonometria
2083
208415.2, Defini��es para Trigonometria
2085===================================
2086
2087 -- Fun��o da class: acos (<x>)
2088     - Arco Cosseno.
2089
2090 -- Fun��o da class: acosh (<x>)
2091     - Arco Cosseno Hiperb�lico.
2092
2093 -- Fun��o da class: acot (<x>)
2094     - Arco Cotangente.
2095
2096 -- Fun��o da class: acoth (<x>)
2097     - Arco Cotangente Hiperb�lico.
2098
2099 -- Fun��o da class: acsc (<x>)
2100     - Arco Cossecante.
2101
2102 -- Fun��o da class: acsch (<x>)
2103     - Arco Cossecante Hiperb�lico.
2104
2105 -- Fun��o da class: asec (<x>)
2106     - Arco Secante.
2107
2108 -- Fun��o da class: asech (<x>)
2109     - Arco Secante Hiperb�lico.
2110
2111 -- Fun��o da class: asin (<x>)
2112     - Arco Seno.
2113
2114 -- Fun��o da class: asinh (<x>)
2115     - Arco Seno Hiperb�lico.
2116
2117 -- Fun��o da class: atan (<x>)
2118     - Arco Tangente.
2119
2120 -- Fun��o da class: atan2 (<y>, <x>)
2121     - retorna o valor de 'atan(<y>/<x>)' no intervalo de '-%pi' a
2122     '%pi'.
2123
2124 -- Fun��o da class: atanh (<x>)
2125     - Arco tangente Hiperb�lico.
2126
2127 -- Pacote da class: atrig1
2128     O pacote 'atrig1' cont�m muitas regras adicionais de simplifica��o
2129     para fun��es trigonom�tricas inversas.  Junto com regras j�
2130     conhecidas para Maxima, os seguintes �ngulos est�o completamente
2131     implementados: '0', '%pi/6', '%pi/4', '%pi/3', e '%pi/2'.  Os
2132     �ngulos correspondentes nos outros tr�s quadrantes est�o tamb�m
2133     dispon�veis.  Fa�a 'load(atrig1);' para us�-lo.
2134
2135 -- Fun��o da class: cos (<x>)
2136     - Cosseno.
2137
2138 -- Fun��o da class: cosh (<x>)
2139     - Cosseno hiperb�lico.
2140
2141 -- Fun��o da class: cot (<x>)
2142     - Cotangente.
2143
2144 -- Fun��o da class: coth (<x>)
2145     - Cotangente Hyperb�lica.
2146
2147 -- Fun��o da class: csc (<x>)
2148     - Cossecante.
2149
2150 -- Fun��o da class: csch (<x>)
2151     - Cossecante Hyperb�lica.
2152
2153 -- Vari�vel de op��o da class: halfangles
2154     Default value: 'false'
2155
2156     Quando 'halfangles' for 'true', meios-�ngulos s�o simplificados
2157     imediatamente.
2158
2159 -- Pacote da class: ntrig
2160     O pacote 'ntrig' cont�m um conjunto de regras de simplifica��o que
2161     s�o usadas para simplificar fun��o trigonom�trica cujos argumentos
2162     est�o na forma '<f>(<n> %pi/10)' onde <f> � qualquer das fun��es
2163     'sin', 'cos', 'tan', 'csc', 'sec' e 'cot'.
2164
2165 -- Fun��o da class: sec (<x>)
2166     - Secante.
2167
2168 -- Fun��o da class: sech (<x>)
2169     - Secante Hyperb�lica.
2170
2171 -- Fun��o da class: sin (<x>)
2172     - Seno.
2173
2174 -- Fun��o da class: sinh (<x>)
2175     - Seno Hyperb�lico.
2176
2177 -- Fun��o da class: tan (<x>)
2178     - Tangente.
2179
2180 -- Fun��o da class: tanh (<x>)
2181     - Tangente Hyperb�lica.
2182
2183 -- Fun��o da class: trigexpand (<expr>)
2184     Expande fun��es trigonometricas e hyperb�licas de adi��es de
2185     �ngulos e de �ngulos multiplos que ocorram em <expr>.  Para
2186     melhores resultados, <expr> deve ser expandida.  Para intensificar
2187     o controle do utilizador na simplifica��o, essa fun��o expande
2188     somente um n�vel de cada vez, expandindo adi��es de �ngulos ou
2189     �ngulos multiplos.  Para obter expans�o completa dentro de senos e
2190     co-senos imediatamente, escolha o comutador 'trigexpand: true'.
2191
2192     'trigexpand' � governada pelos seguintes sinalizadores globais:
2193
2194     'trigexpand'
2195          Se 'true' causa expans�o de todas as express�es contendo senos
2196          e co-senos ocorrendo subsequ�ntemente.
2197     'halfangles'
2198          Se 'true' faz com que meios-�ngulos sejam simplificados
2199          imediatamente.
2200     'trigexpandplus'
2201          Controla a regra "soma" para 'trigexpand', expans�o de adi��es
2202          (e.g.  'sin(x + y)') ter�o lugar somente se 'trigexpandplus'
2203          for 'true'.
2204     'trigexpandtimes'
2205          Controla a regra "produto" para 'trigexpand', expans�o de
2206          produtos (e.g.  'sin(2 x)') ter�o lugar somente se
2207          'trigexpandtimes' for 'true'.
2208
2209     Exemplos:
2210
2211          (%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
2212                                   2           2
2213          (%o1)               - sin (x) + 3 cos (x) + x
2214          (%i2) trigexpand(sin(10*x+y));
2215          (%o2)          cos(10 x) sin(y) + sin(10 x) cos(y)
2216
2217
2218 -- Vari�vel de op��o da class: trigexpandplus
2219     Valor por omiss�o: 'true'
2220
2221     'trigexpandplus' controla a regra da "soma" para 'trigexpand'.
2222     Dessa forma, quando o comando 'trigexpand' for usado ou o comutador
2223     'trigexpand' escolhido para 'true', expans�o de adi��es (e.g.
2224     'sin(x+y))' ter�o lugar somente se 'trigexpandplus' for 'true'.
2225
2226 -- Vari�vel de op��o da class: trigexpandtimes
2227     Valor por omiss�o: 'true'
2228
2229     'trigexpandtimes' controla a regra "produto" para 'trigexpand'.
2230     Dessa forma, quando o comando 'trigexpand' for usado ou o comutador
2231     'trigexpand' escolhido para 'true', expans�o de produtos (e.g.
2232     'sin(2*x)') ter�o lugar somente se 'trigexpandtimes' for 'true'.
2233
2234 -- Vari�vel de op��o da class: triginverses
2235     Valor por omiss�o: 'all'
2236
2237     'triginverses' controla a simplifica��o de composi��es de fun��es
2238     trigonom�tricas e hiperb�licas com suas fun��es inversas.
2239
2240     Se 'all', ambas e.g.  'atan(tan(<x>))' e 'tan(atan(<x>))'
2241     simplificar�o para <x>.
2242
2243     Se 'true', a simplifica��o de '<arcfun>(<fun>(<x>))' �
2244     desabilitada.
2245
2246     Se 'false', ambas as simplifica��es '<arcfun>(<fun>(<x>))' e
2247     '<fun>(<arcfun>(<x>))' s�o desabilitadas.
2248
2249 -- Fun��o da class: trigreduce (<expr>, <x>)
2250 -- Fun��o da class: trigreduce (<expr>)
2251     Combina produtos e expoentes de senos e cossenso trigonom�tricos e
2252     hiperb�licos de <x> dentro daqueles de m�ltiplos de <x>.  Tamb�m
2253     tenta eliminar essas fun��es quando elas ocorrerem em
2254     denominadores.  Se <x> for omitido ent�o todas as vari�veis em
2255     <expr> s�o usadas.
2256
2257     Veja tamb�m 'poissimp'.
2258
2259          (%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
2260                         cos(2 x)      cos(2 x)   1        1
2261          (%o1)          -------- + 3 (-------- + -) + x - -
2262                            2             2       2        2
2263
2264
2265     As rotinas de simplifica��o trigonom�trica ir�o usar informa��es
2266     declaradas em alguns casos simples.  Declara��es sobre vari�veis
2267     s�o usadas como segue, e.g.
2268
2269          (%i1) declare(j, integer, e, even, o, odd)$
2270          (%i2) sin(x + (e + 1/2)*%pi);
2271          (%o2)                        cos(x)
2272          (%i3) sin(x + (o + 1/2)*%pi);
2273          (%o3)                       - cos(x)
2274
2275
2276 -- Vari�vel de op��o da class: trigsign
2277     Valor por omiss�o: 'true'
2278
2279     Quando 'trigsign' for 'true', permite simplifica��o de argumentos
2280     negativos para fun��es trigonom�tricas.  E.g., 'sin(-x)'
2281     transformar-se-� em '-sin(x)' somente se 'trigsign' for 'true'.
2282
2283 -- Fun��o da class: trigsimp (<expr>)
2284     Utiliza as identidades sin(x)^2 + cos(x)^2 = 1 and cosh(x)^2 -
2285     sinh(x)^2 = 1 para simplificar express�es contendo 'tan', 'sec',
2286     etc., para 'sin', 'cos', 'sinh', 'cosh'.
2287
2288     'trigreduce', 'ratsimp', e 'radcan' podem estar habilitadas a
2289     adicionar simplifica��es ao resultado.
2290
2291     'demo ("trgsmp.dem")' mostra alguns exemplos de 'trigsimp'.
2292
2293 -- Fun��o da class: trigrat (<expr>)
2294     Fornece uma forma quase-linear simplificada can�nica de uma
2295     express�o trigonom�trica; <expr> � uma fra��o racional de muitos
2296     'sin', 'cos' ou 'tan', os argumentos delas s�o formas lineares em
2297     algumas vari�veis (ou kernels-n�cleos) e '%pi/<n>' (<n> inteiro)
2298     com coeficientes inteiros.  O resultado � uma fra��o simplificada
2299     com numerador e denominador ambos lineares em 'sin' e 'cos'.  Dessa
2300     forma 'trigrat' lineariza sempre quando isso for pass�vel.
2301
2302          (%i1) trigrat(sin(3*a)/sin(a+%pi/3));
2303          (%o1)            sqrt(3) sin(2 a) + cos(2 a) - 1
2304
2305
2306     O seguinte exemplo encontra-se em Davenport, Siret, and Tournier,
2307     Calcul Formel, Masson (ou em ingl�s, Addison-Wesley), sec��o 1.5.5,
2308     teorema de Morley.
2309
2310          (%i1) c: %pi/3 - a - b;
2311                                              %pi
2312          (%o1)                     - b - a + ---
2313                                               3
2314          (%i2) bc: sin(a)*sin(3*c)/sin(a+b);
2315                                sin(a) sin(3 b + 3 a)
2316          (%o2)                 ---------------------
2317                                     sin(b + a)
2318          (%i3) ba: bc, c=a, a=c$
2319          (%i4) ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
2320                   2       2
2321                sin (a) sin (3 b + 3 a)
2322          (%o4) -----------------------
2323                         2
2324                      sin (b + a)
2325
2326                                                  %pi
2327             2 sin(a) sin(3 a) cos(b) sin(b + a - ---) sin(3 b + 3 a)
2328                                                   3
2329           - --------------------------------------------------------
2330                                     %pi
2331                             sin(a - ---) sin(b + a)
2332                                      3
2333
2334                2         2         %pi
2335             sin (3 a) sin (b + a - ---)
2336                                     3
2337           + ---------------------------
2338                       2     %pi
2339                    sin (a - ---)
2340                              3
2341          (%i5) trigrat (ac2);
2342          (%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)
2343
2344           - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)
2345
2346           - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)
2347
2348           + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)
2349
2350           + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)
2351
2352           + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)
2353
2354           - 9)/4
2355
2356
2357
2358File: maxima.info,  Node: Fun��es Especiais,  Next: Fun��es El�pticas,  Prev: Trigonometria,  Up: Top
2359
236016, Fun��es Especiais
2361*********************
2362
2363* Menu:
2364
2365* Introdu��o a Fun��es Especiais::
2366* Defini��es para Fun��es Especiais::
2367
2368
2369File: maxima.info,  Node: Introdu��o a Fun��es Especiais,  Next: Defini��es para Fun��es Especiais,  Prev: Fun��es Especiais,  Up: Fun��es Especiais
2370
237116.1, Introdu��o a Fun��es Especiais
2372====================================
2373
2374A nota��o de fun��o especial segue adiante:
2375
2376     bessel_j (index, expr)         Fun��o de Bessel, primeiro tipo
2377     bessel_y (index, expr)         Fun��o de Bessel, segundo tipo
2378     bessel_i (index, expr)         Fun��o de Bessel modificada, primeiro tipo
2379     bessel_k (index, expr)         Fun��o de Bessel modificada, segundo tipo
2380     %he[n] (z)                     Polin�mio de Hermite (Note bem: he, n�o h. Veja A&S 22.5.18)
2381     %p[u,v] (z)                    Fun��o de Legendre
2382     %q[u,v] (z)                    Fun��o de Legendre, segundo tipo
2383     hstruve[n] (z)                 Fun��o H de Struve H
2384     lstruve[n] (z)                 Fun��o de L Struve
2385     %f[p,q] ([], [], expr)         Fun��o Hipergeom�trica Generalizada
2386     gamma()                        Fun��o Gamma
2387     gamma_incomplete_lower(a,z)    Fun��o gama incompleta inferior
2388     gammaincomplete(a,z)           Final da fun��o gama incompleta
2389     slommel
2390     %m[u,k] (z)                    Fun��o de Whittaker, primeiro tipo
2391     %w[u,k] (z)                    Fun��o de Whittaker, segundo tipo
2392     erfc (z)                       Complemento da fun��o erf (fun��o de erros - integral da distribui��o normal)
2393     ei (z)                         Integral de exponencial (?)
2394     kelliptic (z)                  integral eliptica completa de primeiro tipo (K)
2395     %d [n] (z)                     Fun��o cil�ndrica parab�lica
2396
2397
2398File: maxima.info,  Node: Defini��es para Fun��es Especiais,  Prev: Introdu��o a Fun��es Especiais,  Up: Fun��es Especiais
2399
240016.2, Defini��es para Fun��es Especiais
2401=======================================
2402
2403 -- Fun��o da class: airy_ai (<x>)
2404     A fun��o de Airy Ai, como definida em Abramowitz e Stegun, Handbook
2405     of Mathematical Functions, Sess�o 10.4.
2406
2407     A equa��o de Airy 'diff (y(x), x, 2) - x y(x) = 0' tem duas
2408     solu��es linearmente independentes, 'y = Ai(x)' e 'y = Bi(x)'.  A
2409     derivada de 'diff (airy_ai(x), x)' � 'airy_dai(x)'.
2410
2411     Se o argumento 'x' for um n�mero real ou um n�mero complexo
2412     qualquer deles em ponto flutuante , o valor num�rico de 'airy_ai' �
2413     retornado quando poss�vel.
2414
2415     Veja tamb�m 'airy_bi', 'airy_dai', 'airy_dbi'.
2416
2417 -- Fun��o da class: airy_dai (<x>)
2418     A derivada da fun��o de Airy Ai 'airy_ai(x)'.
2419
2420     Veja 'airy_ai'.
2421
2422 -- Fun��o da class: airy_bi (<x>)
2423     A fun��o de Airy Bi, como definida em Abramowitz e Stegun, Handbook
2424     of Mathematical Functions, Sess�o 10.4, � a segunda solu��o da
2425     equa��o de Airy 'diff (y(x), x, 2) - x y(x) = 0'.
2426
2427     Se o argumento 'x' for um n�mero real ou um n�mero complexo
2428     qualquer deles em ponto flutuante, o valor num�rico de 'airy_bi' �
2429     retornado quando poss�vel.  Em outros casos a express�o n�o
2430     avaliada � retornada.
2431
2432     A derivada de 'diff (airy_bi(x), x)' � 'airy_dbi(x)'.
2433
2434     Veja 'airy_ai', 'airy_dbi'.
2435
2436 -- Fun��o da class: airy_dbi (<x>)
2437     A derivada de fun��o de Airy Bi 'airy_bi(x)'.
2438
2439     Veja 'airy_ai' e 'airy_bi'.
2440
2441 -- Fun��o da class: asympa
2442     'asympa' � um pacote para an�lise assint�tica.  O pacote cont�m
2443     fun��es de simplifica��o para an�lise assint�tica, incluindo as
2444     fun��es "grande O" e "pequeno o" que s�o largamente usadas em
2445     an�lises de complexidade e an�lise num�rica.
2446
2447     'load ("asympa")' chama esse pacote.
2448
2449 -- Fun��o da class: bessel (<z>, <a>)
2450     A fun��o de Bessel de primeiro tipo.
2451
2452     Essa fun��o est� desactualizada.  Escreva 'bessel_j (<z>, <a>)' em
2453     lugar dessa.
2454
2455 -- Fun��o da class: bessel_j (<v>, <z>)
2456     A fun��o de Bessel do primeiro tipo de ordem v e argumento z.
2457
2458     'bessel_j' calcula o array 'besselarray' tal que 'besselarray [i] =
2459     bessel_j [i + v - int(v)] (z)' para 'i' de zero a 'int(v)'.
2460
2461     'bessel_j' � definida como
2462                          inf
2463                          ====       k  - v - 2 k  v + 2 k
2464                          \     (- 1)  2          z
2465                           >    --------------------------
2466                          /        k! gamma(v + k + 1)
2467                          ====
2468                          k = 0
2469
2470     todavia s�ries infinitas n�o s�o usadas nos c�lculos.
2471
2472 -- Fun��o da class: bessel_y (<v>, <z>)
2473     A fun��o de Bessel do segundo tipo de ordem v e argumento z.
2474
2475     'bessel_y' calcula o array 'besselarray' tal que 'besselarray [i] =
2476     bessel_y [i + v - int(v)] (z)' para 'i' de zero a 'int(v)'.
2477
2478     'bessel_y' � definida como
2479                        cos(%pi v) bessel_j(v, z) - bessel_j(-v, z)
2480                        -------------------------------------------
2481                                       sin(%pi v)
2482
2483     quando v n�o for um inteiro.  Quando v for um inteiro n, o limite
2484     com v aprocimando-se de n � tomado.
2485
2486 -- Fun��o da class: bessel_i (<v>, <z>)
2487     A fun��o de Bessel modificada de primeiro tipo de ordem v e
2488     argumento z.
2489
2490     'bessel_i' calcula o array 'besselarray' tal que 'besselarray [i] =
2491     bessel_i [i + v - int(v)] (z)' para 'i' de zero a 'int(v)'.
2492
2493     'bessel_i' � definida como
2494                              inf
2495                              ====   - v - 2 k  v + 2 k
2496                              \     2          z
2497                               >    -------------------
2498                              /     k! gamma(v + k + 1)
2499                              ====
2500                              k = 0
2501
2502     todavia s�ries infinitas n�o s�o usadas nos c�lculos.
2503
2504 -- Fun��o da class: bessel_k (<v>, <z>)
2505     A fun��o de Bessel modificada de segundo tipo de ordem v e
2506     argumento z.
2507
2508     'bessel_k' calcula o array 'besselarray' tal que 'besselarray [i] =
2509     bessel_k [i + v - int(v)] (z)' para 'i' de zero a 'int(v)'.
2510
2511     'bessel_k' � definida como
2512                     %pi csc(%pi v) (bessel_i(-v, z) - bessel_i(v, z))
2513                     -------------------------------------------------
2514                                            2
2515
2516     quando v n�o for inteiro.  Se v for um inteiro n, ent�o o limite
2517     com v aproximando-se de n � tomado.
2518
2519 -- Vari�vel de op��o da class: besselexpand
2520     Valor por omiss�o: 'false'
2521
2522     Expans�es de controle de fun��es de Bessel quando a ordem for a
2523     metade de um inteiro �mpar.  Nesse caso, as fun��es de Bessel podem
2524     ser expandidas em termos de outras fun��es elementares.  Quando
2525     'besselexpand' for 'true', a fun��o de Bessel � expandida.
2526
2527          (%i1) besselexpand: false$
2528          (%i2) bessel_j (3/2, z);
2529                                              3
2530          (%o2)                      bessel_j(-, z)
2531                                              2
2532          (%i3) besselexpand: true$
2533          (%i4) bessel_j (3/2, z);
2534                                    2 z   sin(z)   cos(z)
2535          (%o4)                sqrt(---) (------ - ------)
2536                                    %pi      2       z
2537                                            z
2538
2539 -- Fun��o da class: scaled_bessel_i (<v>, <z>)
2540
2541     A fun��o homot�tica modificada de Bessel de primeiro tipo de ordem
2542     v e argumento z.  Isto �, scaled_bessel_i(v,z) =
2543     exp(-abs(z))*bessel_i(v, z).  Essa fun��o � particularmente �til
2544     para calcular bessel_i para grandes valores de z.  Todavia, maxima
2545     n�o conhece outra forma muito mais sobre essa fun��o.  Para
2546     computa��o simb�lica, � provavelmete prefer�vel trabalhar com a
2547     express�o 'exp(-abs(z))*bessel_i(v, z)'.
2548
2549 -- Fun��o da class: scaled_bessel_i0 (<z>)
2550
2551     Id�ntica a 'scaled_bessel_i(0,z)'.
2552
2553 -- Fun��o da class: scaled_bessel_i1 (<z>)
2554
2555     Id�ntica a 'scaled_bessel_i(1,z)'.
2556
2557 -- Fun��o da class: beta (<x>, <y>)
2558     A fun��o beta, definida como 'gamma(x) gamma(y)/gamma(x + y)'.
2559
2560 -- Fun��o da class: gamma (<x>)
2561     A fun��o gama.
2562
2563     Veja tamb�m 'makegamma'.
2564
2565     A vari�vel 'gammalim' controla a simplifica��o da fun��o gama.
2566
2567     A constante de Euler-Mascheroni � '%gamma'.
2568
2569 -- Vari�vel de op��o da class: gammalim
2570     Valor por omiss�o: 1000000
2571
2572     'gammalim' controla a simplifica��o da fun��o gama para integral e
2573     argumentos na forma de n�meros racionais.  Se o valor absoluto do
2574     argumento n�o for maior que 'gammalim', ent�o a simplifica��o
2575     ocorrer�.  Note que 'factlim' comuta controle de simplifica�c�o do
2576     resultado de 'gamma' de um argumento inteiro tamb�m.
2577
2578 -- Fun��o da class: intopois (<a>)
2579     Converte <a> em um c�digo de Poisson.
2580
2581 -- Fun��o da class: makefact (<expr>)
2582     Transforma inst�ncias de fun��es binomiais, gama, e beta em <expr>
2583     para factoriais.
2584
2585     Veja tamb�m 'makegamma'.
2586
2587 -- Fun��o da class: makegamma (<expr>)
2588     Transforma inst�ncias de fun��es binomiais, factorial, e beta em
2589     <expr> para fun��es gama.
2590
2591     Veja tamb�m 'makefact'.
2592
2593 -- Fun��o da class: numfactor (<expr>)
2594     Retorna o factor num�rico multiplicando a express�o <expr>, que
2595     pode ser um termo simples.
2596
2597     'content' retorna o m�ximo divisor comum (mdc) de todos os termos
2598     em uma adi��o.
2599
2600          (%i1) gamma (7/2);
2601                                    15 sqrt(%pi)
2602          (%o1)                     ------------
2603                                         8
2604          (%i2) numfactor (%);
2605                                         15
2606          (%o2)                          --
2607                                         8
2608
2609 -- Fun��o da class: outofpois (<a>)
2610     Converte <a> de um c�digo de Poisson para uma representa��o geral.
2611     Se <a> n�o for uma forma de Poisson, 'outofpois' realiza a
2612     convers�o, i.e., o valor de retorno � 'outofpois (intopois (<a>))'.
2613     Essa fun��o � desse modo um simplificador can�nico para adi��es e
2614     pot�ncias de termos de seno e co-seno de um tipo particular.
2615
2616 -- Fun��o da class: poisdiff (<a>, <b>)
2617     Deriva <a> com rela��o a <b>.  <b> deve ocorrer somente nos
2618     argumentos trigonom�tricos ou somente nos coeficientes.
2619
2620 -- Fun��o da class: poisexpt (<a>, <b>)
2621     Funcionalmente identica a 'intopois (<a>^<b>)'.  <b> deve ser um
2622     inteiro positico.
2623
2624 -- Fun��o da class: poisint (<a>, <b>)
2625     Integra em um senso restrito similarmente (para 'poisdiff').
2626     Termos n�o peri�dicos em <b> s�o diminu�dos se <b> estiver em
2627     argumentos trigonom�tricos.
2628
2629 -- Vari�vel de op��o da class: poislim
2630     Valor por omiss�o: 5
2631
2632     'poislim' determina o dom�nio dos coeficientes nos argumentos de
2633     fun��es trigonom�tricas.  O valor inicial de 5 corresponde ao
2634     intervalo [-2^(5-1)+1,2^(5-1)], ou [-15,16], mas isso pode ser
2635     alterado para [-2^(n-1)+1, 2^(n-1)].
2636
2637 -- Fun��o da class: poismap (<series>, <sinfn>, <cosfn>)
2638     mapear� as fun��es <sinfn> sobre os termos de seno e <cosfn> ssobre
2639     os termos de co-seno das s�ries de Poisson dadas.  <sinfn> e
2640     <cosfn> s�o fun��es de dois argumentos que s�o um coeficiente e uma
2641     parte trigonom�trica de um termo em s�ries respectivamente.
2642
2643 -- Fun��o da class: poisplus (<a>, <b>)
2644     � funcionalmente identica a 'intopois (a + b)'.
2645
2646 -- Fun��o da class: poissimp (<a>)
2647     Converte <a> em s�ries de Poisson para <a> em representa��o geral.
2648
2649 -- S�mbolo especial da class: poisson
2650     O s�mbolo '/P/' segue o r�tulo de linha de uma express�o contendo
2651     s�ries de Poisson.
2652
2653 -- Fun��o da class: poissubst (<a>, <b>, <c>)
2654     Substitue <a> por <b> em <c>.  <c> � uma s�rie de Poisson.
2655
2656     (1) Quando <B> � uma vari�vel <u>, <v>, <w>, <x>, <y>, ou <z>,
2657     ent�o <a> deve ser uma express�o linear nessas vari�veis (e.g.,
2658     '6*u + 4*v').
2659
2660     (2) Quando <b> for outra que n�o essas vari�veis, ent�o <a> deve
2661     tamb�m ser livre dessas vari�veis, e al�m disso, livre de senos ou
2662     co-senos.
2663
2664     'poissubst (<a>, <b>, <c>, <d>, <n>)' � um tipo especial d
2665     substitui��o que opera sobre <a> e <b> como no tipo (1) acima, mas
2666     onde <d> � uma s�rie de Poisson, expande 'cos(<d>)' e 'sin(<d>)'
2667     para a ordem <n> como provendo o resultado da substitui��o '<a> +
2668     <d>' por <b> em <c>.  A id�ia � que <d> � uma expans�o em termos de
2669     um pequeno par�metro.  Por exemplo, 'poissubst (u, v, cos(v), %e,
2670     3)' retorna 'cos(u)*(1 - %e^2/2) - sin(u)*(%e - %e^3/6)'.
2671
2672 -- Fun��o da class: poistimes (<a>, <b>)
2673     � funcionalmente id�ntica a 'intopois (<a>*<b>)'.
2674
2675 -- Fun��o da class: poistrim ()
2676     � um nome de fun��o reservado que (se o utilizador tiver definido
2677     uma fun��o com esse nome) � aplicada durante multiplica��o de
2678     Poisson.  Isso � uma fun��o predicada de 6 argumentos que s�o os
2679     coeficientes de <u>, <v>, ..., <z> em um termo.  Termos para os
2680     quais 'poistrim' for 'true' (para os coeficientes daquele termo)
2681     s�o eliminados durante a multiplica��o.
2682
2683 -- Fun��o da class: printpois (<a>)
2684     Mostra uma s�rie de Poisson em um formato leg�vel.  Em comum com
2685     'outofpois', essa fun��o converter� <a> em um c�digo de Poisson
2686     primeiro, se necess�rio.
2687
2688 -- Fun��o da class: psi [<n>](<x>)
2689
2690     A derivada de 'log (gamma (<x>))' de ordem '<n>+1'.  Dessa forma,
2691     'psi[0](<x>)' � a primeira derivada, 'psi[1](<x>)' � a segunda
2692     derivada, etc.
2693
2694     Maxima n�o sabe como, em geral, calcular um valor num�rico de
2695     'psi', mas Maxima pode calcular alguns valores exatos para
2696     argumentos racionais.  Muitas vari�veis controlam qual intervalo de
2697     argumentos racionais 'psi' ir� retornar um valor exato, se
2698     poss�vel.  Veja 'maxpsiposint', 'maxpsinegint', 'maxpsifracnum', e
2699     'maxpsifracdenom'.  Isto �, <x> deve localizar-se entre
2700     'maxpsinegint' e 'maxpsiposint'.  Se o valor absoluto da parte
2701     facion�ria de <x> for racional e tiver um numerador menor que
2702     'maxpsifracnum' e tiver um denominador menor que 'maxpsifracdenom',
2703     'psi' ir� retornar um valor exato.
2704
2705     A fun��o 'bfpsi' no pacote 'bffac' pode calcular valores num�ricos.
2706
2707 -- Vari�vel de op��o da class: maxpsiposint
2708     Valor por omiss�o: 20
2709
2710     'maxpsiposint' � o maior valor positivo para o qual 'psi[n](x)' ir�
2711     tentar calcular um valor exato.
2712
2713 -- Vari�vel de op��o da class: maxpsinegint
2714     Valor por omiss�o: -10
2715
2716     'maxpsinegint' � o valor mais negativo para o qual 'psi[n](x)' ir�
2717     tentar calcular um valor exato.  Isto �, se <x> for menor que
2718     'maxnegint', 'psi[n](<x>)' n�o ir� retornar resposta simplificada,
2719     mesmo se isso for poss�vel.
2720
2721 -- Vari�vel de op��o da class: maxpsifracnum
2722     Valor por omiss�o: 4
2723
2724     Tomemos <x> como sendo um n�mero racional menor que a unidade e da
2725     forma 'p/q'.  Se 'p' for menor que 'maxpsifracnum', ent�o
2726     'psi[<n>](<x>)' n�o ir� tentar retornar um valor simplificado.
2727
2728 -- Fun��o da class: specint (exp(- s*<t>) * <expr>, <t>)
2729
2730     Calcula a transformada de Laplace de <expr> com rala��o � vari�vel
2731     <t>.  O integrando <expr> pode conter fun��es especiais.
2732
2733     Se 'specint' n�o puder calcular a integral, o valore de retorno
2734     pode conter v�rios s�mbolos do Lisp, incluindo
2735     'other-defint-to-follow-negtest', 'other-lt-exponential-to-follow',
2736     'product-of-y-with-nofract-indices', etc.; isso � um erro.
2737
2738     'demo(hypgeo)' mostra muitos exemplos de transformadas de Laplace
2739     calculados por 'specint'.
2740
2741     Exemplos:
2742
2743          (%i1) assume (p > 0, a > 0);
2744          (%o1)                    [p > 0, a > 0]
2745          (%i2) specint (t^(1/2) * exp(-a*t/4) * exp(-p*t), t);
2746                                     sqrt(%pi)
2747          (%o2)                     ------------
2748                                           a 3/2
2749                                    2 (p + -)
2750                                           4
2751          (%i3) specint (t^(1/2) * bessel_j(1, 2 * a^(1/2) * t^(1/2)) * exp(-p*t), t);
2752                                             - a/p
2753                                   sqrt(a) %e
2754          (%o3)                    ---------------
2755                                          2
2756                                         p
2757
2758 -- Vari�vel de op��o da class: maxpsifracdenom
2759     Valor por omiss�o: 4
2760
2761     Tomemos <x> como sendo um n�mero racional menor que a unidade e da
2762     forma 'p/q'.  Se 'q' for maior que 'maxpsifracdeonm', ent�o
2763     'psi[<n>](<x>)' n�o ir� tentar retornar um valor simplificado.
2764
2765
2766File: maxima.info,  Node: Fun��es El�pticas,  Next: Limites,  Prev: Fun��es Especiais,  Up: Top
2767
276817, Fun��es El�pticas
2769*********************
2770
2771* Menu:
2772
2773* Introdu��o a Fun��es El�pticas e Integrais::
2774* Defini��es para Fun��es El�pticas::
2775* Defini��es para Integrais El�pticas::
2776
2777
2778File: maxima.info,  Node: Introdu��o a Fun��es El�pticas e Integrais,  Next: Defini��es para Fun��es El�pticas,  Up: Top
2779
278017.1, Introdu��o a Fun��es El�pticas e Integrais
2781================================================
2782
2783Maxima inclui suporte a fun��es el�pticas Jacobianas e a integrais
2784el�pticas completas e incompletas.  Isso inclui manipula��o simb�lica
2785dessas fun��es e avalia��o num�rica tamb�m.  Defini��es dessas fun��es e
2786muitas de suas propriedades podem ser encontradas em Abramowitz e
2787Stegun, Cap�tulos 16-17.  Tanto quanto poss�vel, usamos as defini��es e
2788rela��es dadas a�.
2789
2790Em particular, todas as fun��es el�pticas e integrais el�pticas usam o
2791par�metro m em lugar de m�dulo k ou o �ngulo modular \alpha.  Isso � uma
2792�rea onde discordamos de Abramowitz e Stegun que usam o �ngulo modular
2793para as fun��es el�pticas.  As seguintes rela��es s�o verdadeiras: m =
2794k^2 e k = \sin(\alpha)
2795
2796As fun��es el�pticas e integrais el�pticas est�o primariamente
2797tencionando suportar computa��o simb�lica.  Portanto, a maiora das
2798derivadas de fun��es e integrais s�o conhecidas.  Todavia, se valores em
2799ponto flutuante forem dados, um resultado em ponto flutuante �
2800retornado.
2801
2802Suporte para a maioria de outras propriedades das fun��es el�pticas e
2803integrais el�pticas al�m das derivadas n�o foram ainda escritas.
2804
2805Alguns exemplos de fun��es el�pticas:
2806
2807     (%i1) jacobi_sn (u, m);
2808     (%o1)                    jacobi_sn(u, m)
2809     (%i2) jacobi_sn (u, 1);
2810     (%o2)                        tanh(u)
2811     (%i3) jacobi_sn (u, 0);
2812     (%o3)                        sin(u)
2813     (%i4) diff (jacobi_sn (u, m), u);
2814     (%o4)            jacobi_cn(u, m) jacobi_dn(u, m)
2815     (%i5) diff (jacobi_sn (u, m), m);
2816     (%o5) jacobi_cn(u, m) jacobi_dn(u, m)
2817
2818           elliptic_e(asin(jacobi_sn(u, m)), m)
2819      (u - ------------------------------------)/(2 m)
2820                          1 - m
2821
2822                 2
2823        jacobi_cn (u, m) jacobi_sn(u, m)
2824      + --------------------------------
2825                   2 (1 - m)
2826
2827Alguns exemplos de integrais el�pticas:
2828
2829     (%i1) elliptic_f (phi, m);
2830     (%o1)                  elliptic_f(phi, m)
2831     (%i2) elliptic_f (phi, 0);
2832     (%o2)                          phi
2833     (%i3) elliptic_f (phi, 1);
2834                                    phi   %pi
2835     (%o3)                  log(tan(--- + ---))
2836                                     2     4
2837     (%i4) elliptic_e (phi, 1);
2838     (%o4)                       sin(phi)
2839     (%i5) elliptic_e (phi, 0);
2840     (%o5)                          phi
2841     (%i6) elliptic_kc (1/2);
2842                                          1
2843     (%o6)                    elliptic_kc(-)
2844                                          2
2845     (%i7) makegamma (%);
2846                                      2 1
2847                                 gamma (-)
2848                                        4
2849     (%o7)                      -----------
2850                                4 sqrt(%pi)
2851     (%i8) diff (elliptic_f (phi, m), phi);
2852                                     1
2853     (%o8)                 ---------------------
2854                                         2
2855                           sqrt(1 - m sin (phi))
2856     (%i9) diff (elliptic_f (phi, m), m);
2857            elliptic_e(phi, m) - (1 - m) elliptic_f(phi, m)
2858     (%o9) (-----------------------------------------------
2859                                   m
2860
2861                                      cos(phi) sin(phi)
2862                                  - ---------------------)/(2 (1 - m))
2863                                                  2
2864                                    sqrt(1 - m sin (phi))
2865
2866Suporte a fun��es el�pticas e integrais el�pticas foi escrito por
2867Raymond Toy.  Foi colocado sob os termos da Licen�� P�blica Geral (GPL)
2868que governa a distribui��o do Maxima.
2869
2870
2871File: maxima.info,  Node: Defini��es para Fun��es El�pticas,  Next: Defini��es para Integrais El�pticas,  Prev: Introdu��o a Fun��es El�pticas e Integrais,  Up: Top
2872
287317.2, Defini��es para Fun��es El�pticas
2874=======================================
2875
2876 -- Fun��o da class: jacobi_sn (<u>, <m>)
2877     A Fun��o el�ptica Jacobiana sn(u,m).
2878
2879 -- Fun��o da class: jacobi_cn (<u>, <m>)
2880     A fun��o el�ptica Jacobiana cn(u,m).
2881
2882 -- Fun��o da class: jacobi_dn (<u>, <m>)
2883     A fun��o el�ptica Jacobiana dn(u,m).
2884
2885 -- Fun��o da class: jacobi_ns (<u>, <m>)
2886     A fun��o el�ptica Jacobiana ns(u,m) = 1/sn(u,m).
2887
2888 -- Fun��o da class: jacobi_sc (<u>, <m>)
2889     A fun��o el�ptica Jacobiana sc(u,m) = sn(u,m)/cn(u,m).
2890
2891 -- Fun��o da class: jacobi_sd (<u>, <m>)
2892     A fun��o el�ptica Jacobiana sd(u,m) = sn(u,m)/dn(u,m).
2893
2894 -- Fun��o da class: jacobi_nc (<u>, <m>)
2895     A fun��o el�ptica Jacobiana nc(u,m) = 1/cn(u,m).
2896
2897 -- Fun��o da class: jacobi_cs (<u>, <m>)
2898     A fun��o el�ptica Jacobiana cs(u,m) = cn(u,m)/sn(u,m).
2899
2900 -- Fun��o da class: jacobi_cd (<u>, <m>)
2901     A fun��o el�ptica Jacobiana cd(u,m) = cn(u,m)/dn(u,m).
2902
2903 -- Fun��o da class: jacobi_nd (<u>, <m>)
2904     A fun��o el�ptica Jacobiana nc(u,m) = 1/cn(u,m).
2905
2906 -- Fun��o da class: jacobi_ds (<u>, <m>)
2907     A fun��o el�ptica Jacobiana ds(u,m) = dn(u,m)/sn(u,m).
2908
2909 -- Fun��o da class: jacobi_dc (<u>, <m>)
2910     A fun��o el�ptica Jacobiana dc(u,m) = dn(u,m)/cn(u,m).
2911
2912 -- Fun��o da class: inverse_jacobi_sn (<u>, <m>)
2913     A inversa da fun��o el�ptica Jacobiana sn(u,m).
2914
2915 -- Fun��o da class: inverse_jacobi_cn (<u>, <m>)
2916     A inversa da fun��o el�ptica Jacobiana cn(u,m).
2917
2918 -- Fun��o da class: inverse_jacobi_dn (<u>, <m>)
2919     A inversa da fun��o el�ptica Jacobiana dn(u,m).
2920
2921 -- Fun��o da class: inverse_jacobi_ns (<u>, <m>)
2922     A inversa da fun��o el�ptica Jacobiana ns(u,m).
2923
2924 -- Fun��o da class: inverse_jacobi_sc (<u>, <m>)
2925     A inversa da fun��o el�ptica Jacobiana sc(u,m).
2926
2927 -- Fun��o da class: inverse_jacobi_sd (<u>, <m>)
2928     A inversa da fun��o el�ptica Jacobiana sd(u,m).
2929
2930 -- Fun��o da class: inverse_jacobi_nc (<u>, <m>)
2931     A inversa da fun��o el�ptica Jacobiana nc(u,m).
2932
2933 -- Fun��o da class: inverse_jacobi_cs (<u>, <m>)
2934     A inversa da fun��o el�ptica Jacobiana cs(u,m).
2935
2936 -- Fun��o da class: inverse_jacobi_cd (<u>, <m>)
2937     A inversa da fun��o el�ptica Jacobiana cd(u,m).
2938
2939 -- Fun��o da class: inverse_jacobi_nd (<u>, <m>)
2940     A inversa da fun��o el�ptica Jacobiana nc(u,m).
2941
2942 -- Fun��o da class: inverse_jacobi_ds (<u>, <m>)
2943     A inversa da fun��o el�ptica Jacobiana ds(u,m).
2944
2945 -- Fun��o da class: inverse_jacobi_dc (<u>, <m>)
2946     A inversa da fun��o el�ptica Jacobiana dc(u,m).
2947
2948
2949File: maxima.info,  Node: Defini��es para Integrais El�pticas,  Prev: Defini��es para Fun��es El�pticas,  Up: Top
2950
295117.3, Defini��es para Integrais El�pticas
2952=========================================
2953
2954 -- Fun��o da class: elliptic_f (<phi>, <m>)
2955     A integral el�ptica incompleta de primeiro tipo, definida como
2956
2957     integrate(1/sqrt(1 - m*sin(x)^2), x, 0, phi)
2958
2959     Veja tamb�m _elliptic_e_ e _elliptic_kc_.
2960
2961 -- Fun��o da class: elliptic_e (<phi>, <m>)
2962     A integral el�ptica incompleta de segundo tipo, definida como
2963
2964     elliptic_e(u, m) = integrate(sqrt(1 - m*sin(x)^2), x, 0, phi) Veja
2965     tamb�m _elliptic_e_ e _elliptic_ec_.
2966
2967 -- Fun��o da class: elliptic_eu (<u>, <m>)
2968     A integral el�ptica incompleta de segundo tipo, definida como
2969     integrate(dn(v,m)^2,v,0,u) = integrate(sqrt(1-m*t^2)/sqrt(1-t^2),
2970     t, 0, tau)
2971
2972     onde tau = sn(u,m)
2973
2974     Isso � relacionado a elliptic_e atrav�s de elliptic_eu(u, m) =
2975     elliptic_e(asin(sn(u,m)),m) Veja tamb�m _elliptic_e_.
2976
2977 -- Fun��o da class: elliptic_pi (<n>, <phi>, <m>)
2978     A integral el�ptica incompleta de terceiro tipo, definida como
2979
2980     integrate(1/(1-n*sin(x)^2)/sqrt(1 - m*sin(x)^2), x, 0, phi)
2981
2982     Somente a derivada em rela��o a phi � conhecida pelo Maxima.
2983
2984 -- Fun��o da class: elliptic_kc (<m>)
2985     A integral el�ptica completa de primeiro tipo, definida como
2986
2987     integrate(1/sqrt(1 - m*sin(x)^2), x, 0, %pi/2)
2988
2989     Para certos valores de m, o valor da integral � conhecido em termos
2990     de fun��es Gama.  Use 'makegamma' para avaliar esse valor.
2991
2992 -- Fun��o da class: elliptic_ec (<m>)
2993     A integral el�ptica completa de segundo tipo, definida como
2994
2995     integrate(sqrt(1 - m*sin(x)^2), x, 0, %pi/2)
2996
2997     Para certos valores de m, o valor da integral � conhecido em termos
2998     de fun��es Gama.  Use 'makegamma' para avaliar esse valor.
2999
3000
3001File: maxima.info,  Node: Limites,  Next: Diferencia��o,  Prev: Fun��es El�pticas,  Up: Top
3002
300318, Limites
3004***********
3005
3006* Menu:
3007
3008* Defini��es para Limites::
3009
3010
3011File: maxima.info,  Node: Defini��es para Limites,  Prev: Limites,  Up: Limites
3012
301318.1, Defini��es para Limites
3014=============================
3015
3016 -- Vari�vel de Op��o da class: lhospitallim
3017     Valor por omiss�o: 4
3018
3019     'lhospitallim' � o m�ximo n�mero de vezes que a regra L'Hospital �
3020     usada em 'limit'.  Isso evita ciclos infinitos em casos como 'limit
3021     (cot(x)/csc(x), x, 0)'.
3022
3023 -- Fun��o da class: limit (<expr>, <x>, <val>, <dir>)
3024 -- Fun��o da class: limit (<expr>, <x>, <val>)
3025 -- Fun��o da class: limit (<expr>)
3026     Calcula o limite de <expr> com a vari�vel real <x> aproximando-se
3027     do valor <val> pela dire��o <dir>.  <dir> pode ter o valor 'plus'
3028     para um limite pela direita, 'minus' para um limite pela esquerda,
3029     ou pode ser omitido (implicando em um limite em ambos os lados �
3030     para ser computado).
3031
3032     'limit' usa os seguintes s�mbolos especiais: 'inf' (infinito
3033     positivo) e 'minf' (infinito negativo).  Em sa�das essa fun��o pode
3034     tamb�m usar 'und' (undefined - n�o definido), 'ind' (indefinido mas
3035     associado) e 'infinity' (infinito complexo).
3036
3037     'lhospitallim' � o m�ximo n�mero de vezes que a regra L'Hospital �
3038     usada em 'limit'.  Isso evita ciclos infinitos em casos como 'limit
3039     (cot(x)/csc(x), x, 0)'.
3040
3041     'tlimswitch' quando 'true' far� o pacote 'limit' usar s�rie de
3042     Taylor quando poss�vel.
3043
3044     'limsubst' evita que 'limit' tente substitui��es sobre formas
3045     desconhecidas.  Isso � para evitar erros como 'limit (f(n)/f(n+1),
3046     n, inf)' dando igual a 1.  Escolhendo 'limsubst' para 'true'
3047     permitir� tais substitui��es.
3048
3049     'limit' com um argumento � muitas vezes chamado em ocasi�es para
3050     simplificar express�es de constantes, por exemplo, 'limit (inf-1)'.
3051
3052     'example (limit)' mostra alguns exemplos.
3053
3054     Para saber sobre o m�todo utilizado veja Wang, P., "Evaluation of
3055     Definite Integrals by Symbolic Manipulation", tese de Ph.D., MAC
3056     TR-92, Outubro de 1971.
3057
3058 -- Vari�vel de Op��o da class: limsubst
3059     valor padr�o: 'false' - evita que 'limit' tente substitui��es sobre
3060     formas desconhecidas.  Isso � para evitar erros como 'limit
3061     (f(n)/f(n+1), n, inf)' dando igual a 1.  Escolhendo 'limsubst' para
3062     'true' permitir� tais substitui��es.
3063
3064 -- Fun��o da class: tlimit (<expr>, <x>, <val>, <dir>)
3065 -- Fun��o da class: tlimit (<expr>, <x>, <val>)
3066 -- Fun��o da class: tlimit (<expr>)
3067     Retorna 'limit' com 'tlimswitch' escolhido para 'true'.
3068
3069 -- Vari�vel de Op��o da class: tlimswitch
3070     Valor por omiss�o: 'false'
3071
3072     Quando 'tlimswitch' for 'true', far� o pacote 'limit' usar s�rie de
3073     Taylor quando poss�vel.
3074
3075
3076File: maxima.info,  Node: Diferencia��o,  Next: Integra��o,  Prev: Limites,  Up: Top
3077
307819, Diferencia��o
3079*****************
3080
3081* Menu:
3082
3083* Defini��es para Diferencia��o::
3084
3085
3086File: maxima.info,  Node: Defini��es para Diferencia��o,  Prev: Diferencia��o,  Up: Diferencia��o
3087
308819.1, Defini��es para Diferencia��o
3089===================================
3090
3091 -- Fun��o da class: antid (<expr>, <x>, <u(x)>)
3092     Retorna uma lista de dois elementos, tais que uma antiderivada de
3093     <expr> com rela��o a <x> pode ser constu�da a partir da lista.  A
3094     express�o <expr> pode conter uma fun��o desconhecida <u> e suas
3095     derivadas.
3096
3097     Tome <L>, uma lista de dois elementos, como sendo o valor de
3098     retorno de 'antid'.  Ent�o '<L>[1] + 'integrate (<L>[2], <x>)' �
3099     uma antiderivada de <expr> com rela��o a <x>.
3100
3101     Quando 'antid' obt�m sucesso inteiramente, o segundo elemento do
3102     valor de retorno � zero.  De outra forma, o segundo elemento � n�o
3103     zero, e o primeiro elemento n�o zero ou zero.  Se 'antid' n�o pode
3104     fazer nenhum progresso, o primeiro elemento � zero e o segundo n�o
3105     zero.
3106
3107     'load ("antid")' chama essa fun��o.  O pacote 'antid' tamb�m define
3108     as fun��es 'nonzeroandfreeof' e 'linear'.
3109
3110     'antid' est� relacionada a 'antidiff' como segue.  Tome <L>, uma
3111     lista de dois elementos, que � o valor de retorno de 'antid'.
3112     Ent�o o valor de retorno de 'antidiff' � igual a '<L>[1] +
3113     'integrate (<L>[2], <x>)' onde <x> � a vari�vel de integra��o.
3114
3115     Exemplos:
3116
3117          (%i1) load ("antid")$
3118          (%i2) expr: exp (z(x)) * diff (z(x), x) * y(x);
3119                                      z(x)  d
3120          (%o2)                y(x) %e     (-- (z(x)))
3121                                            dx
3122          (%i3) a1: antid (expr, x, z(x));
3123                                 z(x)      z(x)  d
3124          (%o3)          [y(x) %e    , - %e     (-- (y(x)))]
3125                                                 dx
3126          (%i4) a2: antidiff (expr, x, z(x));
3127                                      /
3128                               z(x)   [   z(x)  d
3129          (%o4)         y(x) %e     - I %e     (-- (y(x))) dx
3130                                      ]         dx
3131                                      /
3132          (%i5) a2 - (first (a1) + 'integrate (second (a1), x));
3133          (%o5)                           0
3134          (%i6) antid (expr, x, y(x));
3135                                       z(x)  d
3136          (%o6)             [0, y(x) %e     (-- (z(x)))]
3137                                             dx
3138          (%i7) antidiff (expr, x, y(x));
3139                            /
3140                            [        z(x)  d
3141          (%o7)             I y(x) %e     (-- (z(x))) dx
3142                            ]              dx
3143                            /
3144
3145 -- Fun��o da class: antidiff (<expr>, <x>, <u>(<x>))
3146     Retorna uma antiderivada de <expr> com rela��o a <x>.  A express�o
3147     <expr> pode conter uma fun��o desconhecida <u> e suas derivadas.
3148
3149     Quando 'antidiff' obt�m sucesso inteiramente, a express�o
3150     resultante � livre do sinal de integral (isto �, livre do
3151     substantivo 'integrate').  De outra forma, 'antidiff' retorna uma
3152     express�o que � parcialmente ou inteiramente dentro de um sinal de
3153     um sinal de integral.  Se 'antidiff' n�o pode fazer qualquer
3154     progresso, o valor de retorno � inteiramente dentro de um sinal de
3155     integral.
3156
3157     'load ("antid")' chama essa fun��o.  O pacote 'antid' tamb�m define
3158     as fun��es 'nonzeroandfreeof' e 'linear'.
3159
3160     'antidiff' � relacionada a 'antid' como segue.  Tome <L>, uma lista
3161     de dois elementos, como sendo o valor de retorno de 'antid'.  Ent�o
3162     o valor de retorno de 'antidiff' � igual a '<L>[1] + 'integrate
3163     (<L>[2], <x>)' onde <x> � a vari�vel de integra��o.
3164
3165     Exemplos:
3166
3167          (%i1) load ("antid")$
3168          (%i2) expr: exp (z(x)) * diff (z(x), x) * y(x);
3169                                      z(x)  d
3170          (%o2)                y(x) %e     (-- (z(x)))
3171                                            dx
3172          (%i3) a1: antid (expr, x, z(x));
3173                                 z(x)      z(x)  d
3174          (%o3)          [y(x) %e    , - %e     (-- (y(x)))]
3175                                                 dx
3176          (%i4) a2: antidiff (expr, x, z(x));
3177                                      /
3178                               z(x)   [   z(x)  d
3179          (%o4)         y(x) %e     - I %e     (-- (y(x))) dx
3180                                      ]         dx
3181                                      /
3182          (%i5) a2 - (first (a1) + 'integrate (second (a1), x));
3183          (%o5)                           0
3184          (%i6) antid (expr, x, y(x));
3185                                       z(x)  d
3186          (%o6)             [0, y(x) %e     (-- (z(x)))]
3187                                             dx
3188          (%i7) antidiff (expr, x, y(x));
3189                            /
3190                            [        z(x)  d
3191          (%o7)             I y(x) %e     (-- (z(x))) dx
3192                            ]              dx
3193                            /
3194
3195 -- propriedade da class: atomgrad
3196
3197     'atomgrad' � a propriedade do gradiente at�mico de uma express�o.
3198     Essa propriedade � atribu�da por 'gradef'.
3199
3200 -- Fun��o da class: atvalue (<expr>, [<x_1> = <a_1>, ..., <x_m> =
3201          <a_m>], <c>)
3202 -- Fun��o da class: atvalue (<expr>, <x_1> = <a_1>, <c>)
3203     Atribui o valor <c> a <expr> no ponto '<x> = <a>'.  Tipicamente
3204     valores de extremidade s�o estabelecidos por esse mecanismo.
3205
3206     <expr> � a fun��o de avalia��o, '<f>(<x_1>, ..., <x_m>)', ou uma
3207     derivada, 'diff (<f>(<x_1>, ..., <x_m>), <x_1>, <n_1>, ..., <x_n>,
3208     <n_m>)' na qual os argumentos da fun��o explicitamente aparecem.
3209     <n_i> � a ordem de diferencia��o com rela��o a <x_i>.
3210
3211     O ponto no qual o 'atvalue' � estabelecido � dado pela lista de
3212     equa��es '[<x_1> = <a_1>, ..., <x_m> = <a_m>]'.  Se existe uma
3213     vari�vel simples <x_1>, uma �nica equa��o pode ser dada sem ser
3214     contida em uma lista.
3215
3216     'printprops ([<f_1>, <f_2>, ...], atvalue)' mostra os 'atvalues'
3217     das fun��es '<f_1>, <f_2>, ...' como especificado por chamadas a
3218     'atvalue'.  'printprops (<f>, atvalue)' mostra os 'atvalues' de uma
3219     fun��o <f>.  'printprops (all, atvalue)' mostra os 'atvalue's de
3220     todas as fun��es para as quais 'atvalue's s�o definidos.
3221
3222     Os simbolos '@1', '@2', ...  representam as vari�veis <x_1>, <x_2>,
3223     ...  quando 'atvalue's s�o mostrados.
3224
3225     'atvalue' avalia seus argumentos.  'atvalue' retorna <c>, o
3226     'atvalue'.
3227
3228     Exemplos:
3229
3230          (%i1) atvalue (f(x,y), [x = 0, y = 1], a^2);
3231                                          2
3232          (%o1)                          a
3233          (%i2) atvalue ('diff (f(x,y), x), x = 0, 1 + y);
3234          (%o2)                        @2 + 1
3235          (%i3) printprops (all, atvalue);
3236                                          !
3237                            d             !
3238                           --- (f(@1, @2))!       = @2 + 1
3239                           d@1            !
3240                                          !@1 = 0
3241
3242                                               2
3243                                    f(0, 1) = a
3244
3245          (%o3)                         done
3246          (%i4) diff (4*f(x,y)^2 - u(x,y)^2, x);
3247                            d                          d
3248          (%o4)  8 f(x, y) (-- (f(x, y))) - 2 u(x, y) (-- (u(x, y)))
3249                            dx                         dx
3250          (%i5) at (%, [x = 0, y = 1]);
3251                                                   !
3252                        2              d           !
3253          (%o5)     16 a  - 2 u(0, 1) (-- (u(x, y))!            )
3254                                       dx          !
3255                                                   !x = 0, y = 1
3256
3257 -- Fun��o da class: cartan -
3258     O c�lculo exterior de formas diferenciais � uma ferramenta b�sica
3259     de geometria diferencial desenvolvida por Elie Cartan e tem
3260     importantes aplica��es na teoria das equa��es diferenciais
3261     parciais.  O pacote 'cartan' implementa as fun��es 'ext_diff' e
3262     'lie_diff', juntamente com os operadores '~' (produto da cunha) e
3263     '|' (contra��o de uma forma com um vector.)  Digite 'demo (tensor)'
3264     para ver uma breve descri��o desses comandos juntamente com
3265     exemplos.
3266
3267     'cartan' foi implementado por F.B. Estabrook e H.D. Wahlquist.
3268
3269 -- Fun��o da class: del (<x>)
3270     'del (<x>)' representa a diferencial da vari�vel x.
3271
3272     'diff' retorna uma express�o contendo 'del' se uma vari�vel
3273     independente n�o for especificada.  Nesse caso, o valor de retorno
3274     � a ent�o chamada "diferencial total".
3275
3276     Exemplos:
3277
3278          (%i1) diff (log (x));
3279                                       del(x)
3280          (%o1)                        ------
3281                                         x
3282          (%i2) diff (exp (x*y));
3283                               x y              x y
3284          (%o2)            x %e    del(y) + y %e    del(x)
3285          (%i3) diff (x*y*z);
3286          (%o3)         x y del(z) + x z del(y) + y z del(x)
3287
3288 -- Fun��o da class: delta (<t>)
3289     A fun��o Delta de Dirac.
3290
3291     Correntemente somente 'laplace' sabe sobre a fun��o 'delta'.
3292
3293     Exemplo:
3294
3295          (%i1) laplace (delta (t - a) * sin(b*t), t, s);
3296          Is  a  positive, negative, or zero?
3297
3298          p;
3299                                             - a s
3300          (%o1)                   sin(a b) %e
3301
3302 -- Vari�vel da class: dependencies
3303     Valor por omiss�o: '[]'
3304
3305     'dependencies' � a lista de �tomos que possuem depend�ncias
3306     funcionais, atribu�das por 'depends' ou 'gradef'.  A lista
3307     'dependencies' � cumulativa: cada chamada a 'depends' ou a 'gradef'
3308     anexa �tens adicionais.
3309
3310     Veja 'depends' e 'gradef'.
3311
3312 -- Fun��o da class: depends (<f_1>, <x_1>, ..., <f_n>, <x_n>)
3313     Declara depend�cias funcionais entre vari�veis para o prop�sito de
3314     calcular derivadas.  Na aus�ncia de depend�cias declaradas, 'diff
3315     (f, x)' retorna zero.  Se 'depends (f, x)' for declarada, 'diff (f,
3316     x)' retorna uma derivada simb�lica (isto �, um substantivo 'diff').
3317
3318     Cada argumento <f_1>, <x_1>, etc., pode ser o nome de uma vari�vel
3319     ou array, ou uma lista de nomes.  Todo elemento de <f_i> (talvez
3320     apenas um elemento simples) � declarado para depender de todo
3321     elemento de <x_i> (talvez apenas um elemento simples).  Se algum
3322     <f_i> for o nome de um array ou cont�m o nome de um array, todos os
3323     elementos do array dependem de <x_i>.
3324
3325     'diff' reconhece depend�ncias indirectas estabelecidas por
3326     'depends' e aplica a regra da cadeia nesses casos.
3327
3328     'remove (<f>, dependency)' remove todas as depend�ncias declaradas
3329     para <f>.
3330
3331     'depends' retorna uma lista de depend�ncias estabelecidas.  As
3332     depend�ncias s�o anexadas � vari�vel global 'dependencies'.
3333     'depends' avalia seus argumentos.
3334
3335     'diff' � o �nico comando Maxima que reconhece depend�ncias
3336     estabelecidas por 'depends'.  Outras fun��es ('integrate',
3337     'laplace', etc.)  somente reconhecem depend�ncias explicitamente
3338     representadas por seus argumentos.  Por exemplo, 'integrate' n�o
3339     reconhece a depend�ncia de 'f' sobre 'x' a menos que explicitamente
3340     representada como 'integrate (f(x), x)'.
3341
3342          (%i1) depends ([f, g], x);
3343          (%o1)                     [f(x), g(x)]
3344          (%i2) depends ([r, s], [u, v, w]);
3345          (%o2)               [r(u, v, w), s(u, v, w)]
3346          (%i3) depends (u, t);
3347          (%o3)                        [u(t)]
3348          (%i4) dependencies;
3349          (%o4)      [f(x), g(x), r(u, v, w), s(u, v, w), u(t)]
3350          (%i5) diff (r.s, u);
3351                                   dr           ds
3352          (%o5)                    -- . s + r . --
3353                                   du           du
3354
3355          (%i6) diff (r.s, t);
3356                                dr du           ds du
3357          (%o6)                 -- -- . s + r . -- --
3358                                du dt           du dt
3359
3360          (%i7) remove (r, dependency);
3361          (%o7)                         done
3362          (%i8) diff (r.s, t);
3363                                          ds du
3364          (%o8)                       r . -- --
3365                                          du dt
3366
3367 -- Vari�vel de op��o da class: derivabbrev
3368     Valor por omiss�o: 'false'
3369
3370     Quando 'derivabbrev' for 'true', derivadas simb�licas (isto �,
3371     substantivos 'diff') s�o mostradas como subscritos.  De outra
3372     forma, derivadas s�o mostradas na nota��o de Leibniz 'dy/dx'.
3373
3374 -- Fun��o da class: derivdegree (<expr>, <y>, <x>)
3375     Retorna o maior grau de uma derivada da vari�vel dependente <y> com
3376     rela��o � vari�vel independente <x> ocorrendo em <expr>.
3377
3378     Exemplo:
3379          (%i1) 'diff (y, x, 2) + 'diff (y, z, 3) + 'diff (y, x) * x^2;
3380                                   3     2
3381                                  d y   d y    2 dy
3382          (%o1)                   --- + --- + x  --
3383                                    3     2      dx
3384                                  dz    dx
3385          (%i2) derivdegree (%, y, x);
3386          (%o2)                           2
3387
3388 -- Fun��o da class: derivlist (<var_1>, ..., <var_k>)
3389     Causa somente diferencia��es com rela��o �s vari�veis indicadas,
3390     dentro do comando 'ev'.
3391
3392 -- Vari�vel de op��o da class: derivsubst
3393     Valor por omiss�o: 'false'
3394
3395     Quando 'derivsubst' for 'true', uma substiru���o n�o sint�tica tais
3396     como 'subst (x, 'diff (y, t), 'diff (y, t, 2))' retorna ''diff (x,
3397     t)'.
3398
3399 -- Fun��o da class: diff (<expr>, <x_1>, <n_1>, ..., <x_m>, <n_m>)
3400 -- Fun��o da class: diff (<expr>, <x>, <n>)
3401 -- Fun��o da class: diff (<expr>, <x>)
3402 -- Fun��o da class: diff (<expr>)
3403     Retorna uma derivada ou diferencial de <expr> com rela��o a alguma
3404     ou todas as vari�veis em <expr>.
3405
3406     'diff (<expr>, <x>, <n>)' retorna a <n>'�sima derivada de <expr>
3407     com rela��o a <x>.
3408
3409     'diff (<expr>, <x_1>, <n_1>, ..., <x_m>, <n_m>)' retorna a derivada
3410     parcial mista de <expr> com rela��o a <x_1>, ..., <x_m>.  Isso �
3411     equivalente a 'diff (... (diff (<expr>, <x_m>, <n_m>) ...), <x_1>,
3412     <n_1>)'.
3413
3414     'diff (<expr>, <x>)' retorna a primeira derivada de <expr> com
3415     rela��o a uma vari�vel <x>.
3416
3417     'diff (<expr>)' retorna a diferencial total de <expr>, isto �, a
3418     soma das derivadas de <expr> com rela��o a cada uma de suas
3419     vari�veis vezes a diferencial 'del' de cada vari�vel.  Nenhuma
3420     simplifica��o adicional de 'del' � oferecida.
3421
3422     A forma substantiva de 'diff' � requerida em alguns contextos, tal
3423     como declarando uma equa��o diferencial.  Nesses casos, 'diff' pode
3424     ser colocado ap�strofo (com ''diff') para retornar a forma
3425     substantiva em lugar da realiza��o da diferencia��o.
3426
3427     Quando 'derivabbrev' for 'true', derivadas s�o mostradas como
3428     subscritos.  De outra forma, derivadas s�o mostradas na nota��o de
3429     Leibniz, 'dy/dx'.
3430
3431     Exemplos:
3432
3433          (%i1) diff (exp (f(x)), x, 2);
3434                               2
3435                        f(x)  d               f(x)  d         2
3436          (%o1)       %e     (--- (f(x))) + %e     (-- (f(x)))
3437                                2                   dx
3438                              dx
3439          (%i2) derivabbrev: true$
3440          (%i3) 'integrate (f(x, y), y, g(x), h(x));
3441                                   h(x)
3442                                  /
3443                                  [
3444          (%o3)                   I     f(x, y) dy
3445                                  ]
3446                                  /
3447                                   g(x)
3448          (%i4) diff (%, x);
3449                 h(x)
3450                /
3451                [
3452          (%o4) I     f(x, y)  dy + f(x, h(x)) h(x)  - f(x, g(x)) g(x)
3453                ]            x                     x                  x
3454                /
3455                 g(x)
3456
3457     Para o pacote tensor, as seguintes modifica��es foram incorporadas:
3458
3459     (1) As derivadas de quaisquer objectos indexados em <expr> ter�o as
3460     vari�veis <x_i> anexadas como argumentos adicionais.  Ent�o todos
3461     os �ndices de derivada ser�o ordenados.
3462
3463     (2) As vari�veis <x_i> podem ser inteiros de 1 at� o valor de uma
3464     vari�vel 'dimension' [valor padr�o: 4].  Isso far� com que a
3465     diferencia��o seja conclu�da com rela��o aos <x_i>'�simos membros
3466     da lista 'coordinates' que pode ser escolhida para uma lista de
3467     nomes de coordenadas, e.g., '[x, y, z, t]'.  Se 'coordinates' for
3468     associada a uma vari�vel at�mica, ent�o aquela vari�vel subscrita
3469     por <x_i> ser� usada para uma vari�vel de diferencia��o.  Isso
3470     permite um array de nomes de coordenadas ou nomes subscritos como
3471     'X[1]', 'X[2]', ...  sejam usados.  Se 'coordinates' n�o foram
3472     atribu�das um valor, ent�o as vari�veis seram tratadas como em (1)
3473     acima.
3474
3475 -- S�mbolo especial da class: diff
3476
3477     Quando 'diff' est� presente como um 'evflag' em chamadas para 'ev',
3478     Todas as diferencia��es indicadas em 'expr' s�o realizdas.
3479
3480 -- Fun��o da class: dscalar (<f>)
3481     Aplica o d'Alembertiano escalar para a fun��o escalar <f>.
3482
3483     'load ("ctensor")' chama essa fun��o.
3484
3485 -- Fun��o da class: express (<expr>)
3486
3487     Expande o substantivo do operador diferencial em express�es em
3488     termos de derivadas parciais.  'express' reconhece os operadores
3489     'grad', 'div', 'curl', 'laplacian'.  'express' tamb�m expande o
3490     produto do X '~'.
3491
3492     Derivadas simb�licas (isto �, substantivos 'diff') no valor de
3493     retorno de 'express' podem ser avaliadas inclu�ndo 'diff' na
3494     chamada � fun��o 'ev' ou na linha de comando.  Nesse contexto,
3495     'diff' age como uma 'evfun'.
3496
3497     'load ("vect")' chama essa fun��o.
3498
3499     Exemplos:
3500
3501          (%i1) load ("vect")$
3502          (%i2) grad (x^2 + y^2 + z^2);
3503                                        2    2    2
3504          (%o2)                  grad (z  + y  + x )
3505          (%i3) express (%);
3506                 d    2    2    2   d    2    2    2   d    2    2    2
3507          (%o3) [-- (z  + y  + x ), -- (z  + y  + x ), -- (z  + y  + x )]
3508                 dx                 dy                 dz
3509          (%i4) ev (%, diff);
3510          (%o4)                    [2 x, 2 y, 2 z]
3511          (%i5) div ([x^2, y^2, z^2]);
3512                                        2   2   2
3513          (%o5)                   div [x , y , z ]
3514          (%i6) express (%);
3515                             d    2    d    2    d    2
3516          (%o6)              -- (z ) + -- (y ) + -- (x )
3517                             dz        dy        dx
3518          (%i7) ev (%, diff);
3519          (%o7)                    2 z + 2 y + 2 x
3520          (%i8) curl ([x^2, y^2, z^2]);
3521                                         2   2   2
3522          (%o8)                   curl [x , y , z ]
3523          (%i9) express (%);
3524                 d    2    d    2   d    2    d    2   d    2    d    2
3525          (%o9) [-- (z ) - -- (y ), -- (x ) - -- (z ), -- (y ) - -- (x )]
3526                 dy        dz       dz        dx       dx        dy
3527          (%i10) ev (%, diff);
3528          (%o10)                      [0, 0, 0]
3529          (%i11) laplacian (x^2 * y^2 * z^2);
3530                                            2  2  2
3531          (%o11)                laplacian (x  y  z )
3532          (%i12) express (%);
3533                   2                2                2
3534                  d     2  2  2    d     2  2  2    d     2  2  2
3535          (%o12)  --- (x  y  z ) + --- (x  y  z ) + --- (x  y  z )
3536                    2                2                2
3537                  dz               dy               dx
3538          (%i13) ev (%, diff);
3539                                2  2      2  2      2  2
3540          (%o13)             2 y  z  + 2 x  z  + 2 x  y
3541          (%i14) [a, b, c] ~ [x, y, z];
3542          (%o14)                [a, b, c] ~ [x, y, z]
3543          (%i15) express (%);
3544          (%o15)          [b z - c y, c x - a z, a y - b x]
3545
3546 -- Fun��o da class: gradef (<f>(<x_1>, ..., <x_n>), <g_1>, ..., <g_m>)
3547 -- Fun��o da class: gradef (<a>, <x>, <expr>)
3548     Define as derivadas parciais (i.e., os componentes do gradiente) da
3549     fun��o <f> ou vari�vel <a>.
3550
3551     'gradef (<f>(<x_1>, ..., <x_n>), <g_1>, ..., <g_m>)' define
3552     'd<f>/d<x_i>' como <g_i>, onde <g_i> � uma express�o; <g_i> pode
3553     ser uma chamada de fun��o, mas n�o o nome de uma fun��o.  O n�mero
3554     de derivadas parciais <m> pode ser menor que o n�mero de argumentos
3555     <n>, nesses casos derivadas s�o definidas com rela��o a <x_1> at�
3556     <x_m> somente.
3557
3558     'gradef (<a>, <x>, <expr>)' define uma derivada de vari�vel <a> com
3559     rela��o a <x> como <expr>.  Isso tamb�m estabelece a depend�ncia de
3560     <a> sobre <x> (via 'depends (<a>, <x>)').
3561
3562     O primeiro argumento '<f>(<x_1>, ..., <x_n>)' ou <a> � acompanhado
3563     de ap�strofo, mas os argumentos restantes <g_1>, ..., <g_m> s�o
3564     avaliados.  'gradef' retorna a fun��o ou vari�vel para as quais as
3565     derivadas parciais s�o definidas.
3566
3567     'gradef' pode redefinir as derivadas de fun��es internas do Maxima.
3568     Por exemplo, 'gradef (sin(x), sqrt (1 - sin(x)^2))' redefine uma
3569     derivada de 'sin'.
3570
3571     'gradef' n�o pode definir derivadas parciais para um fun��o
3572     subscrita.
3573
3574     'printprops ([<f_1>, ..., <f_n>], gradef)' mostra as derivadas
3575     parciais das fun��es <f_1>, ..., <f_n>, como definidas por
3576     'gradef'.
3577
3578     'printprops ([<a_n>, ..., <a_n>], atomgrad)' mostra as derivadas
3579     parciais das vari�veis <a_n>, ..., <a_n>, como definidas por
3580     'gradef'.
3581
3582     'gradefs' � a lista de fun��es para as quais derivadas parciais
3583     foram definidas por 'gradef'.  'gradefs' n�o inclui quaisquer
3584     vari�veis para quais derivadas parciais foram definidas por
3585     'gradef'.
3586
3587     Gradientes s�o necess�rios quando, por exemplo, uma fun��o n�o �
3588     conhecida explicitamente mas suas derivadas primeiras s�o e isso �
3589     desejado para obter derivadas de ordem superior.
3590
3591 -- Vari�vel de sistema da class: gradefs
3592     Valor por omiss�o: '[]'
3593
3594     'gradefs' � a lista de fun��es para as quais derivadas parciais
3595     foram definidas por 'gradef'.  'gradefs' n�o inclui quaisquer
3596     vari�veis para as quais derivadas parciais foram deinidas por
3597     'gradef'.
3598
3599 -- Fun��o da class: laplace (<expr>, <t>, <s>)
3600     Tenta calcular a transformada de Laplace de <expr> com rela��o a
3601     uma vari�vel <t> e par�metro de transforma��o <s>.  Se 'laplace'
3602     n�o pode achar uma solu��o, um substantivo ''laplace' � retornado.
3603
3604     'laplace' reconhece em <expr> as fun��es 'delta', 'exp', 'log',
3605     'sin', 'cos', 'sinh', 'cosh', e 'erf', tamb�m 'derivative',
3606     'integrate', 'sum', e 'ilt'.  Se algumas outras fun��es estiverem
3607     presente, 'laplace' pode n�o ser habilitada a calcular a
3608     tranformada.
3609
3610     <expr> pode tamb�m ser uma equa��o linear, diferencial de
3611     coeficiente contante no qual caso o 'atvalue' da vari�vel
3612     dependente � usado.  O requerido 'atvalue' pode ser fornecido ou
3613     antes ou depois da transformada ser calculada.  Uma vez que as
3614     condi��es iniciais devem ser especificadas em zero, se um teve
3615     condi��es de limite impostas em qualquer outro lugar ele pode impor
3616     essas sobre a solu��o geral e eliminar as constantes resolvendo a
3617     solu��o geral para essas e substituindo seus valores de volta.
3618
3619     'laplace' reconhece integrais de convolu��o da forma 'integrate
3620     (f(x) * g(t - x), x, 0, t)'; outros tipos de convolu��es n�o s�o
3621     reconhecidos.
3622
3623     Rela��es funcionais devem ser explicitamente representadas em
3624     <expr>; rela��es impl�citas, estabelecidas por 'depends', n�o s�o
3625     reconhecidas.  Isto �, se <f> depende de <x> e <y>, 'f (x, y)' deve
3626     aparecer em <expr>.
3627
3628     Veja tamb�m 'ilt', a transformada inversa de Laplace.
3629
3630     Exemplos:
3631
3632          (%i1) laplace (exp (2*t + a) * sin(t) * t, t, s);
3633                                      a
3634                                    %e  (2 s - 4)
3635          (%o1)                    ---------------
3636                                     2           2
3637                                   (s  - 4 s + 5)
3638          (%i2) laplace ('diff (f (x), x), x, s);
3639          (%o2)             s laplace(f(x), x, s) - f(0)
3640          (%i3) diff (diff (delta (t), t), t);
3641                                    2
3642                                   d
3643          (%o3)                    --- (delta(t))
3644                                     2
3645                                   dt
3646          (%i4) laplace (%, t, s);
3647                                      !
3648                         d            !         2
3649          (%o4)        - -- (delta(t))!      + s  - delta(0) s
3650                         dt           !
3651                                      !t = 0
3652
3653
3654File: maxima.info,  Node: Integra��o,  Next: Equa��es,  Prev: Diferencia��o,  Up: Top
3655
365620, Integra��o
3657**************
3658
3659* Menu:
3660
3661* Introdu��o a Integra��o::
3662* Defini��es para Integra��o::
3663* Introdu��o a QUADPACK::
3664* Defini��es para QUADPACK::
3665
3666
3667File: maxima.info,  Node: Introdu��o a Integra��o,  Next: Defini��es para Integra��o,  Prev: Integra��o,  Up: Integra��o
3668
366920.1, Introdu��o a Integra��o
3670=============================
3671
3672Maxima tem muitas rotinas para realizar integra��o.  A fun��o
3673'integrate' faz uso de muitas dessas.  Exite tamb�m o pacote 'antid',
3674que manuseia uma fun��o n�o especificada (e suas derivadas, certamente).
3675Para usos numericos, existe um conjunto de integradores adaptativos de
3676QUADPACK, a saber 'quad_qag', 'quad_qags', etc., os quais s�o descritos
3677sob o t�pico 'QUADPACK'.  Fun��es hipergeom�tricas est�o sendo
3678trabalhadas, veja 'specint' para detalhes.  Geralmente falando, Maxima
3679somente calcula integrais que sejam integr�veis em termos de "fun��es
3680elementares" (fun��es racionais, trigonometricas, logar�tmicas,
3681exponenciais, radicais, etc.)  e umas poucas extens�es (fun��o de erro,
3682dilogaritmo).  N� consegue calcular integrais em termos de fun��es
3683desconhecidas tais como 'g(x)' e 'h(x)'.
3684
3685
3686File: maxima.info,  Node: Defini��es para Integra��o,  Next: Introdu��o a QUADPACK,  Prev: Introdu��o a Integra��o,  Up: Integra��o
3687
368820.2, Defini��es para Integra��o
3689================================
3690
3691 -- Fun��o da class: changevar (<expr>, <f(x,y)>, <y>, <x>)
3692     Faz a mudan�a de vari�vel dada por '<f(x,y)> = 0' em todos os
3693     integrais que existam em <expr> com integra��o em rela��o a <x>.  A
3694     nova vari�vel � <y>.
3695
3696          (%i1) assume(a > 0)$
3697          (%i2) 'integrate (%e**sqrt(a*y), y, 0, 4);
3698                                4
3699                               /
3700                               [    sqrt(a) sqrt(y)
3701          (%o2)                I  %e                dy
3702                               ]
3703                               /
3704                                0
3705          (%i3) changevar (%, y-z^2/a, z, y);
3706                                0
3707                               /
3708                               [                abs(z)
3709                             2 I            z %e       dz
3710                               ]
3711                               /
3712                                - 2 sqrt(a)
3713          (%o3)            - ----------------------------
3714                                          a
3715
3716     Uma express�o contendo uma forma substantiva, tais como as
3717     inst�ncias de ''integrate' acima, pode ser avaliada por 'ev' com o
3718     sinalizador 'nouns'.  Por exemplo, a express�o retornada por
3719     'changevar' acima pode ser avaliada por 'ev (%o3, nouns)'.
3720
3721     'changevar' pode tamb�m ser usada para altera��es nos �ndices de
3722     uma soma ou de um produto.  No entanto, � de salientar que quando
3723     seja feita uma altera��o a uma soma ou produto, essa mudan�a dever�
3724     ser apenas uma desloca��o do �ndice, nomeadamente, 'i = j+ ...', e
3725     n�o uma fun��o de grau superior.  Por exemplo,
3726
3727          (%i4) sum (a[i]*x^(i-2), i, 0, inf);
3728                                   inf
3729                                   ====
3730                                   \         i - 2
3731          (%o4)                     >    a  x
3732                                   /      i
3733                                   ====
3734                                   i = 0
3735          (%i5) changevar (%, i-2-n, n, i);
3736                                  inf
3737                                  ====
3738                                  \               n
3739          (%o5)                    >      a      x
3740                                  /        n + 2
3741                                  ====
3742                                  n = - 2
3743
3744 -- Fun��o da class: dblint (<f>, <r>, <s>, <a>, <b>)
3745     Esta � uma rotina de integral duplo que foi escrita na linguagem de
3746     alto n�vel do Maxima sendo logo traduzida e compilada para
3747     linguagem de m�quina.  Use 'load (dblint)' para poder usar este
3748     pacote.  Esta fun��o usa o m�todo da regra de Simpson em ambas as
3749     dire��es x e y para calcular
3750
3751          /b /s(x)
3752          |  |
3753          |  |    f(x,y) dy dx
3754          |  |
3755          /a /r(x)
3756
3757     A fun��o <f> deve ser uma fun��o traduzida ou compilada de duas
3758     vari�veis, e <r> e <s> devem cada uma ser uma fun��o traduzida ou
3759     compilada de uma vari�vel, enquanto <a> e <b> devem ser n�meros em
3760     ponto flutuante.  A rotina tem duas vari�veis globais que
3761     determinam o n�mero de divis�es dos intervalos x e y: 'dblint_x' e
3762     'dblint_y', ambas as quais s�o inicialmente 10, e podem ser
3763     alteradas independentemente para outros valores inteiros (existem
3764     '2*dblint_x+1' pontos calculados na dire��o x , e '2*dblint_y+1' na
3765     dire��o y).  A rotina subdivide o eixo X e ent�o para cada valor de
3766     X primeiro calcula '<r>(x)' e '<s>(x)'; ent�o o eixo Y entre
3767     '<r>(x)' e '<s>(x)' � subdividido e o integral ao longo do eixo Y �
3768     executado usando a regra de Simpson; ent�o o integral ao longo do
3769     eixo X � conclu�do usando a regra de Simpson com os valores da
3770     fun��o sendo os integrais em Y. Esse procedimento pode ser
3771     numericamente inst�vel por v�rias raz�es, mas razo�velmente r�pido:
3772     evite usar este progrma sobre fun��es altamente oscilat�rias e
3773     fun��es com singularidades (p�los ou pontos de ramifica��o na
3774     regi�o).  Os integrais em Y dependem de quanto fragmentados
3775     '<r>(x)' e '<s>(x)' sejam; assim, se a dist�ncia '<s>(x) - <r>(x)'
3776     variar rapidamente com X, nesse ponto podr�o surgir erros
3777     substanciais provenientes de trunca��o com saltos de diferentes
3778     tamanhos nos v�rios integrais Y. Pode incrementar-se 'dblint_x' e
3779     'dblint_y' numa tentativa para melhorar a converg�ncia da regi�o,
3780     com um aumento no tempo de computa��o.  Os valores da fun��o n�o
3781     s�o guardados, portanto se a fun��o desperdi�r muito tempo, ter� de
3782     esperar pela re-computa��o cada vez que mudar qualquer coisa
3783     (pedimos desculpa por esse facto).  � necess�rio que as fun��es
3784     <f>, <r>, e <s> sejam ainda traduzidas ou compiladas previamente
3785     chamando 'dblint'.  Isso resultar� em ordens de magnitude de
3786     melhoramentos de velocidade sobre o c�digo interpretado em muitos
3787     casos!
3788
3789     'demo (dblint)' executa uma demonstra��o de 'dblint' aplicado a um
3790     problema exemplo.
3791
3792 -- Fun��o da class: defint (<expr>, <x>, <a>, <b>)
3793     Tenta calcular um integral definido.  'defint' � chamada por
3794     'integrate' quando limites de integra��o s�o especificados, i.e.,
3795     quando 'integrate' � chamado como 'integrate (<expr>, <x>, <a>,
3796     <b>)'.  Dessa forma do ponto de vista do utilizador, isso �
3797     suficiente para chamar 'integrate'.
3798
3799     'defint' retorna uma express�o simb�lica, e executa um dos dois: ou
3800     calcula o integral ou a forma substantiva do integral.  Veja
3801     'quad_qag' e fun��es rellacionadas para aproxima��o num�rica de
3802     integrais definidos.
3803
3804 -- Fun��o da class: erf (<x>)
3805     Representa a fun��o de erro, cuja derivada �:
3806     '2*exp(-x^2)/sqrt(%pi)'.
3807
3808 -- Vari�vel de op��o da class: erfflag
3809     Valor por omiss�o: 'true'
3810
3811     Quando 'erfflag' � 'false', previne 'risch' da introdu��o da fun��o
3812     'erf' na resposta se n�o houver nenhum no integrando para come�ar.
3813
3814 -- Fun��o da class: ilt (<expr>, <t>, <s>)
3815     Calcula a transforma��o inversa de Laplace de <expr> em rela��o a
3816     <t> e par�metro <s>.  <expr> deve ser uma raz�o de polin�mios cujo
3817     denominador tem somente factores lineares e quadr�ticos.  Usando a
3818     fun��es 'laplace' e 'ilt' juntas com as fun��es 'solve' ou
3819     'linsolve' o utilizador pode resolver uma diferencial simples ou
3820     uma equa��o integral de convolu��o ou um conjunto delas.
3821
3822          (%i1) 'integrate (sinh(a*x)*f(t-x), x, 0, t) + b*f(t) = t**2;
3823                        t
3824                       /
3825                       [                                    2
3826          (%o1)        I  f(t - x) sinh(a x) dx + b f(t) = t
3827                       ]
3828                       /
3829                        0
3830          (%i2) laplace (%, t, s);
3831                                         a laplace(f(t), t, s)   2
3832          (%o2)  b laplace(f(t), t, s) + --------------------- = --
3833                                                 2    2           3
3834                                                s  - a           s
3835          (%i3) linsolve ([%], ['laplace(f(t), t, s)]);
3836                                                  2      2
3837                                               2 s  - 2 a
3838          (%o3)     [laplace(f(t), t, s) = --------------------]
3839                                              5         2     3
3840                                           b s  + (a - a  b) s
3841          (%i4) ilt (rhs (first (%)), s, t);
3842          Is  a b (a b - 1)  positive, negative, or zero?
3843
3844          pos;
3845                         sqrt(a b (a b - 1)) t
3846                  2 cosh(---------------------)       2
3847                                   b               a t
3848          (%o4) - ----------------------------- + -------
3849                        3  2      2               a b - 1
3850                       a  b  - 2 a  b + a
3851
3852                                                                 2
3853                                                       + ------------------
3854                                                          3  2      2
3855                                                         a  b  - 2 a  b + a
3856
3857 -- Fun��o da class: integrate (<expr>, <x>)
3858 -- Fun��o da class: integrate (<expr>, <x>, <a>, <b>)
3859     Tenta s�mbolicamente calcular o integral de <expr> em rela��o a
3860     <x>.  'integrate (<expr>, <x>)' � um integral indefinido, enquanto
3861     'integrate (<expr>, <x>, <a>, <b>)' � um integral definido, com
3862     limites de integra��o <a> e <b>.  Os limites n�o poderam conter
3863     <x>, embora 'integrate' n�o imponha essa restri��o.  <a> n�o
3864     precisa ser menor que <b>.  Se <b> � igual a <a>, 'integrate'
3865     retorna zero.
3866
3867     Veja 'quad_qag' e fun��es relacionadas para aproxima��o num�rica de
3868     integrais definidos.  Veja 'residue' para computa��o de res�duos
3869     (integra��o complexa).  Veja 'antid' para uma forma alternativa de
3870     calcular integrais indefinidos.
3871
3872     O integral (uma express�o livre de 'integrate') � calculado se
3873     'integrate' for bem sucedido.  De outra forma o valor de retorno �
3874     a forma substantiva do integral (o operador com ap�strofo
3875     ''integrate') ou uma express�o contendo uma ou mais formas
3876     substantivas.  A forma substantiva de 'integrate' � apresentada com
3877     um s�mbolo de integra��o.
3878
3879     Em algumas circunst�ncias isso � �til para construir uma forma
3880     substantiva manualmente, colocando em 'integrate' um ap�strofo,
3881     e.g., ''integrate (<expr>, <x>)'.  Por exemplo, o integral pode
3882     depender de alguns par�metos que n�o est�o ainda calculados.  A
3883     forma substantiva pode ser aplicada a seus argumentos por 'ev (<i>,
3884     nouns)' onde <i> � a forma substantiva de interesse.
3885
3886     'integrate' calcula integrais definidos separadamente dos
3887     indefinidos, e utiliza uma gama de heur�sticas para simplificar
3888     cada caso.  Casos especiais de integrais definidos incluem limites
3889     de integra��o iguais a zero ou infinito ('inf' ou 'minf'), fun��es
3890     trigonom�tricas com limites de integra��o iguais a zero e '%pi' ou
3891     '2 %pi', fun��es racionais, integrais relacionados com as
3892     defini��es das fun��es 'beta' e 'psi', e alguns integrais
3893     logar�tmicos e trigonom�tricos.  O processamento de fun��es
3894     racionais pode incluir c�lculo de res�duos.  Se um caso especial
3895     aplic�vel n�o for encontrado, ser� feita uma tentativa para
3896     calcular o integral indefinido e avali�-lo nos limites de
3897     integra��o.  Isso pode incluir o c�lculo de um limite nos casos em
3898     que um dos limites do integral for para infinito ou menos infinito;
3899     veja tamb�m 'ldefint'.
3900
3901     Casos especiais de integrais indefinidos incluem fun��es
3902     trigonom�tricas, exponenciais e fun��es logar�tmicas, e fun��es
3903     racionais.  'integrate' pode tamb�m fazer uso de uma pequena tabela
3904     de integais elementares.
3905
3906     'integrate' pode realizar uma mudan�a de vari�vel se o integrando
3907     tiver a forma 'f(g(x)) * diff(g(x), x)'.  'integrate' tenta achar
3908     uma subexpress�o 'g(x)' de forma que a derivada de 'g(x)' divida o
3909     integrando.  Essa busca pode fazer uso de derivadas definidas pela
3910     fun��o 'gradef'.  Veja tamb�m 'changevar' e 'antid'.
3911
3912     Se nenhum dos procedimentos heur�sticos conseguir calcular o
3913     integral indefinido, o algoritmo de Risch � executado.  O
3914     sinalizador 'risch' pode ser utilizado como um par�metro para 'ev',
3915     ou na linha de comando, nomeadamente, 'ev (integrate (<expr>, <x>),
3916     risch)' ou 'integrate (<expr>, <x>), risch'.  Se 'risch' estiver
3917     presente, 'integrate' chamar� a fun��o 'risch' sem tentar
3918     heur�sticas primeiro.  Veja tamb�m 'risch'.
3919
3920     'integrate' trabalha somente com rela��es funcionais representadas
3921     explicitamente com a nota��o 'f(x)'.  'integrate' n�o respeita
3922     depend�ncias implicitas estabelecidas pela fun��o 'depends'.
3923     'integrate' pode necessitar conhecer alguma propriedade de um
3924     par�metro no integrando.  'integrate' ir� primeiro consultar a base
3925     de dados do 'assume', e , se a vari�vel de interesse n�o est� l�,
3926     'integrate' perguntar� ao utilizador.  Dependendo da pergunta,
3927     respostas adequadas s�o 'yes;' ou 'no;', ou 'pos;', 'zero;', ou
3928     'neg;'.
3929
3930     'integrate' n�o �, por padr�o, declarada ser linear.  Veja
3931     'declare' e 'linear'.
3932
3933     'integrate' tenta integra��o por partes somente em uns poucos casos
3934     especiais.
3935
3936     Exemplos:
3937
3938        * Integrais definidos e indefinidos elementares.
3939
3940               (%i1) integrate (sin(x)^3, x);
3941                                          3
3942                                       cos (x)
3943               (%o1)                   ------- - cos(x)
3944                                          3
3945               (%i2) integrate (x/ sqrt (b^2 - x^2), x);
3946                                                2    2
3947               (%o2)                    - sqrt(b  - x )
3948               (%i3) integrate (cos(x)^2 * exp(x), x, 0, %pi);
3949                                              %pi
3950                                          3 %e      3
3951               (%o3)                      ------- - -
3952                                             5      5
3953               (%i4) integrate (x^2 * exp(-x^2), x, minf, inf);
3954                                           sqrt(%pi)
3955               (%o4)                       ---------
3956                                               2
3957
3958        * Uso de 'assume' e d�vida interativa.
3959
3960               (%i1) assume (a > 1)$
3961               (%i2) integrate (x**a/(x+1)**(5/2), x, 0, inf);
3962                   2 a + 2
3963               Is  -------  an integer?
3964                      5
3965
3966               no;
3967               Is  2 a - 3  positive, negative, or zero?
3968
3969               neg;
3970                                                  3
3971               (%o2)                  beta(a + 1, - - a)
3972                                                  2
3973
3974        * Mudan�a de vari�vel.  Existem duas mudan�as de vari�vel nesse
3975          exemplo: uma usando a derivada estabelecida por 'gradef', e
3976          uma usando a deriva��o 'diff(r(x))' de uma fun��o n�o
3977          especificada 'r(x)'.
3978
3979               (%i3) gradef (q(x), sin(x**2));
3980               (%o3)                         q(x)
3981               (%i4) diff (log (q (r (x))), x);
3982                                     d               2
3983                                    (-- (r(x))) sin(r (x))
3984                                     dx
3985               (%o4)                ----------------------
3986                                           q(r(x))
3987               (%i5) integrate (%, x);
3988               (%o5)                     log(q(r(x)))
3989
3990        * O resultado cont�m a forma substantiva ''integrate'.  Neste
3991          exemplo, Maxima pode extrair um factor do denominador de uma
3992          fun��o racional, mas n�o pode factorizar o restante ou de
3993          outra forma achar o seu integral.  'grind' mostra a forma
3994          substantiva ''integrate' no resultado.  Veja tamb�m
3995          'integrate_use_rootsof' para mais informa�es sobre integrais
3996          de fun��es racionais.
3997
3998               (%i1) expand ((x-4) * (x^3+2*x+1));
3999                                   4      3      2
4000               (%o1)              x  - 4 x  + 2 x  - 7 x - 4
4001               (%i2) integrate (1/%, x);
4002                                             /  2
4003                                             [ x  + 4 x + 18
4004                                             I ------------- dx
4005                                             ]  3
4006                                log(x - 4)   / x  + 2 x + 1
4007               (%o2)            ---------- - ------------------
4008                                    73               73
4009               (%i3) grind (%);
4010               log(x-4)/73-('integrate((x^2+4*x+18)/(x^3+2*x+1),x))/73$
4011
4012        * Definindo uma fun��o em termos de um integral.  O corpo de uma
4013          fun��o n�o � avaliado quando a fun��o � definida.  Dessa forma
4014          o corpo de 'f_1' nesse exemplo cont�m a forma substantiva de
4015          'integrate'.  O operador de doi ap�strofos seguidos '''' faz
4016          com que o integral seja avaliado, e o resultado se
4017          transforme-se no corpo de 'f_2'.
4018
4019               (%i1) f_1 (a) := integrate (x^3, x, 1, a);
4020                                                    3
4021               (%o1)           f_1(a) := integrate(x , x, 1, a)
4022               (%i2) ev (f_1 (7), nouns);
4023               (%o2)                          600
4024               (%i3) /* Note parentheses around integrate(...) here */
4025                     f_2 (a) := ''(integrate (x^3, x, 1, a));
4026                                                  4
4027                                                 a    1
4028               (%o3)                   f_2(a) := -- - -
4029                                                 4    4
4030               (%i4) f_2 (7);
4031               (%o4)                          600
4032
4033 -- Vari�vel de sistema da class: integration_constant_counter
4034     Valor por omiss�o: 0
4035
4036     'integration_constant_counter' � um contador que � actualizado a
4037     cada vez que uma constante de integra��o (nomeada pelo Maxima, por
4038     exemplo, 'integrationconstant1') � introduzida numa express�o
4039     obtida ap�s a integra��o indefinida de uma equa��o.
4040
4041 -- Vari�vel de op��o da class: integrate_use_rootsof
4042     Valor por omiss�o: 'false'
4043
4044     Quando 'integrate_use_rootsof' � 'true' e o denominador de uma
4045     fun��o racional n�o pode ser factorizado, 'integrate' retorna o
4046     integral em uma forma que � uma soma sobre as ra�zes (n�o
4047     conhecidas ainda) do denominador.
4048
4049     Por exemplo, com 'integrate_use_rootsof' escolhido para 'false',
4050     'integrate' retorna um integral n�o resolvido de uma fun��o
4051     racional na forma substantiva:
4052
4053          (%i1) integrate_use_rootsof: false$
4054          (%i2) integrate (1/(1+x+x^5), x);
4055                  /  2
4056                  [ x  - 4 x + 5
4057                  I ------------ dx                            2 x + 1
4058                  ]  3    2                2            5 atan(-------)
4059                  / x  - x  + 1       log(x  + x + 1)          sqrt(3)
4060          (%o2)   ----------------- - --------------- + ---------------
4061                          7                 14             7 sqrt(3)
4062
4063     Agora vamos escolher o sinalizador para ser true e a parte n�o
4064     resolvida do integral ser� escrito como uma soma sobre as ra�zes do
4065     denominador da fun��o racional:
4066
4067          (%i3) integrate_use_rootsof: true$
4068          (%i4) integrate (1/(1+x+x^5), x);
4069                ====        2
4070                \       (%r4  - 4 %r4 + 5) log(x - %r4)
4071                 >      -------------------------------
4072                /                    2
4073                ====            3 %r4  - 2 %r4
4074                                  3      2
4075                %r4 in rootsof(%r4  - %r4  + 1, %r4)
4076          (%o4) ----------------------------------------------------------
4077                         7
4078
4079                                                                       2 x + 1
4080                                                   2            5 atan(-------)
4081                                              log(x  + x + 1)          sqrt(3)
4082                                            - --------------- + ---------------
4083                                                    14             7 sqrt(3)
4084
4085     Alternativamente o utilizador pode calcular as ra�zes do
4086     denominador separadamente, e ent�o expressar o integrando em termos
4087     dessas ra�zes, e.g., '1/((x - a)*(x - b)*(x - c))' ou '1/((x^2 -
4088     (a+b)*x + a*b)*(x - c))' se o denominador for um polin�mio c�bico.
4089     Algumas vezes isso ajudar� Maxima a obter resultados mais �teis.
4090
4091 -- Fun��o da class: ldefint (<expr>, <x>, <a>, <b>)
4092     Tenta calcular o integral definido de <expr> pelo uso de 'limit'
4093     para avaliar o integral indefinido <expr> em rela��o a <x> no
4094     limite superior <b> e no limite inferior <a>.  Se isso falha para
4095     calcular o integral definido, 'ldefint' retorna uma express�o
4096     contendo limites como formas substantivas.
4097
4098     'ldefint' n�o � chamada por 'integrate', ent�o executando 'ldefint
4099     (<expr>, <x>, <a>, <b>)' pode retornar um resultado diferente de
4100     'integrate (<expr>, <x>, <a>, <b>)'.  'ldefint' sempre usa o mesmo
4101     m�todo para avaliar o integral definido, enquanto 'integrate' pode
4102     utilizar v�rias heur�sticas e pode reconhecer alguns casos
4103     especiais.
4104
4105 -- Fun��o da class: potential (<givengradient>)
4106     O c�lculo faz uso da vari�vel global 'potentialzeroloc[0]' que deve
4107     ser 'nonlist' ou da forma
4108
4109          [indeterminatej=express�oj, indeterminatek=express�ok, ...]
4110
4111     O formador sendo equivalente para a express�o nonlist para todos os
4112     lados direitos-manuseados mais tarde.  Os lados direitos indicados
4113     s�o usados como o limite inferior de integra��o.  O sucesso das
4114     integra��es pode depender de seus valores e de sua ordem.
4115     'potentialzeroloc' � inicialmente escolhido para 0.
4116
4117 -- Fun��o da class: residue (<expr>, <z>, <z_0>)
4118     Calcula o res�duo no plano complexo da express�o <expr> quando a
4119     vari�vel <z> assumes o valor <z_0>.  O res�duo � o coeficiente de
4120     '(<z> - <z_0>)^(-1)' nas s�ries de Laurent para <expr>.
4121
4122          (%i1) residue (s/(s**2+a**2), s, a*%i);
4123                                          1
4124          (%o1)                           -
4125                                          2
4126          (%i2) residue (sin(a*x)/x**4, x, 0);
4127                                           3
4128                                          a
4129          (%o2)                         - --
4130                                          6
4131
4132 -- Fun��o da class: risch (<expr>, <x>)
4133     Integra <expr> em rela��o a <x> usando um caso transcendental do
4134     algoritmo de Risch.  (O caso alg�brico do algoritmo de Risch foi
4135     implementado.)  Isso actualmente manuseia os casos de exponenciais
4136     aninhadas e logaritmos que a parte principal de 'integrate' n�o
4137     pode fazer.  'integrate' ir� aplicar automaticamente 'risch' se
4138     dados esses casos.
4139
4140     'erfflag', se 'false', previne 'risch' da introdu��o da fun��o
4141     'erf' na resposta se n�o for achado nenhum no integrando para
4142     come�ar.
4143
4144          (%i1) risch (x^2*erf(x), x);
4145                                                                  2
4146                       3                      2                - x
4147                  %pi x  erf(x) + (sqrt(%pi) x  + sqrt(%pi)) %e
4148          (%o1)   -------------------------------------------------
4149                                        3 %pi
4150          (%i2) diff(%, x), ratsimp;
4151                                       2
4152          (%o2)                       x  erf(x)
4153
4154 -- Fun��o da class: tldefint (<expr>, <x>, <a>, <b>)
4155     Equivalente a 'ldefint' com 'tlimswitch' escolhido para 'true'.
4156
4157
4158File: maxima.info,  Node: Introdu��o a QUADPACK,  Next: Defini��es para QUADPACK,  Prev: Defini��es para Integra��o,  Up: Integra��o
4159
416020.3, Introdu��o a QUADPACK
4161===========================
4162
4163QUADPACK � uma colec��o de fun��es para a�lculo num�rico de integrais
4164definidos unidimensionais.  O pacote QUADPACK resultou da jun��o de um
4165projeto de R. Piessens (1), E. de Doncker (2), C. Ueberhuber (3), e D.
4166Kahaner (4).
4167
4168A biblioteca QUADPACK incl�da no Maxima � uma tradu��o autom�tica (feita
4169atrav�s do programa 'f2cl') do c�digo fonte em de QUADPACK como aparece
4170na SLATEC Common Mathematical Library, Vers�o 4.1 (5).  A biblioteca
4171Fortran SLATEC � datada de Julho de 1993, mas as fun��es QUADPACK foram
4172escritas alguns anos antes.  Existe outra vers�o de QUADPACK em Netlib
4173(6); n�o est� claro no que aquela vers�o difere da vers�o existente em
4174SLATEC.
4175
4176As fun��es QUADPACK inclu�das no Maxima s�o toda autom�ticas, no sentido
4177de que essas fun��es tentam calcular um resultado para uma precis�o
4178espec�fica, requerendo um n�mero n�o especificado de avalia��es de
4179fun��o.  A tradu��o do Lisp do Maxima da iblioteca QUADPACK tamb�m
4180inclui algumas fun�e~s n�o autom�ticas, mas elas n�o s�o expostas a
4181n�vel de Maxima.
4182
4183Informa��o adicionalsobre a bilioteca QUADPACK pode ser encontrada no
4184livro do QUADPACK (7).
4185
418620.3.1, Overview
4187----------------
4188
4189'quad_qag'
4190     Integra��o de uma fun��o gen�rica sobre um intervalo finito.
4191     'quad_qag' implementa um integrador adaptativo globalmente simples
4192     usando a estrat�gia de Aind (Piessens, 1973).  O chamador pode
4193     escolher entre 6 pares de formulas da quadratura de Gauss-Kronrod
4194     para a componente de avalia��o da regra.  As regras de alto grau
4195     s�o adequadas para integrandos fortemente oscilantes.
4196
4197'quad_qags'
4198     Integra��o de uma fun��o gen�rica sob um intervalo finito.
4199     'quad_qags' implementa subdivis�o de intervalos globalmente
4200     adaptativos com extrapola��o (de Doncker, 1978) por meio do
4201     algoritmo de Epsilon (Wynn, 1956).
4202
4203'quad_qagi'
4204     Integra��o de uma fun��o gen�rica sobre um intervalo finito ou
4205     semi-finito.  O intervalo � mapeado sobre um intervalo finito e
4206     ent�o a mesma estrat�gia de 'quad_qags' � aplicada.
4207
4208'quad_qawo'
4209     Integra��o de cos(omega x) f(x) ou sin(omega x) f(x) sobre um
4210     intervalo finito, onde omega � uma constante.  A componente de
4211     avalia��o da regra � baseada na t�cnica modificada de
4212     Clenshaw-Curtis.  'quad_qawo' aplica subdivis�o adaptativa com
4213     extrapola��o, similar a 'quad_qags'.
4214
4215'quad_qawf'
4216     Calcula uma transforma��o de co-seno de Fourier ou de um seno de
4217     Fourier sobre um intervalo semi-finito.  O mesmo aproxima como
4218     'quad_qawo' aplicado sobre intervalos finitos sucessivos, e
4219     acelera��o de converg�ncia por meio d algor�timo de Epsilon (Wynn,
4220     1956) aplicado a s�ries de contribui��es de integrais.
4221
4222'quad_qaws'
4223     Integra��o de w(x) f(x) sobre um intervalo finito [a, b], onde w �
4224     uma fun��o da forma (x - a)^alpha (b - x)^beta v(x) e v(x) � 1 ou
4225     log(x - a) ou log(b - x) ou log(x - a) log(b - x), e alpha > -1 e
4226     beta > -1.  Auma estrat�gia de subdivis�o adaptativa � aplicada,
4227     com integra��o modificada de Clenshaw-Curtis sobre os subintervalos
4228     que possuem a ou b.
4229
4230'quad_qawc'
4231     Calcula o valor principal de Cauchy de f(x)/(x - c) sobre um
4232     intervalo finito (a, b) e um c especificado.  A estrat�gia �
4233     globalmente adaptativa, e a integra��o modificada de
4234     Clenshaw-Curtis � usada sobre subamplitudes que possu�rem o ponto x
4235     = c.
4236
4237   ---------- Footnotes ----------
4238
4239   (1) Applied Mathematics and Programming Division, K.U. Leuven
4240
4241   (2) Applied Mathematics and Programming Division, K.U. Leuven
4242
4243   (3) Institut fur Mathematik, T.U. Wien
4244
4245   (4) National Bureau of Standards, Washington, D.C., U.S.A
4246
4247   (5) http://www.netlib.org/slatec
4248
4249   (6) http://www.netlib.org/quadpack
4250
4251   (7) R. Piessens, E. de Doncker-Kapenga, C.W. Uberhuber, e D.K.
4252Kahaner.  QUADPACK: A Subroutine Package for Automatic Integration.
4253Berlin: Springer-Verlag, 1983, ISBN 0387125531.
4254
4255
4256File: maxima.info,  Node: Defini��es para QUADPACK,  Prev: Introdu��o a QUADPACK,  Up: Integra��o
4257
425820.4, Defini��es para QUADPACK
4259==============================
4260
4261 -- Fun��o da class: quad_qag (<f(x)>, <x>, <a>, <b>, <chave>, <epsrel>,
4262          <limite>)
4263 -- Fun��o da class: quad_qag (<f>, <x>, <a>, <b>, <chave>, <epsrel>,
4264          <limite>)
4265
4266     Integra��o de uma fun��o gen�rica sobre um intervalo finito.
4267     'quad_qag' implementa um integrador adaptativo globalmente simples
4268     usando a estrat�gia de Aind (Piessens, 1973).  O chamador pode
4269     escolher entre 6 pares de f�rmulas da quadratura de Gauss-Kronrod
4270     para a componente de avalia��o da regra.  As regras de alto n�vel
4271     s�o adequadas para integrandos fortemente oscilat�rios.
4272
4273     'quad_qag' calcula o integral
4274
4275     integrate (f(x), x, a, b)
4276
4277     A fun��o a ser integrada � <f(x)>, com vari�vel dependente <x>, e a
4278     fun��o � para ser integrada entre os limites <a> e <b>.  <chave> �
4279     o integrador a ser usado e pode ser um inteiro entre 1 e 6,
4280     inclusive.  O valor de <chave> selecciona a ordem da regra de
4281     integra��o de Gauss-Kronrod.  Regra de alta ordem s�o adequadas
4282     para integrandos fortemente oscilat�rios.
4283
4284     O integrando pode ser especidficado como o nome de uma fun��o
4285     Maxima ou uma fun��o Lisp ou um operador, uma express�o lambda do
4286     Maxima, ou uma express�o geral do Maxima.
4287
4288     A integra��o num�rica � conclu�da adaptativamente pela subdivis�o a
4289     regi�o de integra��o at� que a precis�o desejada for completada.
4290
4291     Os argumentos opcionais <epsrel> e <limite> s�o o erro relativo
4292     desejado e o n�mero m�ximo de subintervalos respectivamente.
4293     <epsrel> padr�o em 1e-8 e <limite> � 200.
4294
4295     'quad_qag' retorna uma lista de quatro elementos:
4296
4297        * uma aproxima��o para o integral,
4298        * o erro absoluto estimado da aproxima��o,
4299        * o n�mero de avalia��es do integrando,
4300        * um c�digo de erro.
4301
4302     O c�digo de erro (quarto elemento do valor de retorno) pode ter os
4303     valores:
4304
4305     '0'
4306          se nenhum problema foi encontrado;
4307     '1'
4308          se foram utilizados muitos subintervalos;
4309     '2'
4310          se for detectato um erro de arredondamento excessivo;
4311     '3'
4312          se o integrando se comportar muito mal;
4313     '6'
4314          se a entrada n�o for v�lida.
4315
4316     Exemplos:
4317
4318          (%i1) quad_qag (x^(1/2)*log(1/x), x, 0, 1, 3);
4319          (%o1)    [.4444444444492108, 3.1700968502883E-9, 961, 0]
4320          (%i2) integrate (x^(1/2)*log(1/x), x, 0, 1);
4321                                          4
4322          (%o2)                           -
4323                                          9
4324
4325 -- Fun��o da class: quad_qags (<f(x)>, <x>, <a>, <b>, <epsrel>,
4326          <limite>)
4327 -- Fun��o da class: quad_qags (<f>, <x>, <a>, <b>, <epsrel>, <limite>)
4328
4329     Integra��o de uma fun��o geral sobre um intervalo finito.
4330     'quad_qags' implementa subdivis�o de intervalo globalmente
4331     adaptativa com extrapola��o (de Doncker, 1978) atrav�s do algoritmo
4332     de (Wynn, 1956).
4333
4334     'quad_qags' calcula o integral
4335
4336     integrate (f(x), x, a, b)
4337
4338     A fun��o a ser integrada � <f(x)>, com vari�vel dependente <x>, e a
4339     fun��o � para ser integrada entre os limites <a> e <b>.
4340
4341     O integrando pode ser especidficado como o nome de uma fun��o
4342     Maxima ou uma fun��o Lisp ou um operador, uma express�o lambda do
4343     Maxima, ou uma express�o geral do Maxima.
4344
4345     Os argumentos opcionais <epsrel> e <limite> s�o o erro relativo
4346     desejado e o n�mero m�ximo de subintervalos, respectivamente.
4347     <epsrel> padr�o em 1e-8 e <limite> � 200.
4348
4349     'quad_qags' retorna uma lista de quatro elementos:
4350
4351        * uma aproxima��o para o integral,
4352        * o erro absoluto estimado da aproxima��o,
4353        * o n�mero de avalia��es do integrando,
4354        * um c�digo de erro.
4355
4356     O c�digo de erro (quarto elemento do valor de retorno) pode ter os
4357     valores:
4358
4359     '0'
4360          nenhum problema foi encontrado;
4361     '1'
4362          foram utilizados muitos subintervalos;
4363     '2'
4364          foi detectato um erro de arredondamento excessivo;
4365     '3'
4366          o integrando comporta-se muito mal;
4367     '4'
4368          n�o houve converg�ncia
4369     '5'
4370          o integral provavelmente � divergente, o converge lentamente
4371     '6'
4372          a entrada n�o foi v�lida.
4373
4374     Exemplos:
4375
4376          (%i1) quad_qags (x^(1/2)*log(1/x), x, 0 ,1);
4377          (%o1)   [.4444444444444448, 1.11022302462516E-15, 315, 0]
4378
4379     Note que 'quad_qags' � mais preciso e eficiente que 'quad_qag' para
4380     esse integrando.
4381
4382 -- Fun��o da class: quad_qagi (<f(x)>, <x>, <a>, <inftype>, <epsrel>,
4383          <limite>)
4384 -- Fun��o da class: quad_qagi (<f>, <x>, <a>, <inftype>, <epsrel>,
4385          <limite>)
4386
4387     Integra��o de uma fun��o gen�rica sobre um intervalo finito ou
4388     semi-finito.  O intervalo � mapeado sobre um intervalo finito e
4389     ent�o a mesma estrat�gia que em 'quad_qags' � aplicada.
4390
4391     'quad_qagi' avalia um dos seguintes integrais
4392
4393     integrate (f(x), x, minf, inf)
4394
4395     integrate (f(x), x, minf, a)
4396
4397     integrate (f(x), x, a, minf, inf)
4398
4399     usando a rotina Quadpack QAGI. A fun��o a ser integrada � <f(x)>,
4400     com vari�vel dependente <x>, e a fun��o � para ser integrada sobre
4401     um intervalo infinito.
4402
4403     O integrando pode ser especidficado como o nome de uma fun��o
4404     Maxima ou uma fun��o Lisp ou um operador, uma express�o lambda do
4405     Maxima, ou uma express�o geral do Maxima.
4406
4407     O par�metro <inftype> determina o intervalo de integra��o como
4408     segue:
4409
4410     'inf'
4411          O intervalo vai de <a> ao infinito positivo.
4412     'minf'
4413          O intervalo vai do infinito negativo at� <a>.
4414     'both'
4415          O intervalo corresponde a toda reta real.
4416
4417     Os argumentos opcionais <epsrel> e <limite> s�o o erro relativo
4418     desejado e o n�mero maximo de subintervalos, respectivamente.
4419     <epsrel> padr�o para 1e-8 e <limite> � 200.
4420
4421     'quad_qagi' retorna uma lista de quatro elementos:
4422
4423        * uma aproxima��o para o integral,
4424        * o erro absoluto estimado da aproxima��o,
4425        * o n�mero de avalia��es do integrando,
4426        * um c�digo de erro.
4427
4428     O c�digo de erro (quarto elemento do valor de retorno) pode ter os
4429     valores:
4430
4431     '0'
4432          nenhum problema foi encontrado;
4433     '1'
4434          foram utilizados muitos subintervalos;
4435     '2'
4436          foi detectato um erro de arredondamento excessivo;
4437     '3'
4438          o integrando comporta-se muito mal;
4439     '4'
4440          n�o houve converg�ncia
4441     '5'
4442          o integral provavelmente � divergente, o converge lentamente
4443     '6'
4444          a entrada n�o foi v�lida.
4445
4446     Exemplos:
4447
4448          (%i1) quad_qagi (x^2*exp(-4*x), x, 0, inf);
4449          (%o1)        [0.03125, 2.95916102995002E-11, 105, 0]
4450          (%i2) integrate (x^2*exp(-4*x), x, 0, inf);
4451                                         1
4452          (%o2)                          --
4453                                         32
4454
4455 -- Fun��o da class: quad_qawc (<f(x)>, <x>, <c>, <a>, <b>, <epsrel>,
4456          <limite>)
4457 -- Fun��o da class: quad_qawc (<f>, <x>, <c>, <a>, <b>, <epsrel>,
4458          <limite>)
4459
4460     Calcula o valor principal de Cauchy de f(x)/(x - c) over a finite
4461     interval.  A estrat�gia � globalmente adaptativa, e a integra��o de
4462     Clenshaw-Curtis modificada � usada sobre as subamplitudes que
4463     possu�rem o ponto x = c.
4464
4465     'quad_qawc' calcula o valor principal de Cauchy de
4466
4467     integrate (f(x)/(x - c), x, a, b)
4468
4469     usando a rotina Quadpack QAWC. A fun��o a ser integrada �
4470     '<f(x)>/(<x> - <c>)', com vari�vel dependente <x>, e a fun��o �
4471     para ser integrada sobre o intervalo que vai de <a> at� <b>.
4472
4473     O integrando pode ser especidficado como o nome de uma fun��o
4474     Maxima ou uma fun��o Lisp ou um operador, uma express�o lambda do
4475     Maxima, ou uma express�o geral do Maxima.
4476
4477     Os argumentos opcionais <epsrel> e <limite> s�o o erro relativo
4478     desejado e o m�ximo n�mero de subintervalos, respectivamente.
4479     <epsrel> padr�o para 1e-8 e <limite> � 200.
4480
4481     'quad_qawc' retorna uma lista de quatro elementos:
4482
4483        * uma aproxima��o para o integral,
4484        * o erro absoluto estimado da aproxima��o,
4485        * o n�mero de avalia��es do integrando,
4486        * um c�digo de erro.
4487
4488     O c�digo de erro (quarto elemento do valoor de retorno) pode ter os
4489     valores:
4490
4491     '0'
4492          nenhum problema foi encontrado;
4493     '1'
4494          foram utilizados muitos subintervalos;
4495     '2'
4496          foi detectato um erro de arredondamento excessivo;
4497     '3'
4498          o integrando comporta-se muito mal;
4499     '6'
4500          a entrada n�o foi v�lida.
4501
4502     Exemplos:
4503
4504          (%i1) quad_qawc (2^(-5)*((x-1)^2+4^(-5))^(-1), x, 2, 0, 5);
4505          (%o1)    [- 3.130120337415925, 1.306830140249558E-8, 495, 0]
4506          (%i2) integrate (2^(-alpha)*(((x-1)^2 + 4^(-alpha))*(x-2))^(-1), x, 0, 5);
4507          Principal Value
4508                                 alpha
4509                  alpha       9 4                 9
4510                 4      log(------------- + -------------)
4511                                alpha           alpha
4512                            64 4      + 4   64 4      + 4
4513          (%o2) (-----------------------------------------
4514                                  alpha
4515                               2 4      + 2
4516
4517                   3 alpha                       3 alpha
4518                   -------                       -------
4519                      2            alpha/2          2          alpha/2
4520                2 4        atan(4 4       )   2 4        atan(4       )   alpha
4521              - --------------------------- - -------------------------)/2
4522                          alpha                        alpha
4523                       2 4      + 2                 2 4      + 2
4524          (%i3) ev (%, alpha=5, numer);
4525          (%o3)                    - 3.130120337415917
4526
4527 -- Fun��o da class: quad_qawf (<f(x)>, <x>, <a>, <omega>, <trig>,
4528          <epsabs>, <limit>, <maxp1>, <limlst>)
4529 -- Fun��o da class: quad_qawf (<f>, <x>, <a>, <omega>, <trig>,
4530          <epsabs>, <limit>, <maxp1>, <limlst>)
4531
4532     Calcula uma transforma��o de co-seno de Fourier ou de um seno de
4533     Fourier sobre um intervalo semi-finito.  usando a fun��o QAWF do
4534     pacote Quadpack.  A mesma aproxima como em 'quad_qawo' quando
4535     aplicada sobre intervalos finitos sucessivos, e acelera��o de
4536     converg�ncia por meio d algor�timo de Epsilon (Wynn, 1956) aplicado
4537     a s�ries de contribui��es de integrais.
4538
4539     'quad_qawf' calcula o integral
4540
4541     integrate (f(x)*w(x), x, a, inf)
4542
4543     A fun��o peso w � seleccionada por <trig>:
4544
4545     'cos'
4546          w(x) = cos (omega x)
4547     'sin'
4548          w(x) = sin (omega x)
4549
4550     O integrando pode ser especidficado como o nome de uma fun��o
4551     Maxima ou uma fun��o Lisp ou um operador, uma express�o lambda do
4552     Maxima, ou uma express�o geral do Maxima.
4553
4554     Os argumentos opcionais s�o:
4555
4556     'epsabs'
4557          Erro absoluto de aproxima��o desejado.  Padr�o � 1d-10.
4558     'limit'
4559          Tamanho de array interno de trabalho.  (<limit> - <limlst>)/2
4560          � o maximo n�mero de subintervalos para usar.  O Padr�o � 200.
4561     'maxp1'
4562          O n�mero m�ximo dos momentos de Chebyshev.  Deve ser maior que
4563          0.  O padr�o � 100.
4564     'limlst'
4565          Limite superior sobre n�mero de ciclos.  Deve ser maior ou
4566          igual a 3.  O padr�o � 10.
4567
4568     <epsabs> e <limit> s�o o erro relativo desejado e o n�mero maximo
4569     de subintervalos, respectivamente.  <epsrel> padr�o para 1e-8 e
4570     <limit> � 200.
4571
4572     'quad_qawf' retorna uma lista de quatro elementos:
4573
4574        * uma aproxima��o para o integral,
4575        * o erro absoluto estimado da aproxima��o,
4576        * o n�mero de avalia��es do integrando,
4577        * um c�digo de erro.
4578
4579     O c�digo de erro (quarto elemento do valor de retorno) pode ter os
4580     valores:
4581
4582     '0'
4583          nenhum problema foi encontrado;
4584     '1'
4585          foram utilizados muitos subintervalos;
4586     '2'
4587          foi detectato um erro de arredondamento excessivo;
4588     '3'
4589          o integrando comporta-se muito mal;
4590     '6'
4591          a entrada n�o foi v�lida.
4592
4593     Exemplos:
4594
4595          (%i1) quad_qawf (exp(-x^2), x, 0, 1, 'cos);
4596          (%o1)   [.6901942235215714, 2.84846300257552E-11, 215, 0]
4597          (%i2) integrate (exp(-x^2)*cos(x), x, 0, inf);
4598                                    - 1/4
4599                                  %e      sqrt(%pi)
4600          (%o2)                   -----------------
4601                                          2
4602          (%i3) ev (%, numer);
4603          (%o3)                   .6901942235215714
4604
4605 -- Fun��o da class: quad_qawo (<f(x)>, <x>, <a>, <b>, <omega>, <trig>,
4606          <epsabs>, <limite>, <maxp1>, <limlst>)
4607 -- Fun��o da class: quad_qawo (<f>, <x>, <a>, <b>, <omega>, <trig>,
4608          <epsabs>, <limite>, <maxp1>, <limlst>)
4609
4610     Integra��o de cos(omega x) f(x) ou sin(omega x) f(x) sobre um
4611     intervalo finito, onde omega � uma constante.  A componente de
4612     avalia��o da regra � baseada na t�cnica modificada de
4613     Clenshaw-Curtis.  'quad_qawo' aplica subdivis�o adaptativa com
4614     extrapola��o, similar a 'quad_qags'.
4615
4616     'quad_qawo' calcula o integral usando a rotina Quadpack QAWO:
4617
4618     integrate (f(x)*w(x), x, a, b)
4619
4620     A fun��o peso w � seleccionada por <trig>:
4621
4622     'cos'
4623          w(x) = cos (omega x)
4624     'sin'
4625          w(x) = sin (omega x)
4626
4627     O integrando pode ser especidficado como o nome de uma fun��o
4628     Maxima ou uma fun��o Lisp ou um operador, uma express�o lambda do
4629     Maxima, ou uma express�o geral do Maxima.
4630
4631     Os argumentos opcionais s�o:
4632
4633     'epsabs'
4634          Erro absoluto desejado de aproxima��o.  O Padr�o � 1d-10.
4635     'limite'
4636          Tamanho do array interno de trabalho.  (<limite> - <limlst>)/2
4637          � o n�mero m�ximo de subintervalos a serem usados.  Default �
4638          200.
4639     'maxp1'
4640          N�mero m�ximo dos momentos de Chebyshev.  Deve ser maior que
4641          0.  O padr�o � 100.
4642     'limlst'
4643          Limite superior sobre o n�mero de ciclos.  Deve ser maior que
4644          ou igual a 3.  O padr�o � 10.
4645
4646     <epsabs> e <limite> s�o o erro relativo desejado e o n�mero m�ximo
4647     de subintervalos, respectivamente.  <epsrel> o padr�o � 1e-8 e
4648     <limite> � 200.
4649
4650     'quad_qawo' retorna uma lista de quatro elementos:
4651
4652        * uma aproxima��o para o integral,
4653        * o erro absoluto estimado da aproxima��o,
4654        * o n�mero de avalia��es do integrando,
4655        * um c�digo de erro.
4656
4657     O c�digo de erro (quarto elemento do valor de retorno) pode ter os
4658     valores:
4659
4660     '0'
4661          nenhum problema foi encontrado;
4662     '1'
4663          foram utilizados muitos subintervalos;
4664     '2'
4665          foi detectato um erro de arredondamento excessivo;
4666     '3'
4667          o integrando comporta-se muito mal;
4668     '6'
4669          a entrada n�o foi v�lida.
4670
4671     Exemplos:
4672
4673          (%i1) quad_qawo (x^(-1/2)*exp(-2^(-2)*x), x, 1d-8, 20*2^2, 1, cos);
4674          (%o1)     [1.376043389877692, 4.72710759424899E-11, 765, 0]
4675          (%i2) rectform (integrate (x^(-1/2)*exp(-2^(-alpha)*x) * cos(x), x, 0, inf));
4676                             alpha/2 - 1/2            2 alpha
4677                  sqrt(%pi) 2              sqrt(sqrt(2        + 1) + 1)
4678          (%o2)   -----------------------------------------------------
4679                                         2 alpha
4680                                   sqrt(2        + 1)
4681          (%i3) ev (%, alpha=2, numer);
4682          (%o3)                     1.376043390090716
4683
4684 -- Fun��o da class: quad_qaws (<f(x)>, <x>, <a>, <b>, <alpha>, <beta>,
4685          <wfun>, <epsabs>, <limite>)
4686 -- Fun��o da class: quad_qaws (<f>, <x>, <a>, <b>, <alpha>, <beta>,
4687          <wfun>, <epsabs>, <limite>)
4688
4689     Integra��o de w(x) f(x) sobre um intervalo finito, onde w(x) � uma
4690     certa fun��o alg�brica ou logar�tmica.  Uma estrat�gia de
4691     subdivis�o globalmente adaptativa � aplicada, com integra��o
4692     modificada de Clenshaw-Curtis sobre os subintervalos que possu�rem
4693     os pontos finais dos intervalos de integra��o.
4694
4695     'quad_qaws' calcula o integral usando a rotina Quadpack QAWS:
4696
4697     integrate (f(x)*w(x), x, a, b)
4698
4699     A fun��o peso w � seleccionada por <wfun>:
4700
4701     '1'
4702          w(x) = (x - a)^alpha (b - x)^beta
4703     '2'
4704          w(x) = (x - a)^alpha (b - x)^beta log(x - a)
4705     '3'
4706          w(x) = (x - a)^alpha (b - x)^beta log(b - x)
4707     '4'
4708          w(x) = (x - a)^alpha (b - x)^beta log(x - a) log(b - x)
4709
4710     O integrando pode ser especificado como o nome de uma fun��o Maxima
4711     ou uma fun��o Lisp ou um operador, uma express�o lambda do Maxima,
4712     ou uma express�o geral do Maxima.
4713
4714     O argumentos opcionais s�o:
4715
4716     'epsabs'
4717          Erro absoluto desejado de aproxima��o.  O padr�o � 1d-10.
4718     'limite'
4719          Tamanho do array interno de trabalho.  (<limite> - <limlst>)/2
4720          � o n�mero m�ximo de subintervalos para usar.  O padr�o � 200.
4721
4722     <epsabs> e <limit> s�o o erro relativo desejado e o n�mero m�ximo
4723     de subintervalos, respectivamente.  <epsrel> o padr�o � 1e-8 e
4724     <limite> � 200.
4725
4726     'quad_qaws' retorna uma lista de quatro elementos:
4727
4728        * uma aproxima��o para o integral,
4729        * o erro absoluto estimado da aproxima��o,
4730        * o n�mero de avalia��es do integrando,
4731        * um c�digo de erro.
4732
4733     O c�digo de erro (quarto elemento do valor de retorno) pode ter os
4734     valores:
4735
4736     '0'
4737          nenhum problema foi encontrado;
4738     '1'
4739          foram utilizados muitos subintervalos;
4740     '2'
4741          foi detectato um erro de arredondamento excessivo;
4742     '3'
4743          o integrando comporta-se muito mal;
4744     '6'
4745          a entrada n�o foi v�lida.
4746
4747     Exemplos:
4748
4749          (%i1) quad_qaws (1/(x+1+2^(-4)), x, -1, 1, -0.5, -0.5, 1);
4750          (%o1)     [8.750097361672832, 1.24321522715422E-10, 170, 0]
4751          (%i2) integrate ((1-x*x)^(-1/2)/(x+1+2^(-alpha)), x, -1, 1);
4752                 alpha
4753          Is  4 2      - 1  positive, negative, or zero?
4754
4755          pos;
4756                                    alpha         alpha
4757                             2 %pi 2      sqrt(2 2      + 1)
4758          (%o2)              -------------------------------
4759                                         alpha
4760                                      4 2      + 2
4761          (%i3) ev (%, alpha=4, numer);
4762          (%o3)                     8.750097361672829
4763
4764
4765File: maxima.info,  Node: Equa��es,  Next: Equa��es Diferenciais,  Prev: Integra��o,  Up: Top
4766
476721, Equa��es
4768************
4769
4770* Menu:
4771
4772* Defini��es para Equa��es::
4773
4774
4775File: maxima.info,  Node: Defini��es para Equa��es,  Prev: Equa��es,  Up: Equa��es
4776
477721.1, Defini��es para Equa��es
4778==============================
4779
4780 -- Vari�vel da class: %rnum_list
4781     Valor por omiss�o: '[]'
4782
4783     '%rnum_list' � a lista de vari�veis introduzidas em solu��es por
4784     'algsys'.  '%r' vari�veis S�o adicionadas a '%rnum_list' na ordem
4785     em que forem criadas.  Isso � conveniente para fazer substitui��es
4786     dentro da solu��o mais tarde.  � recomendado usar essa lista em
4787     lugar de fazer 'concat ('%r, j)'.
4788
4789 -- Vari�vel da class: algexact
4790     Valor por omiss�o: 'false'
4791
4792     'algexact' afecta o comportamento de 'algsys' como segue:
4793
4794     Se 'algexact' � 'true', 'algsys' sempre chama 'solve' e ent�o usa
4795     'realroots' sobre falhas de 'solve'.
4796
4797     Se 'algexact' � 'false', 'solve' � chamada somente se o eliminante
4798     n�o for de uma vari�vel, ou se for uma quadr�tica ou uma
4799     biquadrada.
4800
4801     Dessa forma 'algexact: true' n�o garante solu��es exactas, apenas
4802     que 'algsys' tentar� primeiro pegar solu��es exactas, e somente
4803     retorna aproxima��es quando tudo mais falha.
4804
4805 -- Fun��o da class: algsys ([<expr_1>, ..., <expr_m>], [<x_1>, ...,
4806          <x_n>])
4807 -- Fun��o da class: algsys ([<eqn_1>, ..., <eqn_m>], [<x_1>, ...,
4808          <x_n>])
4809     Resolve polin�mios simult�neos <expr_1>, ..., <expr_m> ou equa��es
4810     polin�miais <eqn_1>, ..., <eqn_m> para as vari�veis <x_1>, ...,
4811     <x_n>.  Uma express�o <expr> � equivalente a uma equa��o '<expr> =
4812     0'.  Pode existir mais equa��es que vari�veis ou vice-versa.
4813
4814     'algsys' retorna uma lista de solu��es, com cada solu��o dada com
4815     uma lista de valores de estado das equa��es das vari�veis <x_1>,
4816     ..., <x_n> que satisfazem o sistema de equa��es.  Se 'algsys' n�o
4817     pode achar uma solu��o, uma lista vazia '[]' � retornada.
4818
4819     Os s�mbolos '%r1', '%r2', ..., s�o introduzidos tantos quantos
4820     forem necess�rios para representar par�metros arbitr�rios na
4821     solu��o; essas vari�veis s�o tamb�m anexadas � lista '%rnum_list'.
4822
4823     O m�todo usado � o seguinte:
4824
4825     (1) Primeiro as equa��es s�o factorizaadas e quebradas em
4826     subsistemas.
4827
4828     (2) Para cada subsistema <S_i>, uma equa��o <E> e uma vari�vel <x>
4829     s�o seleccionados.  A vari�vel � escolhida para ter o menor grau
4830     n�o zero.  Ent�o a resultante de <E> e <E_j> em rela��o a <x> �
4831     calculada para cada um das equa��es restantes <E_j> nos subsistemas
4832     <S_i>.  Isso retorna um novo subsistema <S_i'> em umas poucas
4833     vari�veis, como <x> tenha sido eliminada.  O processo agora retorna
4834     ao passo (1).
4835
4836     (3) Eventualmente, um subsistema consistindo de uma equa��o simples
4837     � obtido.  Se a equa��o � de v�rias vari�veis e aproxima��es na
4838     forma de n�meros em ponto flutuante n� tenham sido introduzidas,
4839     ent�o 'solve' � chamada para achar uma solu��o exacta.
4840
4841     Em alguns casos, 'solve' n�o est� habilitada a achar uma solu��o,
4842     ou se isso � feito a solu��o pode ser uma express�o express�o muito
4843     larga.
4844
4845     Se a equa��o � de uma �nica vari�vel e � ou linear, ou quadr�tica,
4846     ou biquadrada, ent�o novamente 'solve' � chamada se aproxima��es
4847     n�o tiverem sido introduzidas.  Se aproxima��es tiverem sido
4848     introduzidas ou a equa��o n�o � de uma �nica vari�vel e nem t�o
4849     pouco linear, quadratica, ou biquadrada, ent�o o comutador
4850     'realonly' � 'true', A fun��o 'realroots' � chamada para achar o
4851     valor real das solu��es.  Se 'realonly' � 'false', ent�o 'allroots'
4852     � chamada a qual procura por solu��es reais e complexas.
4853
4854     Se 'algsys' produz uma solu��o que tem poucos digitos
4855     significativos que o requerido, o utilizador pode escolher o valor
4856     de 'algepsilon' para um valor maior.
4857
4858     Se 'algexact' � escolhido para 'true', 'solve' ser� sempre chamada.
4859
4860     (4) Finalmente, as solu��es obtidas no passo (3) s�o substitu�das
4861     dentro dos n�veis pr�vios e o processo de solu��o retorna para (1).
4862
4863     Quando 'algsys' encontrar uma equa��o de v�rias vari�veis que
4864     cont�m aproxima��es em ponto flutuante (usualmente devido a suas
4865     falhas em achar solu��es exactas por um est�gio mais f�cil), ent�o
4866     n�o tentar� aplicar m�todos exatos para tais equa��es e em lugar
4867     disso imprime a mensagem: "'algsys' cannot solve - system too
4868     complicated."
4869
4870     Intera��es com 'radcan' podem produzir express�es largas ou
4871     complicadas.  Naquele caso, pode ser poss�vel isolar partes do
4872     resultado com 'pickapart' ou 'reveal'.
4873
4874     Ocasionalmente, 'radcan' pode introduzir uma unidade imagin�ria
4875     '%i' dentro de uma solu��o que � actualmente avaliada como real.
4876
4877     Exemplos:
4878
4879     ++
4880          (%i1) e1: 2*x*(1 - a1) - 2*(x - 1)*a2;
4881          (%o1)              2 (1 - a1) x - 2 a2 (x - 1)
4882          (%i2) e2: a2 - a1;
4883          (%o2)                        a2 - a1
4884          (%i3) e3: a1*(-y - x^2 + 1);
4885                                             2
4886          (%o3)                   a1 (- y - x  + 1)
4887          (%i4) e4: a2*(y - (x - 1)^2);
4888                                                 2
4889          (%o4)                   a2 (y - (x - 1) )
4890          (%i5) algsys ([e1, e2, e3, e4], [x, y, a1, a2]);
4891          (%o5) [[x = 0, y = %r1, a1 = 0, a2 = 0],
4892
4893                                            [x = 1, y = 0, a1 = 1, a2 = 1]]
4894          (%i6) e1: x^2 - y^2;
4895                                        2    2
4896          (%o6)                        x  - y
4897          (%i7) e2: -1 - y + 2*y^2 - x + x^2;
4898                                   2        2
4899          (%o7)                 2 y  - y + x  - x - 1
4900          (%i8) algsys ([e1, e2], [x, y]);
4901                           1            1
4902          (%o8) [[x = - -------, y = -------],
4903                        sqrt(3)      sqrt(3)
4904
4905                  1              1             1        1
4906          [x = -------, y = - -------], [x = - -, y = - -], [x = 1, y = 1]]
4907               sqrt(3)        sqrt(3)          3        3
4908
4909 -- Fun��o da class: allroots (<expr>)
4910 -- Fun��o da class: allroots (<eqn>)
4911     Calcula aproxima��es num�ricas de ra�zes reais e complexas do
4912     polin�mio <expr> ou equa��o polin�mial <eqn> de uma vari�vel.
4913
4914     O sinalizador 'polyfactor' quando 'true' faz com que 'allroots'
4915     factore o polin�mio sobre os n�meros reais se o polin�mio for real,
4916     ou sobre os n�meros complexos, se o polin�mio for complexo.
4917
4918     'allroots' pode retornar resultados imprecisos no caso de m�ltiplas
4919     ra�zes.  Se o polin�mio for real, 'allroots (%i*<p>)') pode
4920     retornar aproxima��es mais precisas que 'allroots (<p>)', como
4921     'allroots' invoca um algoritmo diferente naquele caso.
4922
4923     'allroots' rejeita expresso�es que n�o sejam polin�mios.  Isso
4924     requer que o numerador ap�s a classifica��o ('rat''ing) poder� ser
4925     um polin�mio, e isso requer que o denominador seja quando muito um
4926     n�mero complexo.  Com esse tipo resultado 'allroots' ir� sempre
4927     produzir uma express�o equivalente (mas factorizada), se
4928     'polyfactor' for 'true'.
4929
4930     Para polin�mios complexos um algoritmo por Jenkins e Traub � usado
4931     (Algorithm 419, Comm.  ACM, vol.  15, (1972), p.  97).  Para
4932     polin�mios reais o algoritmo usado � devido a Jenkins (Algorithm
4933     493, ACM TOMS, vol.  1, (1975), p.178).
4934
4935     Exemplos:
4936
4937          (%i1) eqn: (1 + 2*x)^3 = 13.5*(1 + x^5);
4938                                      3          5
4939          (%o1)              (2 x + 1)  = 13.5 (x  + 1)
4940          (%i2) soln: allroots (eqn);
4941          (%o2) [x = .8296749902129361, x = - 1.015755543828121,
4942
4943          x = .9659625152196369 %i - .4069597231924075,
4944
4945          x = - .9659625152196369 %i - .4069597231924075, x = 1.0]
4946          (%i3) for e in soln
4947                  do (e2: subst (e, eqn), disp (expand (lhs(e2) - rhs(e2))));
4948                                - 3.5527136788005E-15
4949
4950                               - 5.32907051820075E-15
4951
4952                   4.44089209850063E-15 %i - 4.88498130835069E-15
4953
4954                  - 4.44089209850063E-15 %i - 4.88498130835069E-15
4955
4956                                 3.5527136788005E-15
4957
4958          (%o3)                         done
4959          (%i4) polyfactor: true$
4960          (%i5) allroots (eqn);
4961          (%o5) - 13.5 (x - 1.0) (x - .8296749902129361)
4962
4963                                     2
4964           (x + 1.015755543828121) (x  + .8139194463848151 x
4965
4966           + 1.098699797110288)
4967
4968 -- Vari�vel da class: backsubst
4969     Valor por omiss�o: 'true'
4970
4971     Quando 'backsubst' � 'false', evita substitui��es em express�es
4972     anteriores ap�s as equa��es terem sido triangularizadas.  Isso pode
4973     ser de grande ajuda em problemas muito grandes onde substitui��o em
4974     express�es anteriores pode vir a causar a gera��o de express�es
4975     extremamente largas.
4976
4977 -- Vari�vel da class: breakup
4978     Valor por omiss�o: 'true'
4979
4980     Quando 'breakup' � 'true', 'solve' expressa solu��es de equa��es
4981     c�bicas e qu�rticas em termos de subexpress�es comuns, que s�o
4982     atribu�das a r�tulos de express�es interm�dias ('%t1', '%t2',
4983     etc.).  De outra forma, subexpress�es comuns n�o s�o identificadas.
4984
4985     'breakup: true' tem efeito somente quando 'programmode' � 'false'.
4986
4987     Exemplos:
4988
4989          (%i1) programmode: false$
4990          (%i2) breakup: true$
4991          (%i3) solve (x^3 + x^2 - 1);
4992
4993                                  sqrt(23)    25 1/3
4994          (%t3)                  (--------- + --)
4995                                  6 sqrt(3)   54
4996          Solution:
4997
4998                                                sqrt(3) %i   1
4999                                                ---------- - -
5000                          sqrt(3) %i   1            2        2   1
5001          (%t4)    x = (- ---------- - -) %t3 + -------------- - -
5002                              2        2            9 %t3        3
5003
5004                                                sqrt(3) %i   1
5005                                              - ---------- - -
5006                        sqrt(3) %i   1              2        2   1
5007          (%t5)    x = (---------- - -) %t3 + ---------------- - -
5008                            2        2             9 %t3         3
5009
5010                                             1     1
5011          (%t6)                  x = %t3 + ----- - -
5012                                           9 %t3   3
5013          (%o6)                    [%t4, %t5, %t6]
5014          (%i6) breakup: false$
5015          (%i7) solve (x^3 + x^2 - 1);
5016          Solution:
5017
5018                       sqrt(3) %i   1
5019                       ---------- - -
5020                           2        2        sqrt(23)    25 1/3
5021          (%t7) x = --------------------- + (--------- + --)
5022                       sqrt(23)    25 1/3    6 sqrt(3)   54
5023                    9 (--------- + --)
5024                       6 sqrt(3)   54
5025
5026                                                        sqrt(3) %i   1    1
5027                                                     (- ---------- - -) - -
5028                                                            2        2    3
5029
5030                     sqrt(23)    25 1/3  sqrt(3) %i   1
5031          (%t8) x = (--------- + --)    (---------- - -)
5032                     6 sqrt(3)   54          2        2
5033
5034                                                      sqrt(3) %i   1
5035                                                    - ---------- - -
5036                                                          2        2      1
5037                                                + --------------------- - -
5038                                                     sqrt(23)    25 1/3   3
5039                                                  9 (--------- + --)
5040                                                     6 sqrt(3)   54
5041
5042                      sqrt(23)    25 1/3             1             1
5043          (%t9)  x = (--------- + --)    + --------------------- - -
5044                      6 sqrt(3)   54          sqrt(23)    25 1/3   3
5045                                           9 (--------- + --)
5046                                              6 sqrt(3)   54
5047          (%o9)                    [%t7, %t8, %t9]
5048
5049 -- Fun��o da class: dimension (<eqn>)
5050 -- Fun��o da class: dimension (<eqn_1>, ..., <eqn_n>)
5051     'dimen' � um pacote de an�lise dimensional.  'load ("dimen")' chama
5052     esse pacote.  'demo ("dimen")' mostra uma cura demostra��o.
5053
5054 -- Vari�vel da class: dispflag
5055     Valor por omiss�o: 'true'
5056
5057     Se escolhida para 'false' dentro de um 'block' inibir� a
5058     visualiza��o da sa�da gerada pelas fun��es solve chamadas de dentro
5059     de 'block'.  Terminando 'block' com um sinal de dolar, $, escolhe
5060     'dispflag' para 'false'.
5061
5062 -- Fun��o da class: funcsolve (<eqn>, <g>(<t>))
5063     Retorna '[<g>(<t>) = ...]' ou '[]', dependendo de existir ou n�o
5064     uma fun��o racional '<g>(<t>)' satisfazendo <eqn>, que deve ser de
5065     primeira ordem, polin�mio linear em (para esse caso) '<g>(<t>)' e
5066     '<g>(<t>+1)'
5067
5068          (%i1) eqn: (n + 1)*f(n) - (n + 3)*f(n + 1)/(n + 1) = (n - 1)/(n + 2);
5069                                      (n + 3) f(n + 1)   n - 1
5070          (%o1)        (n + 1) f(n) - ---------------- = -----
5071                                           n + 1         n + 2
5072          (%i2) funcsolve (eqn, f(n));
5073
5074          Equa��es dependentes eliminadas:  (4 3)
5075                                             n
5076          (%o2)                f(n) = ---------------
5077                                      (n + 1) (n + 2)
5078
5079     Aten��o: essa � uma implementa��o muito rudimentar - muitas
5080     verifica��es de seguran�a e obviamente generaliza��es est�o
5081     aus�ntes.
5082
5083 -- Vari�vel da class: globalsolve
5084     Valor por omiss�o: 'false'
5085
5086     When 'globalsolve' for 'true', vari�veis para as quais as equa��es
5087     s�o resolvidas s�o atribuidas aos valores da solu��o encontrados
5088     por 'linsolve', e por 'solve' quando resolvendo duas ou mais
5089     equa��es lineares.  Quando 'globalsolve' for 'false', solu��es
5090     encontradas por 'linsolve' e por 'solve' quando resolvendo duas ou
5091     mais equa��es lineares s�o espressas como equa��es, e as vari�veis
5092     para as quais a equa��o foi resolvida n�o s�o atribuidas.
5093
5094     Quando resolvendo qualquer coisa outra que n�o duas equa��es
5095     lineares ou mais, 'solve' ignora 'globalsolve'.  Outras fun��es que
5096     resolvem equa��es (e.g., 'algsys') sempre ignoram 'globalsolve'.
5097
5098     Exemplos:
5099
5100          (%i1) globalsolve: true$
5101          (%i2) solve ([x + 3*y = 2, 2*x - y = 5], [x, y]);
5102          Solution
5103
5104                                           17
5105          (%t2)                        x : --
5106                                           7
5107
5108                                             1
5109          (%t3)                        y : - -
5110                                             7
5111          (%o3)                     [[%t2, %t3]]
5112          (%i3) x;
5113                                         17
5114          (%o3)                          --
5115                                         7
5116          (%i4) y;
5117                                           1
5118          (%o4)                          - -
5119                                           7
5120          (%i5) globalsolve: false$
5121          (%i6) kill (x, y)$
5122          (%i7) solve ([x + 3*y = 2, 2*x - y = 5], [x, y]);
5123          Solution
5124
5125                                           17
5126          (%t7)                        x = --
5127                                           7
5128
5129                                             1
5130          (%t8)                        y = - -
5131                                             7
5132          (%o8)                     [[%t7, %t8]]
5133          (%i8) x;
5134          (%o8)                           x
5135          (%i9) y;
5136          (%o9)                           y
5137
5138 -- Fun��o da class: ieqn (<ie>, <unk>, <tech>, <n>, <guess>)
5139     'inteqn' � um pacote para resolver equa��es integrais.  'load
5140     ("inteqn")' carrega esse pacote.
5141
5142     <ie> � a equa��o integral; <unk> � a fun��o desconhecida; <tech> �
5143     a t�cnica a ser tentada nesses dados acima (<tech> = 'first'
5144     significa: tente a primeira t�cnica que achar uma solu��o; <tech> =
5145     'all' significa: tente todas a t�cnicas aplic�veis); <n> � o n�mero
5146     m�ximo de termos a serem usados de 'taylor', 'neumann',
5147     'firstkindseries', ou 'fredseries' (isso � tamb�m o n�mero m�ximo
5148     de ciclos de recurss�o para o m�todo de diferencia��o); <guess> � o
5149     inicial suposto para 'neumann' ou 'firstkindseries'.
5150
5151     Valores padr�o do segundo at� o quinto par�metro s�o:
5152
5153     <unk>: '<p>(<x>)', onde <p> � a primeira fun��o encontrada em um
5154     integrando que � desconhecida para Maxima e <x> � a vari�vel que
5155     ocorre como um argumento para a primeira ocorr�ncia de <p> achada
5156     fora de uma integral no caso de equa��es 'secondkind' , ou �
5157     somente outra vari�vel ao lado da vari�vel de integra��o em
5158     equa��es 'firstkind'.  Se uma tentativa de procurar por <x> falha,
5159     o utilizador ser� perguntado para suprir a vari�vel independente.
5160
5161     tech: 'first'
5162
5163     n: 1
5164
5165     guess: 'none' o que far� com que 'neumann' e 'firstkindseries' use
5166     '<f>(<x>)' como uma suposi��o inicial.
5167
5168 -- Vari�vel de op��o da class: ieqnprint
5169     Valor por omiss�o: 'true'
5170
5171     'ieqnprint' governa o comportamento do resultado retornado pelo
5172     comando 'ieqn'.  Quando 'ieqnprint' � 'false', as listas retornadas
5173     pela fun��o 'ieqn' s�o da forma
5174
5175     [<solu��o>, <tecnica usada>, <nterms>, <sinalizador>]
5176
5177     onde <sinalizador> � retirado se a solu��o for exacta.
5178
5179     De outra forma, isso � a palavra 'approximate' ou 'incomplete'
5180     correspondendo � forma inexacta ou forma aberta de solu��o,
5181     respectivamente.  Se um m�todo de s�rie foi usado, <nterms> fornece
5182     o n�mero de termos usados (que poder� ser menor que os n dados para
5183     'ieqn' se ocorrer um erro evita a gera��o de termos adicionais).
5184
5185 -- Fun��o da class: lhs (<expr>)
5186     Retorna o lado esquerdo (isto �, o primeiro argumento) da express�o
5187     <expr>, quando o operador de <expr> for um dos operadores
5188     relacionais '< <= = # equal notequal >= >', um dos operadores de
5189     atribui��o ':= ::= : ::', ou um operadro infixo definido pelo
5190     utilizador, como declarado por meio de 'infix'.
5191
5192     Quando <expr> for um �tomo ou seu operador for alguma coisa que n�o
5193     esses listados acima, 'lhs' retorna <expr>.
5194
5195     Veja tamb�m 'rhs'.
5196
5197     Exemplos:
5198
5199          (%i1) e: aa + bb = cc;
5200          (%o1)                     bb + aa = cc
5201          (%i2) lhs (e);
5202          (%o2)                        bb + aa
5203          (%i3) rhs (e);
5204          (%o3)                          cc
5205          (%i4) [lhs (aa < bb), lhs (aa <= bb), lhs (aa >= bb), lhs (aa > bb)];
5206          (%o4)                   [aa, aa, aa, aa]
5207          (%i5) [lhs (aa = bb), lhs (aa # bb), lhs (equal (aa, bb)), lhs (notequal (aa, bb))];
5208          (%o5)                   [aa, aa, aa, aa]
5209          (%i6) e1: '(foo(x) := 2*x);
5210          (%o6)                     foo(x) := 2 x
5211          (%i7) e2: '(bar(y) ::= 3*y);
5212          (%o7)                    bar(y) ::= 3 y
5213          (%i8) e3: '(x : y);
5214          (%o8)                         x : y
5215          (%i9) e4: '(x :: y);
5216          (%o9)                        x :: y
5217          (%i10) [lhs (e1), lhs (e2), lhs (e3), lhs (e4)];
5218          (%o10)               [foo(x), bar(y), x, x]
5219          (%i11) infix ("][");
5220          (%o11)                         ][
5221          (%i12) lhs (aa ][ bb);
5222          (%o12)                         aa
5223
5224 -- Fun��o da class: linsolve ([<expr_1>, ..., <expr_m>], [<x_1>, ...,
5225          <x_n>])
5226     Resolve a lista de equa��es lineares simult�neas para a lista de
5227     vari�veis.  As express�es devem ser cada uma polin�mios nas
5228     vari�veis e podem ser equa��es.
5229
5230     Quando 'globalsolve' � 'true' ent�o vari�veis que foram resolvidas
5231     ser�o escolhidas para a solu��o do conjunto de equa��es
5232     simult�neas.
5233
5234     Quando 'backsubst' � 'false', 'linsolve' n�o realiza substitui��o
5235     em equa��es anteriores ap�s as equa��es terem sido
5236     triangularizadas.  Isso pode ser necess�rio em problemas muito
5237     grandes onde substitui��o em equa��es anteriores poder� causar a
5238     gera��o de express�es extremamente largas.
5239
5240     Quando 'linsolve_params' for 'true', 'linsolve' tamb�m gera
5241     s�mbolos '%r' usados para representar par�metros arbitr�rios
5242     descritos no manual sob 'algsys'.  De outra forma, 'linsolve'
5243     resolve um menor-determinado sistema de equa��es com algumas
5244     vari�veis expressas em termos de outras.
5245
5246     Quando 'programmode' for 'false', 'linsolve' mostra a solu��o com
5247     express�es interm�dias com r�tulos ('%t'), e retorna a lista de
5248     r�tulos.
5249
5250          (%i1) e1: x + z = y;
5251          (%o1)                       z + x = y
5252          (%i2) e2: 2*a*x - y = 2*a^2;
5253                                                 2
5254          (%o2)                   2 a x - y = 2 a
5255          (%i3) e3: y - 2*z = 2;
5256          (%o3)                      y - 2 z = 2
5257          (%i4) [globalsolve: false, programmode: true];
5258          (%o4)                     [false, true]
5259          (%i5) linsolve ([e1, e2, e3], [x, y, z]);
5260          (%o5)            [x = a + 1, y = 2 a, z = a - 1]
5261          (%i6) [globalsolve: false, programmode: false];
5262          (%o6)                    [false, false]
5263          (%i7) linsolve ([e1, e2, e3], [x, y, z]);
5264          Solution
5265
5266          (%t7)                       z = a - 1
5267
5268          (%t8)                        y = 2 a
5269
5270          (%t9)                       x = a + 1
5271          (%o9)                    [%t7, %t8, %t9]
5272          (%i9) ''%;
5273          (%o9)            [z = a - 1, y = 2 a, x = a + 1]
5274          (%i10) [globalsolve: true, programmode: false];
5275          (%o10)                    [true, false]
5276          (%i11) linsolve ([e1, e2, e3], [x, y, z]);
5277          Solution
5278
5279          (%t11)                      z : a - 1
5280
5281          (%t12)                       y : 2 a
5282
5283          (%t13)                      x : a + 1
5284          (%o13)                 [%t11, %t12, %t13]
5285          (%i13) ''%;
5286          (%o13)           [z : a - 1, y : 2 a, x : a + 1]
5287          (%i14) [x, y, z];
5288          (%o14)                 [a + 1, 2 a, a - 1]
5289          (%i15) [globalsolve: true, programmode: true];
5290          (%o15)                    [true, true]
5291          (%i16) linsolve ([e1, e2, e3], '[x, y, z]);
5292          (%o16)           [x : a + 1, y : 2 a, z : a - 1]
5293          (%i17) [x, y, z];
5294          (%o17)                 [a + 1, 2 a, a - 1]
5295
5296 -- Vari�vel da class: linsolvewarn
5297     Valor por omiss�o: 'true'
5298
5299     Quando 'linsolvewarn' � 'true', 'linsolve' imprime uma mensagem
5300     "Dependent equa��es eliminated".
5301
5302 -- Vari�vel da class: linsolve_params
5303     Valor por omiss�o: 'true'
5304
5305     Quando 'linsolve_params' � 'true', 'linsolve' tamb�m gera os
5306     s�mbolos '%r' usados para representar par�metros arbitr�rios
5307     descritos no manual sob 'algsys'.  De outra forma, 'linsolve'
5308     resolve um menor-determinado sistema de equa��es com algumas
5309     vari�veis expressas em termos e outras.
5310
5311 -- Vari�vel da class: multiplicities
5312     Valor por omiss�o: 'not_set_yet'
5313
5314     'multiplicities' � escolhida para uma lista de multiplicidades das
5315     solu��es individuais retornadas por 'solve' ou 'realroots'.
5316
5317 -- Fun��o da class: nroots (<p>, <low>, <high>)
5318     Retorna o n�mero de ra�zes reais do polin�mio real de uma �nica
5319     vari�vel <p> no intervalo semi-aberto '(<low>, <high>]'.  Uma
5320     extremidade do intervalo podem ser 'minf' ou 'inf'.  infinito e
5321     mais infinito.
5322
5323     'nroots' usa o m�todo das sequu�ncias de Sturm.
5324
5325          (%i1) p: x^10 - 2*x^4 + 1/2$
5326          (%i2) nroots (p, -6, 9.1);
5327          (%o2)                           4
5328
5329 -- Fun��o da class: nthroot (<p>, <n>)
5330     Onde p � um polin�mio com coeficientes inteiros e n � um inteiro
5331     positivo retorna q, um polin�mio sobre os inteiros, tal que q^n=p
5332     ou imprime uma mensagem de erro indicando que p n�o � uma pot�ncia
5333     n-�sima perfeita.  Essa rotina � mais r�pida que 'factor' ou mesmo
5334     'sqfr'.
5335
5336 -- Vari�vel da class: programmode
5337     Valor por omiss�o: 'true'
5338
5339     Quando 'programmode' � 'true', 'solve', 'realroots', 'allroots', e
5340     'linsolve' retornam solu��es como elementos em uma lista.  (Exceto
5341     quando 'backsubst' � escolhido para 'false', nesse caso
5342     'programmode: false' � assumido.)
5343
5344     Quando 'programmode' � 'false', 'solve', etc.  cria r�tulos de
5345     express�es interm�dias '%t1', 't2', etc., e atribui as solu��es
5346     para eles.
5347
5348 -- Vari�vel da class: realonly
5349     Valor por omiss�o: 'false'
5350
5351     Quando 'realonly' � 'true', 'algsys' retorna somente aquelas
5352     solu��es que est�o livres de '%i'.
5353
5354 -- Fun��o da class: realroots (<expr>, <bound>)
5355 -- Fun��o da class: realroots (<eqn>, <bound>)
5356 -- Fun��o da class: realroots (<expr>)
5357 -- Fun��o da class: realroots (<eqn>)
5358     Calcula aproxima��es racionais das ra�zes reais da express�o
5359     polinomial <expr> ou da equa��o polinomial <eqn> de uma vari�vel,
5360     dentro de uma toler�ncia de <bound>.  coeficientes de <expr> ou de
5361     <eqn> devem ser n�meros literais; constantes s�mbolo tais como
5362     '%pi' s�o rejeitadas.
5363
5364     'realroots' atribui as multiplicidades das ra�zes que encontrar
5365     para a vari�vel global 'multiplicities'.
5366
5367     'realroots' constr�i uma sequ�ncia de Sturm para delimitar cada
5368     ra�z, e ent�o palica a bisec��o para redefinir as aproxima��es.
5369     Todos os coeficientes s�o convertidos para os equivalentes
5370     racionais antes da busca por ra�zes, e c�lculos s�o realizados por
5371     meio de aritm�tica racional exacta.  Mesmo se alguns coeficientes
5372     forem n�meros em ponto flutuante, os resultados s�o racionais (a
5373     menos que for�ados a n�meros em ponto flutuante por 'float' ou por
5374     'numer' flags).
5375
5376     Quando <bound> for menor que 1, todas as ra�zes inteiras s�o
5377     encontradas exactamente.  Quando <bound> n�o for especificado, ser�
5378     assumido como sendo igual � vari�vel globa 'rootsepsilon'.
5379
5380     Quando a var�vel global 'programmode' for 'true', 'realroots'
5381     retorna uma lista da forma '[x = <x_1>, x = <x_2>, ...]'.  Quando
5382     'programmode' for 'false', 'realroots' cria r�tulos de express�es
5383     interm�dias '%t1', '%t2', ..., atribui os resultados a eles, e
5384     retorna a lista de r�tulos.
5385
5386     Exemplos:
5387
5388          (%i1) realroots (-1 - x + x^5, 5e-6);
5389                                         612003
5390          (%o1)                     [x = ------]
5391                                         524288
5392          (%i2) ev (%[1], float);
5393          (%o2)                 x = 1.167303085327148
5394          (%i3) ev (-1 - x + x^5, %);
5395          (%o3)                - 7.396496210176905E-6
5396
5397          (%i1) realroots (expand ((1 - x)^5 * (2 - x)^3 * (3 - x)), 1e-20);
5398          (%o1)                 [x = 1, x = 2, x = 3]
5399          (%i2) multiplicities;
5400          (%o2)                       [5, 3, 1]
5401
5402 -- Fun��o da class: rhs (<expr>)
5403     Retorna o lado direito (isto �, o segundo argumento) da express�o
5404     <expr>, quando o operador de <expr> for um dos operadores
5405     relacionais '< <= = # equal notequal >= >', um dos operadores de
5406     atribui��o ':= ::= : ::', ou um operador bin�rio infixo definido
5407     pelo utilizador, como declarado por meio de 'infix'.
5408
5409     Quando <expr> for um �tomo ou seu operadro for alguma coisa que n�o
5410     esses listados acima, 'rhs' retorna 0.
5411
5412     Veja tamb�m 'lhs'.
5413
5414     Exemplos:
5415
5416          (%i1) e: aa + bb = cc;
5417          (%o1)                     bb + aa = cc
5418          (%i2) lhs (e);
5419          (%o2)                        bb + aa
5420          (%i3) rhs (e);
5421          (%o3)                          cc
5422          (%i4) [rhs (aa < bb), rhs (aa <= bb), rhs (aa >= bb), rhs (aa > bb)];
5423          (%o4)                   [bb, bb, bb, bb]
5424          (%i5) [rhs (aa = bb), rhs (aa # bb), rhs (equal (aa, bb)), rhs (notequal (aa, bb))];
5425          (%o5)                   [bb, bb, bb, bb]
5426          (%i6) e1: '(foo(x) := 2*x);
5427          (%o6)                     foo(x) := 2 x
5428          (%i7) e2: '(bar(y) ::= 3*y);
5429          (%o7)                    bar(y) ::= 3 y
5430          (%i8) e3: '(x : y);
5431          (%o8)                         x : y
5432          (%i9) e4: '(x :: y);
5433          (%o9)                        x :: y
5434          (%i10) [rhs (e1), rhs (e2), rhs (e3), rhs (e4)];
5435          (%o10)                  [2 x, 3 y, y, y]
5436          (%i11) infix ("][");
5437          (%o11)                         ][
5438          (%i12) rhs (aa ][ bb);
5439          (%o12)                         bb
5440
5441 -- Vari�vel de op��o da class: rootsconmode
5442     Valor por omiss�o: 'true'
5443
5444     'rootsconmode' governa o comportamento do comando 'rootscontract'.
5445     Veja 'rootscontract' para detalhes.
5446
5447 -- Fun��o da class: rootscontract (<expr>)
5448     Converte produtos de ra�zes em ra�zes de produtos.  Por exemplo,
5449     'rootscontract (sqrt(x)*y^(3/2))' retorna 'sqrt(x*y^3)'.
5450
5451     Quando 'radexpand' � 'true' e 'domain' � 'real', 'rootscontract'
5452     converte 'abs' em 'sqrt', e.g., 'rootscontract (abs(x)*sqrt(y))'
5453     retorna 'sqrt(x^2*y)'.
5454
5455     Existe uma op��o 'rootsconmode' afectando 'rootscontract' como
5456     segue:
5457
5458          Problem            Value of        Result of applying
5459                            rootsconmode        rootscontract
5460
5461          x^(1/2)*y^(3/2)      false          (x*y^3)^(1/2)
5462          x^(1/2)*y^(1/4)      false          x^(1/2)*y^(1/4)
5463          x^(1/2)*y^(1/4)      true           (x*y^(1/2))^(1/2)
5464          x^(1/2)*y^(1/3)      true           x^(1/2)*y^(1/3)
5465          x^(1/2)*y^(1/4)      all            (x^2*y)^(1/4)
5466          x^(1/2)*y^(1/3)      all            (x^3*y^2)^(1/6)
5467
5468     Quando 'rootsconmode' � 'false', 'rootscontract' contrai somente
5469     como rela��o a expoentes de n�mero racional cujos denominadores s�o
5470     os mesmos.  A chave para os exemplos 'rootsconmode: true' �
5471     simplesmente que 2 divides 4 mas n�o divide 3.  'rootsconmode: all'
5472     envolve pegar o menor m�ltiplo comum dos denominadores dos
5473     expoentes.
5474
5475     'rootscontract' usa 'ratsimp' em uma maneira similar a
5476     'logcontract'.
5477
5478     Exemplos:
5479
5480          (%i1) rootsconmode: false$
5481          (%i2) rootscontract (x^(1/2)*y^(3/2));
5482                                             3
5483          (%o2)                      sqrt(x y )
5484          (%i3) rootscontract (x^(1/2)*y^(1/4));
5485                                             1/4
5486          (%o3)                     sqrt(x) y
5487          (%i4) rootsconmode: true$
5488          (%i5) rootscontract (x^(1/2)*y^(1/4));
5489          (%o5)                    sqrt(x sqrt(y))
5490          (%i6) rootscontract (x^(1/2)*y^(1/3));
5491                                             1/3
5492          (%o6)                     sqrt(x) y
5493          (%i7) rootsconmode: all$
5494          (%i8) rootscontract (x^(1/2)*y^(1/4));
5495                                        2   1/4
5496          (%o8)                       (x  y)
5497          (%i9) rootscontract (x^(1/2)*y^(1/3));
5498                                       3  2 1/6
5499          (%o9)                      (x  y )
5500          (%i10) rootsconmode: false$
5501          (%i11) rootscontract (sqrt(sqrt(x) + sqrt(1 + x))
5502                              *sqrt(sqrt(1 + x) - sqrt(x)));
5503          (%o11)                          1
5504          (%i12) rootsconmode: true$
5505          (%i13) rootscontract (sqrt(5 + sqrt(5)) - 5^(1/4)*sqrt(1 + sqrt(5)));
5506          (%o13)                          0
5507
5508 -- Vari�vel de op��o da class: rootsepsilon
5509     Valor por omiss�o: 1.0e-7
5510
5511     'rootsepsilon' � a toler�ncia que estabelece o intervalo de
5512     confic�ncia para as ra�zes achadas pela fun��o 'realroots'.
5513
5514 -- Fun��o da class: solve (<expr>, <x>)
5515 -- Fun��o da class: solve (<expr>)
5516 -- Fun��o da class: solve ([<eqn_1>, ..., <eqn_n>], [<x_1>, ...,
5517          <x_n>])
5518     Resolve a equa��o alg�brica <expr> para a vari�vel <x> e retorna
5519     uma lista de equa��es solu��o em <x>.  Se <expr> n�o � uma equa��o,
5520     a equa��o '<expr> = 0' � assumida em seu lugar.  <x> pode ser uma
5521     fun��o (e.g.  'f(x)'), ou outra express�o n�o at�mica excepto uma
5522     adi��o ou um produto.  <x> pode ser omitido se <expr> cont�m
5523     somente uma vari�vel.  <expr> pode ser uma express�o racional, e
5524     pode conter fun��es trigonom�tricas, exponenciais, etc.
5525
5526     O seguinte m�todo � usado:
5527
5528     Tome <E> sendo a express�o e <X> sendo a vari�vel.  Se <E> � linear
5529     em <X> ent�o isso � trivialmente resolvido para <X>.  De outra
5530     forma se <E> � da forma 'A*X^N + B' ent�o o resultado �
5531     '(-B/A)^1/N)' vezes as 'N''�simas ra�zes da unidade.
5532
5533     Se <E> n�o � linear em <X> ent�o o m�ximo divisor comum (mdc) dos
5534     expoentes de <X> em <E> (digamos <N>) � dividido dentro dos
5535     expoentes e a multiplicidade das ra�zes � multiplicada por <N>.
5536     Ent�o 'solve' � chamada novamente sobre o resultado.  Se <E> for
5537     dada em factores ent�o 'solve' � chamada sobre cada um dos
5538     factores.  Finalmente 'solve' usar� as f�rmulas quadr�ticas,
5539     c�bicas, ou qu�rticas onde necess�rio.
5540
5541     No caso onde <E> for um polin�mio em alguma fun��o de vari�vel a
5542     ser resolvida, digamos 'F(X)', ent�o isso � primeiro resolvida para
5543     'F(X)' (chama o resultado <C>), ent�o a equa��o 'F(X)=C' pode ser
5544     resolvida para <X> fornecendo o inverso da fun��o <F> que �
5545     conhecida.
5546
5547     'breakup' se 'false' far� com que 'solve' expresse as solu��es de
5548     equa��es c�bicas ou qu�rticas como express�es simples ao inv�s de
5549     como feito em cima de v�rias subexpress�es comuns que � o padr�o.
5550
5551     'multiplicities' - ser� escolhido para uma lista de multiplicidades
5552     de solu��es individuais retornadas por 'solve', 'realroots', ou
5553     'allroots'.  Tente 'apropos (solve)' para os comutadores que
5554     afectam 'solve'.  'describe' pode ent�o ser usada sobre o nome do
5555     comutador individual se seu propr�sito n�o � claro.
5556
5557     'solve ([<eqn_1>, ..., <eqn_n>], [<x_1>, ..., <x_n>])' resolve um
5558     sistema de equa��es polinomiais (lineares ou n�o-lineares)
5559     simult�neas por chamada a 'linsolve' ou 'algsys' e retorna uma
5560     lista de listas solu��o nas vari�veis.  No caso de 'linsolve' essa
5561     lista conter� uma lista simples de solu��es.  Isso pega duas listas
5562     como argumentos.  A primeira lista representa as equa��es a serem
5563     resolvidas; a segunda lista � a lista de desconhecidos a ser
5564     determinada.  Se o n�mero total de vari�veis nas equa��es � igual
5565     ao n�mero de equa��es, a segunda lista-argumento pode ser omitida.
5566     Para sistemas lineares se as dadas equa��es n�o s�o compat�veis, a
5567     mensagem 'inconsistent' ser� mostrada (veja o comutador
5568     'solve_inconsistent_error' ); se n�o existe solu��o �nica, ent�o
5569     'singular' ser� mostrado.
5570
5571     Exemplos:
5572
5573          (%i1) solve (asin (cos (3*x))*(f(x) - 1), x);
5574
5575          SOLVE is using arc-trig functions to get a solution.
5576          Some solu��es will be lost.
5577                                      %pi
5578          (%o1)                  [x = ---, f(x) = 1]
5579                                       6
5580          (%i2) ev (solve (5^f(x) = 125, f(x)), solveradcan);
5581                                          log(125)
5582          (%o2)                   [f(x) = --------]
5583                                           log(5)
5584          (%i3) [4*x^2 - y^2 = 12, x*y - x = 2];
5585                                2    2
5586          (%o3)             [4 x  - y  = 12, x y - x = 2]
5587          (%i4) solve (%, [x, y]);
5588          (%o4) [[x = 2, y = 2], [x = .5202594388652008 %i
5589
5590           - .1331240357358706, y = .0767837852378778
5591
5592           - 3.608003221870287 %i], [x = - .5202594388652008 %i
5593
5594           - .1331240357358706, y = 3.608003221870287 %i
5595
5596           + .0767837852378778], [x = - 1.733751846381093,
5597
5598          y = - .1535675710019696]]
5599          (%i5) solve (1 + a*x + x^3, x);
5600                                                 3
5601                        sqrt(3) %i   1   sqrt(4 a  + 27)   1 1/3
5602          (%o5) [x = (- ---------- - -) (--------------- - -)
5603                            2        2      6 sqrt(3)      2
5604
5605                  sqrt(3) %i   1
5606                 (---------- - -) a
5607                      2        2
5608           - --------------------------, x =
5609                        3
5610                sqrt(4 a  + 27)   1 1/3
5611             3 (--------------- - -)
5612                   6 sqrt(3)      2
5613
5614                                    3
5615           sqrt(3) %i   1   sqrt(4 a  + 27)   1 1/3
5616          (---------- - -) (--------------- - -)
5617               2        2      6 sqrt(3)      2
5618
5619                   sqrt(3) %i   1
5620                (- ---------- - -) a
5621                       2        2
5622           - --------------------------, x =
5623                        3
5624                sqrt(4 a  + 27)   1 1/3
5625             3 (--------------- - -)
5626                   6 sqrt(3)      2
5627
5628                   3
5629           sqrt(4 a  + 27)   1 1/3               a
5630          (--------------- - -)    - --------------------------]
5631              6 sqrt(3)      2                  3
5632                                        sqrt(4 a  + 27)   1 1/3
5633                                     3 (--------------- - -)
5634                                           6 sqrt(3)      2
5635          (%i6) solve (x^3 - 1);
5636                       sqrt(3) %i - 1        sqrt(3) %i + 1
5637          (%o6)   [x = --------------, x = - --------------, x = 1]
5638                             2                     2
5639          (%i7) solve (x^6 - 1);
5640                     sqrt(3) %i + 1      sqrt(3) %i - 1
5641          (%o7) [x = --------------, x = --------------, x = - 1,
5642                           2                   2
5643
5644                               sqrt(3) %i + 1        sqrt(3) %i - 1
5645                         x = - --------------, x = - --------------, x = 1]
5646                                     2                     2
5647          (%i8) ev (x^6 - 1, %[1]);
5648                                                6
5649                                (sqrt(3) %i + 1)
5650          (%o8)                 ----------------- - 1
5651                                       64
5652          (%i9) expand (%);
5653          (%o9)                           0
5654          (%i10) x^2 - 1;
5655                                        2
5656          (%o10)                       x  - 1
5657          (%i11) solve (%, x);
5658          (%o11)                  [x = - 1, x = 1]
5659          (%i12) ev (%th(2), %[1]);
5660          (%o12)                          0
5661
5662 -- Vari�vel de op��o da class: solvedecomposes
5663     Valor por omiss�o: 'true'
5664
5665     Quando 'solvedecomposes' � 'true', 'solve' chama 'polydecomp' se
5666     perguntado para resolver polin�mios.
5667
5668 -- Vari�vel de op��o da class: solveexplicit
5669     Valor por omiss�o: 'false'
5670
5671     Quando 'solveexplicit' � 'true', inibe 'solve' de retornar solu��es
5672     impl�citas, isto �, solu��es da forma 'F(x) = 0' onde 'F' � alguma
5673     fun��o.
5674
5675 -- Vari�vel de op��o da class: solvefactors
5676     Valor por omiss�o: 'true'
5677
5678     Quando 'solvefactors' � 'false', 'solve' n�o tenta factorizar a
5679     express�o.  A escolha do 'false' poder� ser �til em alguns casos
5680     onde a factoriza��o n�o � necess�ria.
5681
5682 -- Vari�vel de op��o da class: solvenullwarn
5683     Valor por omiss�o: 'true'
5684
5685     Quando 'solvenullwarn' � 'true', 'solve' imprime uma mensagem de
5686     alerta se chamada com ou uma lista equa��o ou uma vari�vel lista
5687     nula.  Por exemplo, 'solve ([], [])' imprimir� duas mensagens de
5688     alerta e retorna '[]'.
5689
5690 -- Vari�vel de op��o da class: solveradcan
5691     Valor por omiss�o: 'false'
5692
5693     Quando 'solveradcan' � 'true', 'solve' chama 'radcan' que faz
5694     'solve' lento mas permitir� certamente que problemas contendo
5695     exponeniais e logaritmos sejam resolvidos.
5696
5697 -- Vari�vel de op��o da class: solvetrigwarn
5698     Valor por omiss�o: 'true'
5699
5700     Quando 'solvetrigwarn' � 'true', 'solve' pode imprimir uma mensagem
5701     dizendo que est� usando fun��es trigonom�tricas inversas para
5702     resolver a equa��o, e desse modo perdendo solu��es.
5703
5704 -- Vari�vel de op��o da class: solve_inconsistent_error
5705     Valor por omiss�o: 'true'
5706
5707     Quando 'solve_inconsistent_error' � 'true', 'solve' e 'linsolve'
5708     resultam em erro se as equa��es a serem resolvidas s�o
5709     inconsistentes.
5710
5711     Se 'false', 'solve' e 'linsolve' retornam uma lista vazia '[]' se
5712     as equa��es forem inconsistentes.
5713
5714     Exemplo:
5715
5716          (%i1) solve_inconsistent_error: true$
5717          (%i2) solve ([a + b = 1, a + b = 2], [a, b]);
5718          Inconsistent equa��es:  (2)
5719           -- an error.  Quitting.  To debug this try debugmode(true);
5720          (%i3) solve_inconsistent_error: false$
5721          (%i4) solve ([a + b = 1, a + b = 2], [a, b]);
5722          (%o4)                          []
5723
5724
5725File: maxima.info,  Node: Equa��es Diferenciais,  Next: Num�rico,  Prev: Equa��es,  Up: Top
5726
572722, Equa��es Diferenciais
5728*************************
5729
5730* Menu:
5731
5732* Introdu��o �s Equa��es Diferenciais::
5733* Defini��es para Equa��es Diferenciais::
5734
5735
5736File: maxima.info,  Node: Introdu��o �s Equa��es Diferenciais,  Next: Defini��es para Equa��es Diferenciais,  Prev: Equa��es Diferenciais,  Up: Equa��es Diferenciais
5737
573822.1, Introdu��o �s Equa��es Diferenciais
5739=========================================
5740
5741Esta sec��o descreve as fun��es dispon�veis no Maxima para obter a
5742solu��o anal�tica de alguns tipos espec�ficos de equa��es diferencias de
5743primeira e segunda ordem.  Para obter a solu��o num�rica dum sistema de
5744equa��es diferenciais, consulte o pacote adicional 'dynamics'.  Para
5745obter representa��es gr�ficas no espa�o de fase, consulte o pacote
5746adicional 'plotdf'.
5747
5748
5749File: maxima.info,  Node: Defini��es para Equa��es Diferenciais,  Prev: Introdu��o �s Equa��es Diferenciais,  Up: Equa��es Diferenciais
5750
575122.2, Defini��es para Equa��es Diferenciais
5752===========================================
5753
5754 -- Fun��o da class: bc2 (<solu��o>, <xval1>, <yval1>, <xval2>, <yval2>)
5755     Resolve um problema de valores fronteira para uma equa��o
5756     diferencial de segunda ordem.  Aqui: <solu��o> � uma solu��o geral
5757     para a equa��o, calculada por 'ode2'; <xval1> define o valor da
5758     vari�vel independente, num primeiro ponto, na forma '<x> = <x1>', e
5759     <yval1> define o valor da vari�vel dependente, no mesmo ponto, na
5760     forma '<y> = <y1>'.  As express�es <xval2> e <yval2> definem os
5761     valores das mesmas vari�veis, num segundo ponto, usando a mesma
5762     forma.
5763
5764     Veja um exemplo da sua utiliza��o na documenta��o de 'ode2'.
5765
5766 -- Fun��o da class: desolve (<eqn>, <x>)
5767 -- Fun��o da class: desolve ([<eqn_1>, ..., <eqn_n>], [<x_1>, ...,
5768          <x_n>])
5769     A fun��o 'dsolve' resolve sistemas de equa��es diferenciais
5770     ordin�rias lineares usando transformada de Laplace.  Aqui as
5771     express�es <eqn> s�o equa��es diferenciais nas vari�veis
5772     dependentes <x_1>, ..., <x_n>.  A rela��o funcional de <x_1>, ...,
5773     <x_n> na vari�vel independente deve ser indicada explicitamente nas
5774     vari�veis e nas suas derivadas.  Por exemplo, esta forma de definir
5775     as equa��es n�o seria correcta:
5776
5777          eqn_1: 'diff(f,x,2) = sin(x) + 'diff(g,x);
5778          eqn_2: 'diff(f,x) + x^2 - f = 2*'diff(g,x,2);
5779
5780     A forma correcta seria:
5781
5782          eqn_1: 'diff(f(x),x,2) = sin(x) + 'diff(g(x),x);
5783          eqn_2: 'diff(f(x),x) + x^2 - f(x) = 2*'diff(g(x),x,2);
5784
5785     Assim, a chamada � fun��o 'desolve' seria:
5786          desolve([eqn_1, eqn_2], [f(x),g(x)]);
5787
5788     Se as condi��es iniciais em 'x=0' forem conhecidas, poder�o ser
5789     fornecidas antes de usar 'desolve', atrav�s de 'atvalue'.
5790
5791          (%i1) 'diff(f(x),x)='diff(g(x),x)+sin(x);
5792                           d           d
5793          (%o1)            -- (f(x)) = -- (g(x)) + sin(x)
5794                           dx          dx
5795          (%i2) 'diff(g(x),x,2)='diff(f(x),x)-cos(x);
5796                            2
5797                           d            d
5798          (%o2)            --- (g(x)) = -- (f(x)) - cos(x)
5799                             2          dx
5800                           dx
5801          (%i3) atvalue('diff(g(x),x),x=0,a);
5802          (%o3)                           a
5803          (%i4) atvalue(f(x),x=0,1);
5804          (%o4)                           1
5805          (%i5) desolve([%o1,%o2],[f(x),g(x)]);
5806                            x
5807          (%o5) [f(x) = a %e  - a + 1, g(x) =
5808
5809                                                          x
5810                                             cos(x) + a %e  - a + g(0) - 1]
5811          (%i6) [%o1,%o2],%o5,diff;
5812                       x       x      x                x
5813          (%o6)   [a %e  = a %e , a %e  - cos(x) = a %e  - cos(x)]
5814
5815
5816     Se 'desolve' n�o pode obter uma solu��o, retorna 'false'.
5817
5818 -- Fun��o da class: ic1 (<solu��o>, <xval>, <yval>)
5819     Resolve problemas de valor inicial para equa��es diferenciais de
5820     primeira ordem.  Aqui <solu��o> � uma solu��o geral para a equa��o,
5821     na forma dada por 'ode2', <xval> d� um valor inicial para a
5822     vari�vel independente, na forma '<x> = <x0>', e <yval> d� o valor
5823     inicial para a vari�vel dependente, na forma '<y> = <y0>'.
5824
5825     Veja um exemplo da sua utiliza��o na documenta��o de 'ode2'.
5826
5827 -- Fun��o da class: ic2 (<solu��o>, <xval>, <yval>, <dval>)
5828     Resolve problemas de valores iniciais para equa��es diferenciais de
5829     segunda ordem.  Aqui <solu��o> � uma solu��o geral para a equa��o,
5830     na forma dada por 'ode2', <xval> d� um valor inicial para a
5831     vari�vel independente, na forma '<x> = <x0>', <yval> d� o valor
5832     inicial para a vari�vel dependente, na forma '<y> = <y0>' e <dval>
5833     d� o valor inicial para a primeira derivada da vari�vel dependente,
5834     em fun��o da vari�vel independente, na forma 'diff(<y>,<x>) =
5835     <dy0>' ('diff' n�o tem que ser precedido por ap�strofo).
5836
5837     Veja um exemplo da sua utiliza��o na documenta��o de 'ode2'.
5838
5839 -- Fun��o da class: ode2 (<eqn>, <dvar>, <ivar>)
5840     A fun��o 'ode2' resolve uma equa��o diferencial ordin�ria (EDO) de
5841     primeira ou de segunda ordem.  Precisa de tr�s argumentos: uma EDO
5842     dada por <eqn>, a vari�vel dependente <dvar>, e a vari�vel
5843     independente <ivar>.  Quando conseguir, retorna uma solu��o para a
5844     vari�vel dependente, na forma expl�cita ou impl�cita.  '%c' � usado
5845     para representar a constante de integra��o no caso de equa��es de
5846     primeira ordem, e '%k1' e '%k2' as constantes para equa��es de
5847     segunda ordem.  A depend�ncia da vari�vel dependente na vari�vel
5848     independente n�o tem que ser escrita em forma expl�cita, como no
5849     caso de 'desolve', mas a vari�vel independente dever� ser indicada
5850     sempre no terceiro argumento.
5851
5852     Se por alguma raz�o 'ode2' n�o conseguir encontrar a solu��o,
5853     retornar� 'false', ap�s talvez mostrar uma mensagem de erro.  Os
5854     m�todos implementados para equa��es diferenciais de primeira ordem,
5855     na ordem em que ser�o testados, s�o: linear, separ�vel, exacta -
5856     talvez requerendo um factor de integra��o, homog�nea, equa��o de
5857     Bernoulli, homog�nea generalizada.  Os tipos de equa��es de segunda
5858     ordem que podem ser resolvidas s�o: coeficientes constantes,
5859     exactas, linear homog�neas com coeficientes n�o-constantes que
5860     possam ser transformados para constates, equa��o de Euler ou
5861     equi-dimensional, equa��es que possam ser resolvidas pelo m�todo de
5862     varia��o dos par�metros, e equa��es que n�o dependam ou da vari�vel
5863     independente ou da vari�vel dependente de modo que possam ser
5864     reduzidas a duas equa��es lineares de primeira ordem a serem
5865     resolvidas sequ�ncialmente.
5866
5867     Durante o processo de resolu��o da EDO, ser�o dados valores a
5868     v�rias vari�veis locais, com fins puramente informativos: 'm�todo'
5869     denota o m�todo de solu��o usado (por exemplo, 'linear'),
5870     'intfactor' denota qualquer factor integrante utilizado, 'odeindex'
5871     denota o �ndice para o m�todo de Bernoulli ou para o m�todo
5872     homog�neo generalizado, e 'yp' denota a solu��o particular no
5873     m�todo de varia��o dos par�metros.
5874
5875     Para resolver problemas de valores iniciais (PVI) est�o dispon�veis
5876     as fun��es 'ic1' e 'ic2'e, para equa��es de primeira e segunda
5877     ordem, e para resolver problemas de valores fronteira (PVF) de
5878     segunda ordem pode usar-se a fun��o 'bc2'.
5879
5880     Exemplo:
5881
5882          (%i1) x^2*'diff(y,x) + 3*y*x = sin(x)/x;
5883                                2 dy           sin(x)
5884          (%o1)                x  -- + 3 x y = ------
5885                                  dx             x
5886          (%i2) ode2(%,y,x);
5887                                       %c - cos(x)
5888          (%o2)                    y = -----------
5889                                            3
5890                                           x
5891          (%i3) ic1(%o2,x=%pi,y=0);
5892                                        cos(x) + 1
5893          (%o3)                   y = - ----------
5894                                             3
5895                                            x
5896          (%i4) 'diff(y,x,2) + y*'diff(y,x)^3 = 0;
5897                                   2
5898                                  d y      dy 3
5899          (%o4)                   --- + y (--)  = 0
5900                                    2      dx
5901                                  dx
5902          (%i5) ode2(%,y,x);
5903                                3
5904                               y  + 6 %k1 y
5905          (%o5)                ------------ = x + %k2
5906                                    6
5907          (%i6) ratsimp(ic2(%o5,x=0,y=0,'diff(y,x)=2));
5908                                       3
5909                                    2 y  - 3 y
5910          (%o6)                   - ---------- = x
5911                                        6
5912          (%i7) bc2(%o5,x=0,y=1,x=1,y=3);
5913                                   3
5914                                  y  - 10 y       3
5915          (%o7)                   --------- = x - -
5916                                      6           2
5917
5918
5919
5920File: maxima.info,  Node: Num�rico,  Next: Arrays,  Prev: Equa��es Diferenciais,  Up: Top
5921
592223, Num�rico
5923************
5924
5925* Menu:
5926
5927* Introdu��o a Num�rico::
5928* Pacotes de Fourier::
5929* Defini��es para Num�rico::
5930* Defini��es para S�ries de Fourier::
5931
5932
5933File: maxima.info,  Node: Introdu��o a Num�rico,  Next: Pacotes de Fourier,  Prev: Num�rico,  Up: Num�rico
5934
593523.1, Introdu��o a Num�rico
5936===========================
5937
5938
5939File: maxima.info,  Node: Pacotes de Fourier,  Next: Defini��es para Num�rico,  Prev: Introdu��o a Num�rico,  Up: Num�rico
5940
594123.2, Pacotes de Fourier
5942========================
5943
5944O pacote 'fft' compreende fun��es para computa��o num�rica (n�o
5945simb�lica) das transforma��es r�pidas de Fourier.  'load ("fft")' chama
5946esse pacote.  Veja 'fft'.
5947
5948O pacote 'fourie' compreende fun��es para computa��o simb�lica de s�ries
5949de Fourier.  'load ("fourie")' chama esse pacote.  Existem fun��es no
5950pacote 'fourie' para calcular coeficientes da integral de Fourier e
5951algumas fun��es para manipula��o de express�es.  Veja 'Defini��es para
5952S�ries'.
5953
5954
5955File: maxima.info,  Node: Defini��es para Num�rico,  Next: Defini��es para S�ries de Fourier,  Prev: Pacotes de Fourier,  Up: Num�rico
5956
595723.3, Defini��es para Num�rico
5958==============================
5959
5960 -- Fun��o da class: polartorect (<magnitude_array>, <phase_array>)
5961
5962     Traduz valores complexos da forma 'r %e^(%i t)' para a forma 'a + b
5963     %i'.  'load ("fft")' chama essa fun��o dentro do Maxima.  Veja
5964     tamb�m 'fft'.
5965
5966     O m�dulo e a fase, 'r' e 't', S�o tomados de <magnitude_array> e
5967     <phase_array>, respectivamente.  Os valores originais de arrays de
5968     entrada s�o substitu�dos pelas partes real e emagin�ria, 'a' e 'b',
5969     no retorno.  As sa�das s�o calculadas como
5970
5971          a: r cos (t)
5972          b: r sin (t)
5973
5974     Os arrays de entrada devem ter o mesmo tamanho e ser
5975     unidimensionais.  O tamanho do array n�o deve ser uma pot�ncia de
5976     2.
5977
5978     'polartorect' � a fun��o inversa de 'recttopolar'.
5979
5980 -- Fun��o da class: recttopolar (<real_array>, <imaginary_array>)
5981
5982     Traduz valores complexos da forma 'a + b %i' para a forma 'r %e^(%i
5983     t)'.  'load ("fft")' chama essa fun��o dentro do Maxima.  Veja
5984     tamb�m 'fft'.
5985
5986     As partes real e imagin�ria, 'a' e 'b', s�o tomadas de <real_array>
5987     e <imaginary_array>, respectivamente.  Os valores originais dos
5988     arrays de entrada s�o substitu�dos pelo m�dulo e pelo �ngulo, 'r' e
5989     't', no retorno.  As sa�das s�o calculadas como
5990
5991          r: sqrt (a^2 + b^2)
5992          t: atan2 (b, a)
5993
5994     O �ngulo calculado encontra-se no intervalo de '-%pi' a '%pi'.
5995
5996     Os arrays de entrada devem ter o mesmo tamanho e ser
5997     unidimensionais.  O tamanho do array n�o deve ser uma pot�ncia de
5998     2.
5999
6000     'recttopolar' � a fun��o inversa de 'polartorect'.
6001
6002 -- Fun��o da class: ift (<real_array>, <imaginary_array>)
6003
6004     Transforma��o r�pida inversa discreta de Fourier .  'load ("fft")'
6005     chama essa fun��o dentro do Maxima.
6006
6007     'ift' realiza a transforma��o r�pida complexa de Fourier sobre
6008     arrays em ponto flutuante unidimensionais.  A transforma��o inversa
6009     � definida como
6010
6011          x[j]: sum (y[j] exp (+2 %i %pi j k / n), k, 0, n-1)
6012
6013     Veja 'fft' para maiores detalhes.
6014
6015 -- Fun��o da class: fft (<real_array>, <imaginary_array>)
6016 -- Fun��o da class: ift (<real_array>, <imaginary_array>)
6017 -- Fun��o da class: recttopolar (<real_array>, <imaginary_array>)
6018 -- Fun��o da class: polartorect (<magnitude_array>, <phase_array>)
6019
6020     Transforma��o r�pidada de Fourier e fun��es relacionadas.  'load
6021     ("fft")' chama essas fun��es dentro do Maxima.
6022
6023     'fft' e 'ift' realiza transforma��o r�pida complexa de Fourier e a
6024     transforma��o inversa, respectivamente, sobre arrays em ponto
6025     flutuante unidimensionais.  O tamanho de <imaginary_array> deve ser
6026     igual ao tamanho de <real_array>.
6027
6028     'fft' e 'ift' operam in-loco.  Isto �, sobre o retorno de 'fft' ou
6029     de 'ift', O conte�do original dos arrays de entrada � substitu�do
6030     pela sa�da.  A fun��o 'fillarray' pode fazer uma c�pia de um array,
6031     isso pode ser necess�rio.
6032
6033     A transforma��o discreta de Fourier e sua transforma��o inversa s�o
6034     definidas como segue.  Tome 'x' sendo os dados originais, com
6035
6036          x[i]: real_array[i] + %i imaginary_array[i]
6037
6038     Tome 'y' sendo os dados transformados.  A transforma��o normal e
6039     sua transforma��o inversa s�o
6040
6041          y[k]: (1/n) sum (x[j] exp (-2 %i %pi j k / n), j, 0, n-1)
6042
6043          x[j]:       sum (y[j] exp (+2 %i %pi j k / n), k, 0, n-1)
6044
6045     Arrays adequadas podem ser alocadas pela fun��o 'array'.  Por
6046     exemplo:
6047
6048          array (my_array, float, n-1)$
6049
6050     declara um array unidimensional com n elementos, indexado de 0 a
6051     n-1 inclusive.  O n�mero de elementos n deve ser igual a 2^m para
6052     algum m.
6053
6054     'fft' pode ser aplicada a dados reais (todos os arrays imagin�rios
6055     s�o iguais a zero) para obter coeficientes seno e co-seno.  Ap�s
6056     chamar 'fft', os coeficientes seno e co-seno, digamos 'a' e 'b',
6057     podem ser calculados como
6058
6059          a[0]: real_array[0]
6060          b[0]: 0
6061
6062     e
6063
6064          a[j]: real_array[j] + real_array[n-j]
6065          b[j]: imaginary_array[j] - imaginary_array[n-j]
6066
6067     para j variando de 1 a n/2-1, e
6068
6069          a[n/2]: real_array[n/2]
6070          b[n/2]: 0
6071
6072     'recttopolar' traduz valores complexos da forma 'a + b %i' para a
6073     forma 'r %e^(%i t)'.  Veja 'recttopolar'.
6074
6075     'polartorect' traduz valores complexos da forma 'r %e^(%i t)' para
6076     a forma 'a + b %i'.  Veja 'polartorect'.
6077
6078     'demo ("fft")' exibe uma demonstra��o do pacote 'fft'.
6079
6080 -- Vari�vel de op��o da class: fortindent
6081     Valor por omiss�o: 0
6082
6083     'fortindent' controla a margem esquerda de indenta��o de express�es
6084     mostradas pelo comando 'fortran'.  0 fornece indenta��o normal
6085     (i.e., 6 espa�os), e valores positivos far�o com que express�es
6086     sejam mostrados mais al�m para a direita.
6087
6088 -- Fun��o da class: fortran (<expr>)
6089     Mostra <expr> como uma declara��o Fortran.  A linha de sa�da �
6090     indentada com espa�os.  Se a linha for muito longa, 'fortran'
6091     imprime linhas de continua��o.  'fortran' mostra o operador de
6092     exponencia��o '^' como '**', e mostra um n�mero complexo 'a + b %i'
6093     na forma '(a,b)'.
6094
6095     <expr> pode ser uma equa��o.  Nesse caso, 'fortran' mostra uma
6096     declara��o de atribui��o, atribuindo o primeiro membro (esquerda)
6097     da equa��o ao segundo membro (direita).  Em particular, se o
6098     primeiro membro <expr> � um nome de uma matriz, ent�o 'fortran'
6099     mostra uma declara��o de atribui��o para cada elemento da matriz.
6100
6101     Se <expr> n�o for alguma coisa reconhecida por 'fortran', a
6102     express�o � mostrada no formato 'grind' sem reclama��o.  'fortran'
6103     n�o conhece listas, arrays ou fun��es.
6104
6105     'fortindent' controla o margem esquerda das linhas mostradas.  0 �
6106     a margem normal (i.e., indentada 6 espa�os).  Incrementando
6107     'fortindent' faz com que express�es sejam mostradas adiante para a
6108     direita.
6109
6110     quando 'fortspaces' for 'true', 'fortran' preenche cada linha
6111     mostrada com espa�os em branco at� completar 80 columas.
6112
6113     'fortran' avalia seus argumentos; colocando um ap�strofo em um
6114     argumento evita avalia��o.  'fortran' sempre retorna 'done'.
6115
6116     Exemplos:
6117
6118          (%i1) expr: (a + b)^12$
6119          (%i2) fortran (expr);
6120                (b+a)**12
6121          (%o2)                         done
6122          (%i3) fortran ('x=expr);
6123                x = (b+a)**12
6124          (%o3)                         done
6125          (%i4) fortran ('x=expand (expr));
6126                x = b**12+12*a*b**11+66*a**2*b**10+220*a**3*b**9+495*a**4*b**8+792
6127               1   *a**5*b**7+924*a**6*b**6+792*a**7*b**5+495*a**8*b**4+220*a**9*b
6128               2   **3+66*a**10*b**2+12*a**11*b+a**12
6129          (%o4)                         done
6130          (%i5) fortran ('x=7+5*%i);
6131                x = (7,5)
6132          (%o5)                         done
6133          (%i6) fortran ('x=[1,2,3,4]);
6134                x = [1,2,3,4]
6135          (%o6)                         done
6136          (%i7) f(x) := x^2$
6137          (%i8) fortran (f);
6138                f
6139          (%o8)                         done
6140
6141 -- Vari�vel de op��o da class: fortspaces
6142     Valor por omiss�o: 'false'
6143
6144     Quando 'fortspaces' for 'true', 'fortran' preenche cada linha
6145     mostrada com espa�os em branco at� completar 80 columas.
6146
6147 -- Fun��o da class: horner (<expr>, <x>)
6148 -- Fun��o da class: horner (<expr>)
6149     Retorna uma representa��o rearranjada de <expr> como na regra de
6150     Horner, usando <x> como vari�vel principal se isso for
6151     especificado.  'x' pode ser omitido e nesse caso a vari�vel
6152     principal da forma de express�o racional can�nica de <expr> �
6153     usada.
6154
6155     'horner' algumas vezes melhora a estabilidade se 'expr' for ser
6156     numericamente avaliada.  Isso tamb�m � �til se Maxima � usado para
6157     gerar programas para rodar em Fortran.  Veja tamb�m 'stringout'.
6158
6159          (%i1) expr: 1e-155*x^2 - 5.5*x + 5.2e155;
6160                                     2
6161          (%o1)            1.0E-155 x  - 5.5 x + 5.2E+155
6162          (%i2) expr2: horner (%, x), keepfloat: true;
6163          (%o2)            (1.0E-155 x - 5.5) x + 5.2E+155
6164          (%i3) ev (expr, x=1e155);
6165          Maxima encountered a Lisp error:
6166
6167           floating point overflow
6168
6169          Automatically continuing.
6170          To reenable the Lisp debugger set *debugger-hook* to nil.
6171          (%i4) ev (expr2, x=1e155);
6172          (%o4)                       7.0E+154
6173
6174 -- Fun��o da class: find_root (<f>(<x>), <x>, <a>, <b>)
6175 -- Fun��o da class: find_root (<f>, <a>, <b>)
6176     Encontra a ra�z da fun��o <f> com a vari�vel <x> percorrendo o
6177     intervalo '[<a>, <b>]'.  A fun��o deve ter um sinal diferente em
6178     cada ponto final.  Se essa condi��o n�o for alcan�ada, a action of
6179     the function is governed by 'find_root_error'.  If
6180     'find_root_error' is 'true' then an error occurs, otherwise the
6181     value of 'find_root_error' is returned (thus for plotting
6182     'find_root_error' might be set to 0.0).  De outra forma (dado que
6183     Maxima pode avaliar o primeiro argumento no intervalo especificado,
6184     e que o intervalo � cont�nuo) 'find_root' � garantido vir para cima
6185     com a ra�z (ou um deles se existir mais que uma ra�z).  A precis�o
6186     de 'find_root' � governada por 'intpolabs' e 'intpolrel' os quais
6187     devem ser n�meros em ponto flutuante n�o negativos.  'find_root'
6188     encerrar� quando o primeiro argumento avaliar para alguma coisa
6189     menor que ou igual a 'intpolabs' ou se sucessivas aproxima��es da
6190     ra�z diferirem por n�o mais que 'intpolrel * <um dos
6191     aproximandos>'.  O valor padr�o de 'intpolabs' e 'intpolrel' s�o
6192     0.0 de forma que 'find_root' pega como boa uma resposta como for
6193     poss�vel com a precis�o aritm�tica simples que tivermos.  O
6194     primeiro argumento pode ser uma equa��o.  A ordem dos dois �ltimos
6195     argumentos � irrelevante.  Dessa forma
6196
6197          find_root (sin(x) = x/2, x, %pi, 0.1);
6198
6199     � equivalente a
6200
6201          find_root (sin(x) = x/2, x, 0.1, %pi);
6202
6203     O m�todo usado � uma busca bin�ria no intervalo especificado pelos
6204     �ltimos dois argumentos.  Quando o resultado da busca for
6205     encontrado a fun��o � fechada o suficiente para ser linear, isso
6206     inicia usando interpola��o linear.
6207
6208     Examples:
6209          (%i1) f(x) := sin(x) - x/2;
6210                                                  x
6211          (%o1)                  f(x) := sin(x) - -
6212                                                  2
6213          (%i2) find_root (sin(x) - x/2, x, 0.1, %pi);
6214          (%o2)                   1.895494267033981
6215          (%i3) find_root (sin(x) = x/2, x, 0.1, %pi);
6216          (%o3)                   1.895494267033981
6217          (%i4) find_root (f(x), x, 0.1, %pi);
6218          (%o4)                   1.895494267033981
6219          (%i5) find_root (f, 0.1, %pi);
6220          (%o5)                   1.895494267033981
6221
6222 -- Vari�vel de op��o da class: find_root_abs
6223     Valor por omiss�o: 0.0
6224
6225     'find_root_abs' � a precis�o do comando 'find_root'.  A precis�o �
6226     governada por 'find_root_abs' e 'find_root_rel' que devem ser
6227     n�meros n�o negativos em ponto flutuante.  'find_root' terminar�
6228     quando o primeiro argumento avaliar para alguma coisa menor que ou
6229     igual a 'find_root_abs' ou se sucessivos aproximandos para a ra�z
6230     diferirem por n�o mais que 'find_root_rel * <um dos aproximandos>'.
6231     Os valores padr�o de 'find_root_abs' e 'find_root_rel' s�o 0.0 de
6232     forma que 'find_root' tome como boa uma resposta que for poss�vel
6233     com a precis�o aritm�tica simples que tivermos.
6234
6235 -- Vari�vel de op��o da class: find_root_error
6236     Valor por omiss�o: 'true'
6237
6238     'find_root_error' governa o comportamento de 'find_root'.  Quando
6239     'find_root' for chamada, ela determina se a fun��o a ser resolvida
6240     satisfaz ou n�o a condi��o que os valores da fun��o nos pontos
6241     finais do intervalo de interpola��o s�o opostos em sinal.  Se eles
6242     forem de sinais opostos, a interpola��o prossegue.  Se eles forem
6243     de mesmo sinal, e 'find_root_error' for 'true', ent�o um erro �
6244     sinalizado.  Se eles forem de mesmo sinal e 'find_root_error' n�o
6245     for 'true', o valor de 'find_root_error' � retornado.  Dessa forma
6246     para montagem de gr�fico, 'find_root_error' pode ser escolhida para
6247     0.0.
6248
6249 -- Vari�vel de op��o da class: find_root_rel
6250     Valor por omiss�o: 0.0
6251
6252     'find_root_rel' � a precis�o do comando 'find_root' e � governada
6253     por 'find_root_abs' e 'find_root_rel' que devem ser n�meros n�o
6254     negativos em ponto flutuante.  'find_root' terminar� quando o
6255     primeiro argumento avaliar para alguma coisa menor que ou igual a
6256     'find_root_abs' ou se sucessivos aproximandos para a ra�z diferirem
6257     de n�o mais que 'find_root_rel * <um dos aproximandos>'.  Os
6258     valores padr�o de 'find_root_labs' e 'find_root_rel' � 0.0 de forma
6259     que 'find_root' toma como boa uma resposta que for poss�vel com a
6260     precis�o aritm�tica simples que tivermos.
6261
6262 -- Fun��o da class: newton (<expr>, <x>, <x_0>, <eps>)
6263     Retorna uma solu��o aproximada de '<expr> = 0' atrav�s do m�todo de
6264     Newton, considerando <expr> como sendo uma fun��o de uma vari�vel,
6265     <x>.  A busca pela solu��o come�a com '<x> = <x_0>' e prossegue at�
6266     'abs(<expr>) < <eps>' (com <expr> avaliada para o valor corrente de
6267     <x>).
6268
6269     'newton' permite que vari�veis indefinidas apare�am em <expr>,
6270     contanto que o teste de termina��o 'abs(<expr>) < <eps>' avalie
6271     para 'true' ou 'false'.  Dessa forma n�o � necess�rio que <expr>
6272     avalie para um n�mero.
6273
6274     'load(newton1)' chama essa fun��o.
6275
6276     Veja tamb�m 'realroots', 'allroots', 'find_root', e 'mnewton'.
6277
6278     Exemplos:
6279
6280          (%i1) load (newton1);
6281          (%o1) /usr/share/maxima/5.10.0cvs/share/numeric/newton1.mac
6282          (%i2) newton (cos (u), u, 1, 1/100);
6283          (%o2)                   1.570675277161251
6284          (%i3) ev (cos (u), u = %);
6285          (%o3)                 1.2104963335033528E-4
6286          (%i4) assume (a > 0);
6287          (%o4)                        [a > 0]
6288          (%i5) newton (x^2 - a^2, x, a/2, a^2/100);
6289          (%o5)                  1.00030487804878 a
6290          (%i6) ev (x^2 - a^2, x = %);
6291                                                     2
6292          (%o6)                6.098490481853958E-4 a
6293
6294
6295File: maxima.info,  Node: Defini��es para S�ries de Fourier,  Prev: Defini��es para Num�rico,  Up: Num�rico
6296
629723.4, Defini��es para S�ries de Fourier
6298=======================================
6299
6300 -- Fun��o da class: equalp (<x>, <y>)
6301     Retorna 'true' se 'equal (<x>, <y>)' de outra forma 'false' (n�o
6302     fornece uma mensagem de erro como 'equal (x, y)' poderia fazer
6303     nesse caso).
6304
6305 -- Fun��o da class: remfun (<f>, <expr>)
6306 -- Fun��o da class: remfun (<f>, <expr>, <x>)
6307     'remfun (<f>, <expr>)' substitue todas as ocorr�ncias de '<f>
6308     (<arg>)' por <arg> em <expr>.
6309
6310     'remfun (<f>, <expr>, <x>)' substitue todas as ocorr�ncias de '<f>
6311     (<arg>)' por <arg> em <expr> somente se <arg> contiver a vari�vel
6312     <x>.
6313
6314 -- Fun��o da class: funp (<f>, <expr>)
6315 -- Fun��o da class: funp (<f>, <expr>, <x>)
6316     'funp (<f>, <expr>)' retorna 'true' se <expr> cont�m a fun��o <f>.
6317
6318     'funp (<f>, <expr>, <x>)' retorna 'true' se <expr> cont�m a fun��o
6319     <f> e a vari�vel <x> em algum lugar no argumento de uma das
6320     inst�ncias de <f>.
6321
6322 -- Fun��o da class: absint (<f>, <x>, <halfplane>)
6323 -- Fun��o da class: absint (<f>, <x>)
6324 -- Fun��o da class: absint (<f>, <x>, <a>, <b>)
6325     'absint (<f>, <x>, <halfplane>)' retorna a integral indefinida de
6326     <f> com rela��o a <x> no dado semi-plano ('pos', 'neg', ou 'both').
6327     <f> pode conter express�es da forma 'abs (x)', 'abs (sin (x))',
6328     'abs (a) * exp (-abs (b) * abs (x))'.
6329
6330     'absint (<f>, <x>)' � equivalente a 'absint (<f>, <x>, pos)'.
6331
6332     'absint (<f>, <x>, <a>, <b>)' retorna a integral definida de <f>
6333     com rela��o a <x> de <a> at� <b>.  <f> pode incluir valores
6334     absolutos.
6335
6336 -- Fun��o da class: fourier (<f>, <x>, <p>)
6337     Retorna uma lista de coeficientes de Fourier de '<f>(<x>)'
6338     definidos sobre o intervalo '[-p, p]'.
6339
6340 -- Fun��o da class: foursimp (<l>)
6341     Simplifica 'sin (n %pi)' para 0 se 'sinnpiflag' for 'true' e 'cos
6342     (n %pi)' para '(-1)^n' se 'cosnpiflag' for 'true'.
6343
6344 -- Vari�vel de op��o da class: sinnpiflag
6345     Valor por omiss�o: 'true'
6346
6347     Veja 'foursimp'.
6348
6349 -- Vari�vel de op��o da class: cosnpiflag
6350     Valor por omiss�o: 'true'
6351
6352     Veja 'foursimp'.
6353
6354 -- Fun��o da class: fourexpand (<l>, <x>, <p>, <limit>)
6355     Constr�i e retorna a s�rie de Fourier partindo da lista de
6356     coeficientes de Fourier <l> at� (up through) <limit> termos
6357     (<limit> pode ser 'inf').  <x> e <p> possuem o mesmo significado
6358     que em 'fourier'.
6359
6360 -- Fun��o da class: fourcos (<f>, <x>, <p>)
6361     Retorna os coeficientes do co-seno de Fourier para '<f>(<x>)'
6362     definida sobre '[0, %pi]'.
6363
6364 -- Fun��o da class: foursin (<f>, <x>, <p>)
6365     Retorna os coeficientes do seno de Fourier para '<f>(<x>)' definida
6366     sobre '[0, <p>]'.
6367
6368 -- Fun��o da class: totalfourier (<f>, <x>, <p>)
6369     Retorna 'fourexpand (foursimp (fourier (<f>, <x>, <p>)), <x>, <p>,
6370     'inf)'.
6371
6372 -- Fun��o da class: fourint (<f>, <x>)
6373     Constr�i e retorna uma lista de coeficientes de integral de Fourier
6374     de '<f>(<x>)' definida sobre '[minf, inf]'.
6375
6376 -- Fun��o da class: fourintcos (<f>, <x>)
6377     Retorna os coeficientes da integral do co-seno de Fourier para
6378     '<f>(<x>)' on '[0, inf]'.
6379
6380 -- Fun��o da class: fourintsin (<f>, <x>)
6381     Retorna os coeficientes da integral do seno de Fourier para
6382     '<f>(<x>)' on '[0, inf]'.
6383
6384