Add some comments on how psi[s](p/q) is computed.
[maxima.git] / doc / info / pt / opsubst.texi
blob8f92a7fea5405e36e02d5092810dfb3cef2271b1
1 @c /opsubst.texi/1.1/Mon Feb 27 22:09:17 2006//
3 @menu
4 * Definições para  opsubst::
5 @end menu
7 @node Definições para opsubst,  , opsubst, opsubst
8 @section Definições para  opsubst
10 @deffn {Função} opsubst (@var{f},@var{g},@var{e})
11 @deffnx {Função} opsubst (@var{g}=@var{f},@var{e})
12 @deffnx {Função} opsubst ([@var{g1}=@var{f1},@var{g2}=@var{f2},..., @var{gn}=@var{fn}],@var{e})
13 A função @code{opsubst}  similar à função @code{subst}, excepto que
14 @code{opsubst} somente faz substituições para as operações em uma expressões. Em geral, 
15 quando @var{f} for um operador em uma expressão @var{e}, substitui @var{g} 
16 por @var{f} na expressão @var{e}.
18 Para determinar o operador, @code{opsubst} escolhe @code{inflag} para verdadeiro ( true ). Isso significa que
19 @code{opsubst} substitui para a forma de operador interna, não para a mostrada,
20 na expressão.
22 Exemplos:
23 @example
24 (%i1) load ("opsubst")$
26 (%i2) opsubst(f,g,g(g(x)));
27 (%o2)                     f(f(x))
28 (%i3) opsubst(f,g,g(g));
29 (%o3)                       f(g)
30 (%i4) opsubst(f,g[x],g[x](z));
31 (%o4)                       f(z)
32 (%i5) opsubst(g[x],f, f(z));
33 (%o5)                      g (z)
34                             x
35 (%i6) opsubst(tan, sin, sin(sin));
36 (%o6)                     tan(sin)
37 (%i7) opsubst([f=g,g=h],f(x));
38 (%o7)                       h(x)
39 @end example
41 Internamente, Maxima não usa os operadores de negação unária,
42 divisão, ou de subtração; dessa forma:
43 @example
44 (%i8) opsubst("+","-",a-b);
45 (%o8)                     a - b
46 (%i9) opsubst("f","-",-a);
47 (%o9)                      - a
48 (%i10) opsubst("^^","/",a/b);
49                              a
50 (%o10)                       -
51                              b
52 @end example
54 A representação interna de -a*b é *(-1,a,b); dessa forma
55 @example
56 (%i11) opsubst("[","*", -a*b);
57 (%o11)                  [- 1, a, b]
58 @end example
60 Quando o operador não for um símbolo Maxima, geralmente alguma outra função
61 sinalizará um erro:
62 @example
63 (%i12) opsubst(a+b,f, f(x));
65 Improper name or value in functional position:
66 b + a
67  -- an error.  Quitting.  To debug this try debugmode(true);
68 @end example
70 Todavia, operadores subscritos são permitidos:
71 @example
72 (%i13) opsubst(g[5],f, f(x));
73 (%o13)                     g (x)
74                             5
75 @end example
77 Para usar essa função escreva primeiramente @code{load("opsubst")}.
78 @end deffn