1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /Simplification.texi/1.18/Sat Jun 2 00:13:08 2007/-ko/
3 @c end concepts Simplification
5 @hyphenation{di-fe-ren-te-men-te}
8 * Funções e Variáveis Definidas para Simplificação::
11 @node Funções e Variáveis Definidas para Simplificação, , Simplificação, Simplificação
12 @section Funções e Variáveis Definidas para Simplificação
14 @c After studying src/compar.lisp, it appears that askexp would
15 @c work as advertised, except that it doesn't appear to be possible
16 @c to open a break prompt with ^A or any other character.
17 @c What should we do about askexp ???
18 @defvr {Variável de sistema} askexp
19 Quando @code{asksign} é chamada,
20 @code{askexp} é a expressão que @code{asksign} está testando.
22 Antigamente, era possível para um usuário inspecionar @code{askexp}
23 entrando em uma parada do Maxima com control-A.
26 @c THERE IS PROBABLY MORE TO THE STORY THAN WHAT IS INDICATED HERE ...
27 @deffn {Função} askinteger (@var{expr}, integer)
28 @deffnx {Função} askinteger (@var{expr})
29 @deffnx {Função} askinteger (@var{expr}, even)
30 @deffnx {Função} askinteger (@var{expr}, odd)
32 @code{askinteger (@var{expr}, integer)} tenta determinar a partir da base de dados do @code{assume}
33 se @var{expr} é um inteiro.
34 @code{askinteger} pergunta ao usuário pela linha de comando se isso não puder ser feito de outra forma,
35 @c UMM, askinteger AND asksign DO NOT APPEAR TO HAVE ANY EFFECT ON THE assume DATABASE !!!
36 e tenta instalar a informação na base de dados do @code{assume} se for possível.
37 @code{askinteger (@var{expr})} é equivalente a @code{askinteger (@var{expr}, integer)}.
39 @code{askinteger (@var{expr}, even)} e @code{askinteger (@var{expr}, odd)}
40 da mesma forma tentam determinar se @var{expr} é um inteiro par ou inteiro ímpar, respectivamente.
44 @c THERE IS PROBABLY MORE TO THE STORY THAN WHAT IS INDICATED HERE ...
45 @deffn {Função} asksign (@var{expr})
46 Primeiro tenta determinar se a expressão
47 especificada é positiva, negativa, ou zero. Se isso não for possível, @code{asksign} pergunta ao
48 usuário pelas questões necessárias para completar a sua dedução. As respostas
49 do usuário são guardadas na base de dados pelo tempo que durar a computação
50 corrente. O valor de retorno de @code{asksign} é um entre @code{pos}, @code{neg},
55 @c NEEDS CLARIFICATION, EXAMPLES
56 @deffn {Função} demoivre (@var{expr})
57 @deffnx {Variável de opção} demoivre
59 A função @code{demoivre (expr)} converte uma expressão
60 sem escolher a variável global @code{demoivre}.
62 Quando a variável @code{demoivre} for @code{true},
63 exponenciais complexas são convertidas em expressões equivalentes em termos de funções circulares:
64 @code{exp (a + b*%i)} simplifica para @code{%e^a * (cos(b) + %i*sin(b))}
65 se @code{b} for livre de @code{%i}.
66 @code{a} e @code{b} não são expandidos.
68 O valor padrão de @code{demoivre} é @code{false}.
70 @code{exponentialize} converte funções circulares e hiperbólicas para a forma exponencial.
71 @code{demoivre} e @code{exponentialize} não podem
72 ambas serem @code{true} ao mesmo tempo.
77 @defvr {Variável de opção} domain
78 Valor padrão: @code{real}
80 Quando @code{domain} for escolhida para @code{complex}, @code{sqrt (x^2)} permanecerá
81 @code{sqrt (x^2)} em lugar de retornar @code{abs(x)}.
83 @c PRESERVE EDITORIAL COMMENT -- MAY HAVE SOME SIGNIFICANCE NOT YET UNDERSTOOD !!!
84 @c The notion of a "domain" of simplification is still in its infancy,
85 @c and controls little more than this at the moment.
90 @deffn {Função} expand (@var{expr})
91 @deffnx {Função} expand (@var{expr}, @var{p}, @var{n})
92 Expande a expressão @var{expr}.
93 Produtos de somas e somas exponenciadas são
94 multiplicadas para fora, numeradores de expressões racionais que são adições são
95 quebradas em suas respectivas parcelas, e multiplicação (comutativa
96 e não comutativa) é distribuída sobre a adição em todos os níveis de
99 Para polinômios se pode usar freq@"{u}êntemente @code{ratexpand} que possui um
100 algorítmo mais eficiente.
102 @code{maxnegex} e @code{maxposex} controlam o máximo expoente negativo e
103 o máximo expoente positivo, respectivamente, que irão expandir.
105 @code{expand (@var{expr}, @var{p}, @var{n})} expande @var{expr},
106 usando @var{p} para @code{maxposex} e @var{n} para @code{maxnegex}.
107 Isso é útil com o objetivo de expandir partes mas não tudo em uma expressão.
109 @code{expon} - o expoente da maior potência negativa que é
110 automaticamente expandida (independente de chamadas a @code{expand}). Por Exemplo
111 se @code{expon} for 4 então @code{(x+1)^(-5)} não será automaticamente expandido.
113 @code{expop} - o maior expoente positivo que é automaticamente
114 expandido. Dessa forma @code{(x+1)^3}, quando digitado, será automaticamente expandido
115 somente se @code{expop} for maior que ou igual a 3. Se for desejado ter
116 @code{(x+1)^n} expandido onde @code{n} é maior que @code{expop} então executando
117 @code{expand ((x+1)^n)} trabalhará somente se @code{maxposex} não for menor que @code{n}.
119 O sinalizador @code{expand} usado com @code{ev} causa expansão.
121 O arquivo @file{simplification/facexp.mac}
122 @c I should really use a macro which expands to something like
123 @c @uref{file://...,,simplification/facexp.mac}. But texi2html
124 @c currently supports @uref only with one argument.
125 @c Worse, the `file:' scheme is OS and browser dependent.
126 contém muitas funções relacionadas (em particular @code{facsum}, @code{factorfacsum}
127 e @code{collectterms}, que são chamadas automaticamente) e variáveis (@code{nextlayerfactor}
128 e @code{facsum_combine}) que fornecem ao usuário com a habilidade para estruturar
129 expressões por expansão controlada.
130 @c MERGE share/simplification/facexp.usg INTO THIS FILE OR CREATE NEW FILE facexp.texi
131 Descrições breves de função estão disponível em @file{simplification/facexp.usg}.
132 Um arquivo demonstrativo está disponível fazendo @code{demo("facexp")}.
137 @deffn {Função} expandwrt (@var{expr}, @var{x_1}, ..., @var{x_n})
138 Expande a expressão @code{expr} com relação às
139 variáveis @var{x_1}, ..., @var{x_n}.
140 Todos os produtos envolvendo as variáveis aparecem explicitamente. A forma retornada
141 será livre de produtos de somas de expressões que não estão livres das
142 variáveis. @var{x_1}, ..., @var{x_n}
143 podem ser variáveis, operadores, ou expressões.
145 Por padrão, denominadores não são expandidos, mas isso pode ser controlado
146 através do comutador @code{expandwrt_denom}.
148 Essa função, @code{expandwrt}, não é automaticamente chamada a partir de
149 @file{simplification/stopex.mac}.
154 @defvr {Variável de opção} expandwrt_denom
155 Valor padrão: @code{false}
157 @code{expandwrt_denom} controla o tratamento de expressões
158 racionais por @code{expandwrt}. Se @code{true}, então ambos o numerador e
159 o denominador da expressão serão expandidos conforme os
160 argumentos de @code{expandwrt}, mas se @code{expandwrt_denom} for @code{false}, então somente
161 o numerador será expandido por aquele caminho.
165 @c NEEDS A STAND-ALONE DESCRIPTION (NOT "IS SIMILAR TO")
167 @deffn {Função} expandwrt_factored (@var{expr}, @var{x_1}, ..., @var{x_n})
168 é similar a @code{expandwrt}, mas trata expressões que são produtos um tanto quanto diferentemente.
169 @code{expandwrt_factored} expande somente sobre esses fatores de @code{expr}
170 que contiverem as variáveis @var{x_1}, ..., @var{x_n}.
172 @c NOT SURE WHY WE SHOULD MENTION THIS HERE
173 Essa função é automaticamente chamada a aprtir de @file{simplification/stopex.mac}.
178 @defvr {Variável de opção} expon
181 @code{expon} é o expoente da maior potência negativa que
182 é automaticamente expandido (independente de chamadas a @code{expand}). Por
183 exemplo, se @code{expon} for 4 então @code{(x+1)^(-5)} não será automaticamente
189 @deffn {Função} exponentialize (@var{expr})
190 @deffnx {Variável de opção} exponentialize
192 A função @code{exponentialize (expr)} converte
193 funções circulares e hiperbólicas em @var{expr} para exponenciais,
194 sem escolher a variável global @code{exponentialize}.
196 Quando a variável @code{exponentialize} for @code{true},
197 todas as funções circulares e hiperbólicas são convertidas para a forma exponencial.
198 O valor padrão é @code{false}.
200 @code{demoivre} converte exponenciais complexas em funções circulares.
201 @code{exponentialize} e @code{demoivre} não podem
202 ambas serem @code{true} ao mesmo tempo.
206 @c NEEDS CLARIFICATION
208 @defvr {Variável de opção} expop
211 @code{expop} - o maior expoente positivo que é
212 automaticamente expandido. Dessa forma @code{(x+1)^3}, quando digitado, será
213 automaticamente expandido somente se @code{expop} for maior que ou igual a 3.
214 Se for desejado ter @code{(x+1)^n} expandido onde @code{n} é maior que
215 @code{expop} então executando @code{expand ((x+1)^n)} trabalhará somente se @code{maxposex} não for
221 @defvr {Variável de opção} factlim
224 @code{factlim} especifica o maior fatorial que é
225 automaticamente expandido. Se for -1 então todos os inteiros são expandidos.
229 @c NEEDS CLARIFICATION, EXAMPLES
230 @deffn {Função} intosum (@var{expr})
231 Move fatores multiplicativos fora de um somatório para dentro.
232 Se o índice for usado na
233 expressão de fora, então a função tentará achar um índice
234 razoável, o mesmo que é feito para @code{sumcontract}. Isso é essencialmente a
235 idéia inversa da propriedade @code{outative} de somatórios, mas note que isso
236 não remove essa propriedade, somente pula sua verificação.
238 @c WHAT ARE THESE CASES ??
240 um @code{scanmap (multthru, @var{expr})} pode ser necessário antes de @code{intosum}.
244 @c NEEDS CLARIFICATION, EXAMPLES
245 @defvr {Declaração} lassociative
246 @code{declare (g, lassociative)} diz ao
247 simplificador do Maxima que @code{g} é associativa à esquerda. E.g., @code{g (g (a, b), g (c, d))} irá
248 simplificar para @code{g (g (g (a, b), c), d)}.
252 @c NEEDS CLARIFICATION, EXAMPLES
253 @c WHAT'S UP WITH THE QUOTE MARKS ??
254 @defvr {Declaração} linear
255 Uma das propriedades operativas do Maxima. Para funções de uma única variável @code{f} então
256 declarada, a "expansão" @code{f(x + y)} retorna @code{f(x) + f(y)},
257 @code{f(a*x)} retorna @code{a*f(x)} tomando
258 lugar onde @code{a} for uma "constante". para funções de dois ou mais argumentos,
259 "linearidade" é definida para ser como no caso de @code{sum} ou @code{integrate},
260 i.e., @code{f (a*x + b, x)} retorna @code{a*f(x,x) + b*f(1,x)}
261 para @code{a} e @code{b} livres de @code{x}.
263 @code{linear} é equivalente a @code{additive} e @code{outative}.
264 Veja também @code{opproperties}.
268 @c NEEDS CLARIFICATION, EXAMPLES
269 @defvr {Declaração} mainvar
270 Você pode declarar variáveis para serem @code{mainvar} (variável principal). A escala de
271 ordenação para átomos é essencialmente: números < constantes (e.g., @code{%e}, @code{%pi}) <
272 escalares < outras variáveis < mainvars. E.g., compare @code{expand ((X+Y)^4)}
273 com @code{(declare (x, mainvar), expand ((x+y)^4))}. (Nota: Cuidado deve ser
274 tomado se você eleger o uso desse recurso acima. E.g., se você subtrair uma
275 expressão na qual @code{x} for uma @code{mainvar} de uma na qual @code{x} não seja uma
276 @code{mainvar}, resimplificação e.g. com @code{ev (expr, simp)} pode ser
277 necessária se for para ocorrer um cancelamento. Também, se você grava uma
278 expressão na qual @code{x} é uma @code{mainvar}, você provavelmente pode também gravar @code{x}.)
283 @defvr {Variável de opção} maxapplydepth
286 @code{maxapplydepth} é a máxima definição para a qual @code{apply1}
287 e @code{apply2} irão pesquisar.
292 @defvr {Variável de opção} maxapplyheight
295 @code{maxapplyheight} é a elevação máxima a qual @code{applyb1}
296 irá alcançar antes de abandonar.
301 @defvr {Variável de opção} maxnegex
304 @code{maxnegex} é o maior expoente negativo que será
305 expandido pelo comando @code{expand} (veja também @code{maxposex}).
310 @defvr {Variável de opção} maxposex
313 @code{maxposex} é o maior expoente que será
314 expandido com o comando @code{expand} (veja também @code{maxnegex}).
319 @defvr {Declaração} multiplicative
320 @code{declare (f, multiplicative)} diz ao simplificador do Maxima que @code{f} é multiplicativa.
324 Se @code{f} for uma função de uma única variável, sempre que o simplificador encontrar @code{f} aplicada
325 a um produto, @code{f} distribue sobre aquele produto. E.g., @code{f(x*y)}
326 simplifica para @code{f(x)*f(y)}.
328 Se @code{f} é uma função de 2 ou mais argumentos, multiplicatividade é
329 definida como multiplicatividade no primeiro argumento para @code{f}, e.g.,
330 @code{f (g(x) * h(x), x)} simplifica para @code{f (g(x) ,x) * f (h(x), x)}.
333 Essa simplificação não ocorre quando @code{f} é aplicada a expressões da
334 forma @code{product (x[i], i, m, n)}.
338 @c NEEDS CLARIFICATION, EXAMPLES
339 @defvr {Variável de opção} negdistrib
340 Valor padrão: @code{true}
342 Quando @code{negdistrib} for @code{true}, -1 distribue
343 sobre uma expressão. E.g., @code{-(x + y)} transforma-se em @code{- y - x}. Mudando o valor de @code{negdistrib} para @code{false}
344 permitirá que @code{- (x + y)} seja mostrado como foi escrito. Isso algumas vezes é útil
345 mas seja muito cuidadoso: como o sinalizador @code{simp}, isso é um sinalizador que você pode não
346 querer escolher para @code{false} como algo natural ou necessário com excessão
347 de usar localmente no seu Maxima.
351 @c NEEDS CLARIFICATION, EXAMPLES
352 @defvr {Variável de opção} negsumdispflag
353 Valor padrão: @code{true}
355 Quando @code{negsumdispflag} for @code{true}, @code{x - y} é mostrado como @code{x - y}
356 em lugar de como @code{- y + x}. Escolhendo isso para @code{false} faz com que a verificação especial em
357 visualização para a diferença das duas expressões não seja concluída. Uma
358 aplicação é que dessa forma @code{a + %i*b} e @code{a - %i*b} podem ambos serem mostrados pelo
363 @c NEEDS CLARIFICATION, EXAMPLES
364 @c NEED TO MENTION THIS IS AN evflag
365 @defvr {Símbolo especial} noeval
366 @code{noeval} suprime a fase de avaliação de @code{ev}. Isso é útil em
367 conjunção com outros comutadores e para fazer com que expressões
368 sejam resimplificadas sem serem reavaliadas.
372 @c NEEDS CLARIFICATION, EXAMPLES
373 @defvr {Declaração} noun
374 @code{noun} é uma das opções do comando @code{declare}. Essa opção faz com que um
375 função seja declarada como "noun" (substantivo), significando que ela não deve ser avaliada
380 @c NEEDS CLARIFICATION, EXAMPLES
381 @defvr {Variável de opção} noundisp
382 Valor padrão: @code{false}
384 Quando @code{noundisp} for @code{true}, substantivos (nouns) são mostrados com
385 um apóstrofo. Esse comutador é sempre @code{true} quando mostrando definições de
390 @c NEEDS CLARIFICATION, EXAMPLES
391 @defvr {Símbolo especial} nouns
392 @code{nouns} é um @code{evflag} (sinalizador de avaliação). Quando usado como uma opção para o comando @code{ev},
393 @code{nouns} converte todas as
394 formas substantivas ("noun") que ocorrem na expressão que está sendo avaliada para verbos ("verbs"), i.e.,
395 avalia essas expressões. Veja também @code{noun}, @code{nounify}, @code{verb}, e @code{verbify}.
399 @c NEEDS CLARIFICATION, EXAMPLES
400 @c WHAT ARE THE FUNCTIONS WHICH ARE EVALUATED IN FLOATING POINT ??
401 @c WHAT IS A "NUMERVAL" ?? (SOMETHING DIFFERENT FROM A NUMERIC VALUE ??)
402 @c NEED TO MENTION THIS IS AN evflag
403 @defvr {Símbolo especial} numer
404 @code{numer} faz com que algumas funções matemáticas (incluindo exponenciação)
405 com argumentos numéricos sejam avaliados em ponto flutuante. Isso faz com que
406 variáveis em @code{expr} às quais tenham sido dados valores numéricos a elas sejam substituídas pelos
407 seus valores correspondentes. @code{numer} também escolhe o sinalizador @code{float} para @code{on}.
412 @c NEEDS CLARIFICATION, EXAMPLES
413 @c HOW TO FIND ALL VARIABLES WHICH HAVE NUMERVALS ??
414 @deffn {Função} numerval (@var{x_1}, @var{expr_1}, ..., @var{var_n}, @var{expr_n})
415 Declara as variáveis @code{x_1}, ..., @var{x_n} para terem
416 valores numéricos iguais a @code{expr_1}, ..., @code{expr_n}.
417 O valor numérico é avaliado e substituido para a variável
418 em quaisquer expressões na qual a variável ocorra se o sinalizador @code{numer} for
419 @code{true}. Veja também @code{ev}.
421 As expressões @code{expr_1}, ..., @code{expr_n} podem ser quaisquer expressões,
422 não necessariamente numéricas.
426 @defvr {Variável de sistema} opproperties
428 @code{opproperties} é a lista de propriedades de operadores especiais reconhecidas pelo
429 simplificador do Maxima:
430 @code{linear}, @code{additive}, @code{multiplicative}, @code{outative} (veja logo abaixo), @code{evenfun},
431 @code{oddfun}, @code{commutative}, @code{symmetric}, @code{antisymmetric}, @code{nary},
432 @code{lassociative}, @code{rassociative}.
437 @c NEEDS CLARIFICATION, EXAMPLES
438 @defvr {Variável de opção} opsubst
439 Valor padrão: @code{true}
441 Quando @code{opsubst} for @code{false}, @code{subst} não tenta
442 substituir dentro de um operador de uma expressão. E.g.,
443 @code{(opsubst: false, subst (x^2, r, r+r[0]))} irá trabalhar.
448 @defvr {Declaração} outative
449 @code{declare (f, outative)} diz ao simplificador do Maxima que fatores constantes
450 no argumento de @code{f} podem ser puxados para fora.
454 Se @code{f} for uma função de uma única variável, sempre que o simplificador encontrar @code{f} aplicada
455 a um produto, aquele produto será particionado em fatores que são
456 constantes e fatores que não são e os fatores constantes serão
457 puxados para fora. E.g., @code{f(a*x)} simplificará para @code{a*f(x)} onde @code{a} é uma
458 constante. Fatores de constantes não atômicas não serão puxados para fora.
460 Se @code{f} for uma função de 2 ou mais argumentos, a colocação para fora é definida
461 como no caso de @code{sum} ou @code{integrate}, i.e., @code{f (a*g(x), x)} irá simplificar
462 para @code{a * f(g(x), x)} sendo @code{a} livre de @code{x}.
465 @code{sum}, @code{integrate}, e @code{limit} são todas @code{outative}.
470 @defvr {Declaração} posfun
471 @code{declare (f, posfun)} declara @code{f} para ser uma função positiva.
472 @code{is (f(x) > 0)} retorna @code{true}.
476 @deffn {Função} radcan (@var{expr})
477 Simplifica @var{expr}, que pode conter logarítmos, exponenciais, e
478 radicais, convertendo essa expressão em uma forma que é canônica sobre uma ampla
479 classe de expressões e uma dada ordenação de variáveis; isto é, todas
480 formas funcionalmente equivalentes são mapeadas em uma única forma. Para uma
481 classe um tanto quanto ampla de expressões, @code{radcan} produz uma forma regular.
482 Duas expressões equivalentes nessa classe não possuem necessáriamente a
483 mesma aparência, mas suas diferenças podem ser simplificadas por @code{radcan} para
486 Para algumas expressões @code{radcan} é que consome inteiramente o tempo. Esse
487 é o custo de explorar certos relacionamentos entre os componentes da
488 expressão para simplificações baseadas sobre fatoração e
489 expansões de fração-parcial de expoentes.
491 @c %e_to_numlog NEEDS ITS OWN @defvar !!!
492 @c DOESN'T APPEAR TO AFFECT radcan !!!
493 Quando @code{%e_to_numlog} for @code{true},
494 @code{%e^(r*log(expr))} simplifica para @code{expr^r} se @code{r} for um número racional.
496 Quando @code{radexpand} for @code{false}, certas transformações são inibidas.
497 @code{radcan (sqrt (1-x))} permanece @code{sqrt (1-x)}
498 e não é simplificada para @code{%i sqrt (x-1)}.
499 @code{radcan (sqrt (x^2 - 2*x + 11))} permanece @code{sqrt (x^2 - 2*x + 1)}
500 e não é simplificada para @code{x - 1}.
502 @c MERGE EXAMPLES INTO THIS FILE
503 @code{example (radcan)} mostra alguns exemplos.
507 @c NEEDS CLARIFICATION, EXAMPLES
508 @defvr {Variável de opção} radexpand
509 Valor padrão: @code{true}
511 @code{radexpand} controla algumas simplificações de radicais.
513 Quando @code{radexpand} for @code{all}, faz com que n-ésimas raízes de
514 fatores de um produto que são potências de n sejam puxados para fora do
515 radical. E.g. Se @code{radexpand} for @code{all}, @code{sqrt (16*x^2)} simplifica para @code{4*x}.
517 @c EXPRESS SIMPLIFICATON RULES IN GENERAL CASE, NOT SPECIAL CASE
518 Mais particularmente, considere @code{sqrt (x^2)}.
521 Se @code{radexpand} for @code{all} or @code{assume (x > 0)} tiver sido executado,
522 @code{sqrt(x^2)} simplifica para @code{x}.
524 Se @code{radexpand} for @code{true} e @code{domain} for @code{real} (isso é o padrão),
525 @code{sqrt(x^2)} simplifica para @code{abs(x)}.
527 Se @code{radexpand} for @code{false}, ou @code{radexpand} for @code{true} e @code{domain} for @code{complex},
528 @code{sqrt(x^2)} não é simplificado.
531 @c CORRECT STATEMENT HERE ???
532 Note que @code{domain} somente interessa quando @code{radexpand} for @code{true}.
537 @defvr {Variável de opção} radsubstflag
538 Valor padrão: @code{false}
540 @code{radsubstflag}, se @code{true}, permite a @code{ratsubst} fazer
541 substituições tais como @code{u} por @code{sqrt (x)} em @code{x}.
545 @c NEEDS CLARIFICATION, EXAMPLES
546 @defvr {Declaração} rassociative
547 @code{declare (g, rassociative)} diz ao simplificador do
548 Maxima que @code{g} é associativa à direita. E.g.,
549 @code{g(g(a, b), g(c, d))} simplifica para @code{g(a, g(b, g(c, d)))}.
553 @c NEEDS CLARIFICATION, EXAMPLES
554 @deffn {Função} scsimp (@var{expr}, @var{rule_1}, ..., @var{rule_n})
555 Simplificação Seq@"{u}êncial Comparativa (método devido a Stoute).
556 @code{scsimp} tenta simplificar @var{expr}
557 conforme as regras @var{rule_1}, ..., @var{rule_n}.
558 Se uma expressão pequena for obtida, o processo
559 repete-se. De outra forma após todas as simplificações serem tentadas, @code{scsimp} retorna
562 @c MERGE EXAMPLES INTO THIS FILE
563 @code{example (scsimp)} mostra alguns exemplos.
567 @c NEEDS CLARIFICATION, EXAMPLES
568 @defvr {Variável de opção} simpsum
569 Valor padrão: @code{false}
571 Quando @code{simpsum} for @code{true}, o resultado de uma @code{sum} é
572 simplificado. Essa simplificação pode algumas vezes estar apta a produzir uma
573 forma fechada. Se @code{simpsum} for @code{false} ou se a forma com apóstrofo @code{'sum} for usada, o valor é uma
574 forma substantiva aditiva que é uma representação da notação sigma usada em
579 @c NEEDS CLARIFICATION, EXAMPLES
580 @deffn {Função} sumcontract (@var{expr})
581 Combina todas as parcelas de um somatório que possuem
582 limites superiores e inferiores que diferem por constantes. O resultado é uma
583 expressão contendo um somatório para cada escolha de cada tais somatórios
584 adicionados a todos os termos extras apropriados que tiveram de ser extraídos para a forma
585 dessa adição. @code{sumcontract} combina todas as somas compatíveis e usa os
586 indices de uma as somas se puder, e então tenta formar um
587 índice razoável se não for usar qualquer dos fornecidos.
589 @c WHEN IS intosum NECESSARY BEFORE sumcontract ??
590 Isso pode ser necessário fazer um @code{intosum (@var{expr})} antes de @code{sumcontract}.
595 @defvr {Variável de opção} sumexpand
596 Valor padrão: @code{false}
598 Quando @code{sumexpand} for @code{true}, produtos de somas e
599 somas exponeciadas simplificam para somas aninhadas.
601 Veja também @code{cauchysum}.
606 (%i1) sumexpand: true$
607 (%i2) sum (f (i), i, 0, m) * sum (g (j), j, 0, n);
611 (%o2) > > f(i1) g(i2)
615 (%i3) sum (f (i), i, 0, m)^2;
619 (%o3) > > f(i3) f(i4)
627 @defvr {Variável de opção} sumsplitfact
628 Valor padrão: @code{true}
630 Quando @code{sumsplitfact} for @code{false},
631 @c "IS APPLIED" -- UNDER WHAT CIRCUMSTANCES EXACTLY ??
632 @code{minfactorial} é aplicado após um @code{factcomb}.
636 @c NEEDS CLARIFICATION, EXAMPLES
637 @defvr {Declaração} symmetric
638 @code{declare (h, symmetric)} diz ao simplificador
639 do Maxima que @code{h} é uma função simétrica. E.g., @code{h (x, z, y)}
640 simplifica para @code{h (x, y, z)}.
642 @code{commutative} é sinônimo de @code{symmetric}.
647 @deffn {Função} unknown (@var{expr})
648 Retorna @code{true} se e somente se @var{expr} contém um operador ou função
649 não reconhecida pelo simplificador do Maxima.