Siguiente: , Anterior:   [Índice general][Índice]

28 Sumas productos y series


28.1 Funciones y variables para sumas y productos

Función: bashindices (expr)

Transforma la expresión expr dándole a cada sumatorio y producto un único índice. Esto le da a changevar mayor precisión cuando opera con sumas y productos. La forma del único índice es jnumber. La cantidad number se determina en función de gensumnum, valor que puede cambiar el usuario. Por ejemplo, haciendo gensumnum:0$.

Función: lsum (expr, x, L)

Representa la suma de expr para cada elemento x en L.

Se retornará la forma nominal 'lsum si el argumento L no es una lista.

Ejemplos:

(%i1) lsum (x^i, i, [1, 2, 7]);
                            7    2
(%o1)                      x  + x  + x
(%i2) lsum (i^2, i, rootsof (x^3 - 1, x));
                     ====
                     \      2
(%o2)                 >    i
                     /
                     ====
                                   3
                     i in rootsof(x  - 1, x)
Función: intosum (expr)

Mueve los factores multiplicativos que están fuera de un sumatorio hacia dentro de éste. Si el índice del sumatorio aparece en la expresión exterior, entonces intosum busca un índice razonable, lo mismo que hace con sumcontract. Se trata de la operación contraria a extraer factores comunes de los sumatorios.

En algunos caos puede ser necesario hacer scanmap (multthru, expr) antes que intosum.

Ejemplo:

(%i1) sum(2*x^2*n^k, k , 0, inf);
                               inf
                               ====
                             2 \      k
(%o1)                     2 x   >    n
                               /
                               ====
                               k = 0
(%i2) intosum(%);
                          inf
                          ====
                          \        k  2
(%o2)                      >    2 n  x
                          /
                          ====
                          k = 0
Función: product (expr, i, i_0, i_1)

Representa el producto de los valores de expr según el índice i varía de i_0 hasta i_1. La forma nominal 'product se presenta en forma de letra pi mayúscula.

La función product evalúa expr y los límites inferior y superior, i_0 y i_1, pero no evalúa el índice i.

Si la diferencia entre los límites superior e inferior es un número entero, la expresión expr se evalúa para cada valor del índice i, siendo el resultado un producto en forma explícita.

En caso contrario, el rango del índice no está definido, aplicándose entonces algunas reglas que permitan simplificar el producto. Cuando la variable global simpproduct valga true, se aplicarán reglas adicionales. En ciertos casos, la simplificación dará lugar a un resultado que ya no tenga el formato del producto; en caso contrario se devolverá una forma nominal 'product.

Véanse también nouns y evflag.

Ejemplos:

(%i1) product (x + i*(i+1)/2, i, 1, 4);
(%o1)           (x + 1) (x + 3) (x + 6) (x + 10)
(%i2) product (i^2, i, 1, 7);
(%o2)                       25401600
(%i3) product (a[i], i, 1, 7);
(%o3)                 a  a  a  a  a  a  a
                       1  2  3  4  5  6  7
(%i4) product (a(i), i, 1, 7);
(%o4)          a(1) a(2) a(3) a(4) a(5) a(6) a(7)
(%i5) product (a(i), i, 1, n);
                             n
                           /===\
                            ! !
(%o5)                       ! !  a(i)
                            ! !
                           i = 1
(%i6) product (k, k, 1, n);
                               n
                             /===\
                              ! !
(%o6)                         ! !  k
                              ! !
                             k = 1
(%i7) product (k, k, 1, n), simpproduct;
(%o7)                          n!
(%i8) product (integrate (x^k, x, 0, 1), k, 1, n);
                             n
                           /===\
                            ! !    1
(%o8)                       ! !  -----
                            ! !  k + 1
                           k = 1
(%i9) product (if k <= 5 then a^k else b^k, k, 1, 10);
                              15  40
(%o9)                        a   b
Variable opcional: simpsum

Valor por defecto: false

Si simpsum vale true, se simplifica el resultado de un sumatorio sum. Esta simplificación podrá producir en ocasiones una expresión compacta. Si simpsum vale false o si se utiliza la forma apostrofada 'sum, el valor es una forma nominal que representa la notación sigma habitual en matemáticas.

Función: sum (expr, i, i_0, i_1)

Representa la suma de los valores de expr según el índice i varía de i_0 hasta i_1. La forma nominal 'sum se presenta en forma de letra sigma mayúscula.

La función sum evalúa su sumando expr y los límites inferior y superior, i_0 y i_1, pero no evalúa el índice i.

Si la diferencia entre los límites superior e inferior es un número entero, el sumando expr se evalúa para cada valor del índice i, siendo el resultado una suma en forma explícita.

En caso contrario, el rango del índice no está definido, aplicándose entonces algunas reglas que permitan simplificar la suma. Cuando la variable global simpsum valga true, se aplicarán reglas adicionales. En ciertos casos, la simplificación dará lugar a un resultado que ya no tenga el formato del sumatorio; en caso contrario se devolverá una forma nominal 'product.

Cuando cauchysum vale true, el producto de sumatorios se expresa como un producto de Cauchy, en cuyo caso el índice del sumatorio interior es función del índice del exterior, en lugar de variar independientemente.

La variable global genindex guarda el prefijo alfabético a utilizar cuando sea necesario generar automáticamente el siguiente índice de sumatorio.

La variable global gensumnum guarda el sufijo numérico a utilizar cuando sea necesario generar automáticamente el siguiente índice de sumatorio. Si gensumnum vale false, un índice generado automáticamente constará sólo de genindex, sin sufijo numérico.

Véanse también sumcontract, intosum, bashindices, niceindices, nouns y evflag.

Ejemplos:

(%i1) sum (i^2, i, 1, 7);
(%o1)                          140
(%i2) sum (a[i], i, 1, 7);
(%o2)           a  + a  + a  + a  + a  + a  + a
                 7    6    5    4    3    2    1
(%i3) sum (a(i), i, 1, 7);
(%o3)    a(7) + a(6) + a(5) + a(4) + a(3) + a(2) + a(1)
(%i4) sum (a(i), i, 1, n);
                            n
                           ====
                           \
(%o4)                       >    a(i)
                           /
                           ====
                           i = 1
(%i5) sum (2^i + i^2, i, 0, n);
                          n
                         ====
                         \       i    2
(%o5)                     >    (2  + i )
                         /
                         ====
                         i = 0
(%i6) sum (2^i + i^2, i, 0, n), simpsum;
                              3      2
                   n + 1   2 n  + 3 n  + n
(%o6)             2      + --------------- - 1
                                  6
(%i7) sum (1/3^i, i, 1, inf);
                            inf
                            ====
                            \     1
(%o7)                        >    --
                            /      i
                            ====  3
                            i = 1
(%i8) sum (1/3^i, i, 1, inf), simpsum;
                                1
(%o8)                           -
                                2
(%i9) sum (i^2, i, 1, 4) * sum (1/i^2, i, 1, inf);
                              inf
                              ====
                              \     1
(%o9)                      30  >    --
                              /      2
                              ====  i
                              i = 1
(%i10) sum (i^2, i, 1, 4) * sum (1/i^2, i, 1, inf), simpsum;
                                  2
(%o10)                       5 %pi
(%i11) sum (integrate (x^k, x, 0, 1), k, 1, n);
                            n
                           ====
                           \       1
(%o11)                      >    -----
                           /     k + 1
                           ====
                           k = 1
(%i12) sum (if k <= 5 then a^k else b^k, k, 1, 10));
          10    9    8    7    6    5    4    3    2
(%o12)   b   + b  + b  + b  + b  + a  + a  + a  + a  + a
Función: sumcontract (expr)

Combina todos los sumatorios de una suma cuyos límites inferiores y superiores difieren por constantes. El resultado es una expresión que contiene un sumatorio por cada conjunto de tales sumatorios, más todos los demás términos adicionales que tuvieron que extraerse para formar la suma. La función sumcontract combina todos los sumatorios compatibles y utiliza uno de los índices de uno de los sumatorios si puede, si no formará un índice que sea razonable.

Puede ser necesario hacer intosum (expr) antes que sumcontract.

Ejemplo:

(%i1) 'sum(1/l,l,1,n)+'sum(k,k,1,n+2);
                         n        n + 2
                        ====      ====
                        \     1   \
(%o1)                    >    - +  >    k
                        /     l   /
                        ====      ====
                        l = 1     k = 1
(%i2) sumcontract(%);
                            n
                           ====
                           \          1
(%o2)                2 n +  >    (l + -) + 3
                           /          l
                           ====
                           l = 1
Variable opcional: sumexpand

Valor por defecto: false

Si sumexpand vale true, productos de sumatorios y de sumatorios con exponentes se reducen a sumatorios anidados.

Véase también cauchysum.

Ejemplos:

(%i1) sumexpand: true$
(%i2) sum (f (i), i, 0, m) * sum (g (j), j, 0, n);
                     m      n
                    ====   ====
                    \      \
(%o2)                >      >     f(i1) g(i2)
                    /      /
                    ====   ====
                    i1 = 0 i2 = 0
(%i3) sum (f (i), i, 0, m)^2;
                     m      m
                    ====   ====
                    \      \
(%o3)                >      >     f(i3) f(i4)
                    /      /
                    ====   ====
                    i3 = 0 i4 = 0

28.2 Introducción a las series

Maxima dispone de las funciones taylor y powerseries para calcular las series de las funciones diferenciables. También tiene herramientas como nusum capaces de encontrar la expresión compacta de algunas series. Operaciones como la suma y la multiplicación operan de la forma habitual en el contexto de las series. Esta sección presenta las variables globales que controlan la expansión.


28.3 Funciones y variables para las series

Variable opcional: cauchysum

Valor por defecto: false

Cuando se multiplican sumatorios infinitos, si sumexpand vale true y cauchysum vale true, entonces se utilizará el producto de Cauchy en lugar del usual. En el producto de Cauchy el índice de la suma interna es función del índice de la exterior en lugar de variar de forma independiente. Un ejemplo aclara esta idea:

(%i1) sumexpand: false$
(%i2) cauchysum: false$
(%i3) s: sum (f(i), i, 0, inf) * sum (g(j), j, 0, inf);
                      inf         inf
                      ====        ====
                      \           \
(%o3)                ( >    f(i))  >    g(j)
                      /           /
                      ====        ====
                      i = 0       j = 0
(%i4) sumexpand: true$
(%i5) cauchysum: true$
(%i6) ''s;
                 inf     i1
                 ====   ====
                 \      \
(%o6)             >      >     g(i1 - i2) f(i2)
                 /      /
                 ====   ====
                 i1 = 0 i2 = 0
Función: deftaylor (f_1(x_1), expr_1, ..., f_n(x_n), expr_n)

Para cada función f_i de variable x_i, deftaylor define expr_i como una serie de Taylor alrededor de cero. La expresión expr_i será un polinomio en x_i o una suma; deftaylor admite también expresiones más generales.

La llamada powerseries (f_i(x_i), x_i, 0) devuelve la serie definida por deftaylor.

La función deftaylor evalúa sus argumentos y devuelve la lista de las funciones f_1, ..., f_n.

Ejemplo:

(%i1) deftaylor (f(x), x^2 + sum(x^i/(2^i*i!^2), i, 4, inf));
(%o1)                          [f]
(%i2) powerseries (f(x), x, 0);
                      inf
                      ====      i1
                      \        x         2
(%o2)                  >     -------- + x
                      /       i1    2
                      ====   2   i1!
                      i1 = 4
(%i3) taylor (exp (sqrt (f(x))), x, 0, 4);
                      2         3          4
                     x    3073 x    12817 x
(%o3)/T/     1 + x + -- + ------- + -------- + . . .
                     2     18432     307200
Variable opcional: maxtayorder

Valor por defecto: true

Si maxtayorder vale true, entonces durante la manipulación algebraica de series truncadas de Taylor, la función taylor trata de retener tantos términos correctos como sea posible.

Función: niceindices (expr)

Cambia las etiquetas de los índices de sumas y productos de expr. La función niceindices trata de cambiar cada índice al valor de niceindicespref[1], a menos que esa etiqueta aparezca ya en el sumando o factor, en cuyo caso niceindices realiza intentos con los siguientes elementos de niceindicespref, hasta que encuentre una variable que que no esté en uso. Si todas las variables de la lista han sido ya revisadas, se formarán nuevos ínices añadiendo números enteros al valor de niceindicespref[1], como i0, i1, i2, ....

La función niceindices evalúa sus argumentos y devuelve una expresión.

Ejemplo:

(%i1) niceindicespref;
(%o1)                  [i, j, k, l, m, n]
(%i2) product (sum (f (foo + i*j*bar), foo, 1, inf), bar, 1, inf);
                 inf    inf
                /===\   ====
                 ! !    \
(%o2)            ! !     >      f(bar i j + foo)
                 ! !    /
                bar = 1 ====
                        foo = 1
(%i3) niceindices (%);
                     inf  inf
                    /===\ ====
                     ! !  \
(%o3)                ! !   >    f(i j l + k)
                     ! !  /
                    l = 1 ====
                          k = 1
Variable opcional: niceindicespref

Valor por defecto: [i, j, k, l, m, n]

La variable niceindicespref es la lista de la que la función niceindices va tomando nombres de etiquetas para índices de sumatorios y productos.

En niceindicespref se guardan normalmente nombres de variables.

Ejemplo:

(%i1) niceindicespref: [p, q, r, s, t, u]$
(%i2) product (sum (f (foo + i*j*bar), foo, 1, inf), bar, 1, inf);
                 inf    inf
                /===\   ====
                 ! !    \
(%o2)            ! !     >      f(bar i j + foo)
                 ! !    /
                bar = 1 ====
                        foo = 1
(%i3) niceindices (%);
                     inf  inf
                    /===\ ====
                     ! !  \
(%o3)                ! !   >    f(i j q + p)
                     ! !  /
                    q = 1 ====
                          p = 1
Función: nusum (expr, x, i_0, i_1)

Calcula la suma hipergeométrica indefinida de expr con respecto a la variable x utilizando una procedimiento de decisión debido a R.W. Gosper. La expresión expr y el resultado deben poder ser escritos como productos de potencias enteras, factoriales, coeficientes binomiales y funciones racionales.

Los términos suma "definida" e "indefinida" se usan de forma análoga a integración "definida" e "indefinida". La suma indefinida significa dar un resultado simbólico.

Las funciones nusum y unsum disponen de cierta información sobre sumas y diferencias de productos finitos. Véase también unsum.

Ejemplos:

(%i1) nusum (n*n!, n, 0, n);

Dependent equations eliminated:  (1)
(%o1)                     (n + 1)! - 1
(%i2) nusum (n^4*4^n/binomial(2*n,n), n, 0, n);
                     4        3       2              n
      2 (n + 1) (63 n  + 112 n  + 18 n  - 22 n + 3) 4      2
(%o2) ------------------------------------------------ - ------
                    693 binomial(2 n, n)                 3 11 7
(%i3) unsum (%, n);
                              4  n
                             n  4
(%o3)                   ----------------
                        binomial(2 n, n)
(%i4) unsum (prod (i^2, i, 1, n), n);
                    n - 1
                    /===\
                     ! !   2
(%o4)              ( ! !  i ) (n - 1) (n + 1)
                     ! !
                    i = 1
(%i5) nusum (%, n, 1, n);

Dependent equations eliminated:  (2 3)
                            n
                          /===\
                           ! !   2
(%o5)                      ! !  i  - 1
                           ! !
                          i = 1
Función: pade (taylor_series, numer_deg_bound, denom_deg_bound)

Devuelve la lista de todas las funciones racionales que tienen el desarrollo de Taylor dado, en las que la suma de los grados del numerador y denominador es menor o igual que el nivel de truncamiento de la serie de potencias.

La expresión taylor_series es una serie de Taylor univariante. Los argumentos numer_deg_bound y denom_deg_bound son enteros positivos que indican las cotas para numerador y denominador.

La expresión taylor_series también puede ser una serie de Laurent, y las cotas de los grados pueden ser inf. El grado total se define como numer_deg_bound + denom_deg_bound. La longitud de una serie de potencias se define como "truncation level" + 1 - min(0, "order of series").

(%i1) taylor (1 + x + x^2 + x^3, x, 0, 3);
                              2    3
(%o1)/T/             1 + x + x  + x  + . . .
(%i2) pade (%, 1, 1);
                                 1
(%o2)                       [- -----]
                               x - 1
(%i3) t: taylor(-(83787*x^10 - 45552*x^9 - 187296*x^8
                   + 387072*x^7 + 86016*x^6 - 1507328*x^5
                   + 1966080*x^4 + 4194304*x^3 - 25165824*x^2
                   + 67108864*x - 134217728)
       /134217728, x, 0, 10);
                    2    3       4       5       6        7
             x   3 x    x    15 x    23 x    21 x    189 x
(%o3)/T/ 1 - - + ---- - -- - ----- + ----- - ----- - ------
             2    16    32   1024    2048    32768   65536

                                  8         9          10
                            5853 x    2847 x    83787 x
                          + ------- + ------- - --------- + . . .
                            4194304   8388608   134217728
(%i4) pade (t, 4, 4);
(%o4)                          []

No hay ninguna función racional de grado 4 en numerador y denominador con este desarrollo en serie de potencias. Es necesario dar un número de grados al numerador y denominador cuya suma sea al menos el grado del desarrollo de la serie, a fin de disponer de un número suficiente de coeficientes desconocidos para calcular.

(%i5) pade (t, 5, 5);
                     5                4                 3
(%o5) [- (520256329 x  - 96719020632 x  - 489651410240 x

                  2
 - 1619100813312 x  - 2176885157888 x - 2386516803584)

               5                 4                  3
/(47041365435 x  + 381702613848 x  + 1360678489152 x

                  2
 + 2856700692480 x  + 3370143559680 x + 2386516803584)]
Función: powerseries (expr, x, a)

Devuelve la forma general del desarrollo en serie de potencias de expr para la variable x alrededor del punto a (que puede ser inf, de infinito):

           inf
           ====
           \               n
            >    b  (x - a)
           /      n
           ====
           n = 0

Si powerseries no es capaz de desarrollar expr, la función taylor puede calcular los primeros términos de la serie.

Si verbose vale true, powerseries va mostrando mensajes mientras progresa el cálculo.

(%i1) verbose: true$
(%i2) powerseries (log(sin(x)/x), x, 0);
can't expand 
                                 log(sin(x))
so we'll try again after applying the rule:
                                        d
                                      / -- (sin(x))
                                      [ dx
                        log(sin(x)) = i ----------- dx
                                      ]   sin(x)
                                      /
in the first simplification we have returned:
                             /
                             [
                             i cot(x) dx - log(x)
                             ]
                             /
                    inf
                    ====        i1  2 i1             2 i1
                    \      (- 1)   2     bern(2 i1) x
                     >     ------------------------------
                    /                i1 (2 i1)!
                    ====
                    i1 = 1
(%o2)                -------------------------------------
                                      2
Variable opcional: psexpand

Valor por defecto: false

Si psexpand vale true, toda expresi’on racional se muestra completamente expandida. La variable ratexpand tiene el mismo efecto.

Si psexpand vale false, las expresines multivariantes se presentan tal como lo hace el paquete de funciones racionales.

Si psexpand vale multi, los términos de igual grado son agrupados.

Función: revert (expr, x)
Función: revert2 (expr, x, n)

Estas funciones devuelven el recíproco de expr en forma de desarrollo de Taylor alrededor de cero respecto de la variable x. La función revert devuelve un polinomio de grado igual a la mayor potencia en expr. La función revert2 devuelve un polinomio de grado n, el cual puede ser mayor, igual o menor que el grado de expr.

Para utilizar estas funciones es necesario cargarlas en memoria mediante load ("revert").

Ejemplos:

(%i1) load ("revert")$
(%i2) t: taylor (exp(x) - 1, x, 0, 6);
                   2    3    4    5     6
                  x    x    x    x     x
(%o2)/T/      x + -- + -- + -- + --- + --- + . . .
                  2    6    24   120   720
(%i3) revert (t, x);
               6       5       4       3       2
           10 x  - 12 x  + 15 x  - 20 x  + 30 x  - 60 x
(%o3)/R/ - --------------------------------------------
                                60
(%i4) ratexpand (%);
                     6    5    4    3    2
                    x    x    x    x    x
(%o4)             - -- + -- - -- + -- - -- + x
                    6    5    4    3    2
(%i5) taylor (log(x+1), x, 0, 6);
                    2    3    4    5    6
                   x    x    x    x    x
(%o5)/T/       x - -- + -- - -- + -- - -- + . . .
                   2    3    4    5    6
(%i6) ratsimp (revert (t, x) - taylor (log(x+1), x, 0, 6));
(%o6)                           0
(%i7) revert2 (t, x, 4);
                          4    3    2
                         x    x    x
(%o7)                  - -- + -- - -- + x
                         4    3    2
Función: taylor (expr, x, a, n)
Función: taylor (expr, [x_1, x_2, ...], a, n)
Función: taylor (expr, [x, a, n, 'asymp])
Función: taylor (expr, [x_1, x_2, ...], [a_1, a_2, ...], [n_1, n_2, ...])
Función: taylor (expr, [x_1, a_1, n_1], [x_2, a_2, n_2], ...)

La llamada taylor (expr, x, a, n) expande la expresión expr en un desarrollo de Taylor o de Laurent respecto de la variable x alrededor del punto a, con términos hasta (x - a)^n.

Si expr es de la forma f(x)/g(x) y g(x) no tiene términos hasta de grado n, entonces taylor intenta expandir g(x) hasta el grado 2 n. Si aún así no hay términos no nulos, taylor dobla el grado de la expansión de g(x) hasta que el grado de la expansión sea menor o igual que n 2^taylordepth.

La llamada taylor (expr, [x_1, x_2, ...], a, n) devuelve la serie en potencias truncada de grado n en todas las variables x_1, x_2, ... alrededor del punto (a, a, ...).

La llamada taylor (expr, [x_1, a_1, n_1], [x_2, a_2, n_2], ...) devuelve la serie en potencias truncada en las variables x_1, x_2, ... alrededor del punto (a_1, a_2, ...); el truncamiento se realiza, respectivamente, en los grados n_1, n_2, ....

La llamada taylor (expr, [x_1, x_2, ...], [a_1, a_2, ...], [n_1, n_2, ...]) devuelve la serie en potencias truncada en las variables x_1, x_2, ... alrededor del punto (a_1, a_2, ...), el truncamiento se realiza, respectivamente, en los grados n_1, n_2, ....

La llamada taylor (expr, [x, a, n, 'asymp]) devuelve el desarrollo de expr en potencias negativas de x - a. El término de mayor orden es (x - a)^-n.

Si maxtayorder vale true, entonces durante la manipulación algebraica de las series (truncadas) de Taylor, la función taylor intenta mantener tantos términos correctos como sea posible.

Si psexpand vale true, una expresión racional desarrollada se muestra completamente expandida. La variable ratexpand tiene el mismo efecto. Si psexpand vale false, una expresión multivariante se mostrará tal como lo hace el paquete de funciones racionales. Si psexpand vale multi, los términos del mismo grado son agrupados.

Véase también la variable taylor_logexpand para el control del desarrollo.

Ejemplos:

(%i1) taylor (sqrt (sin(x) + a*x + 1), x, 0, 3);
                           2             2
             (a + 1) x   (a  + 2 a + 1) x
(%o1)/T/ 1 + --------- - -----------------
                 2               8

                                   3      2             3
                               (3 a  + 9 a  + 9 a - 1) x
                             + -------------------------- + . . .
                                           48
(%i2) %^2;
                                    3
                                   x
(%o2)/T/           1 + (a + 1) x - -- + . . .
                                   6
(%i3) taylor (sqrt (x + 1), x, 0, 5);
                       2    3      4      5
                  x   x    x    5 x    7 x
(%o3)/T/      1 + - - -- + -- - ---- + ---- + . . .
                  2   8    16   128    256
(%i4) %^2;
(%o4)/T/                  1 + x + . . .
(%i5) product ((1 + x^i)^2.5, i, 1, inf)/(1 + x^2);
                         inf
                        /===\
                         ! !    i     2.5
                         ! !  (x  + 1)
                         ! !
                        i = 1
(%o5)                   -----------------
                              2
                             x  + 1
(%i6) ev (taylor(%, x,  0, 3), keepfloat);
                               2           3
(%o6)/T/    1 + 2.5 x + 3.375 x  + 6.5625 x  + . . .
(%i7) taylor (1/log (x + 1), x, 0, 3);
                               2       3
                 1   1   x    x    19 x
(%o7)/T/         - + - - -- + -- - ----- + . . .
                 x   2   12   24    720
(%i8) taylor (cos(x) - sec(x), x, 0, 5);
                                4
                           2   x
(%o8)/T/                - x  - -- + . . .
                               6
(%i9) taylor ((cos(x) - sec(x))^3, x, 0, 5);
(%o9)/T/                    0 + . . .
(%i10) taylor (1/(cos(x) - sec(x))^3, x, 0, 5);
                                               2          4
            1     1       11      347    6767 x    15377 x
(%o10)/T/ - -- + ---- + ------ - ----- - ------- - --------
             6      4        2   15120   604800    7983360
            x    2 x    120 x

                                                          + . . .
(%i11) taylor (sqrt (1 - k^2*sin(x)^2), x, 0, 6);
               2  2       4      2   4
              k  x    (3 k  - 4 k ) x
(%o11)/T/ 1 - ----- - ----------------
                2            24

                                    6       4       2   6
                               (45 k  - 60 k  + 16 k ) x
                             - -------------------------- + . . .
                                          720
(%i12) taylor ((x + 1)^n, x, 0, 4);
                      2       2     3      2         3
                    (n  - n) x    (n  - 3 n  + 2 n) x
(%o12)/T/ 1 + n x + ----------- + --------------------
                         2                 6

                               4      3       2         4
                             (n  - 6 n  + 11 n  - 6 n) x
                           + ---------------------------- + . . .
                                          24
(%i13) taylor (sin (y + x), x, 0, 3, y, 0, 3);
               3                 2
              y                 y
(%o13)/T/ y - -- + . . . + (1 - -- + . . .) x
              6                 2

                    3                       2
               y   y            2      1   y            3
          + (- - + -- + . . .) x  + (- - + -- + . . .) x  + . . .
               2   12                  6   12
(%i14) taylor (sin (y + x), [x, y], 0, 3);
                     3        2      2      3
                    x  + 3 y x  + 3 y  x + y
(%o14)/T/   y + x - ------------------------- + . . .
                                6
(%i15) taylor (1/sin (y + x), x, 0, 3, y, 0, 3);
          1   y              1    1               1            2
(%o15)/T/ - + - + . . . + (- -- + - + . . .) x + (-- + . . .) x
          y   6               2   6                3
                             y                    y

                                           1            3
                                      + (- -- + . . .) x  + . . .
                                            4
                                           y
(%i16) taylor (1/sin (y + x), [x, y], 0, 3);
                             3         2       2        3
            1     x + y   7 x  + 21 y x  + 21 y  x + 7 y
(%o16)/T/ ----- + ----- + ------------------------------- + . . .
          x + y     6                   360
Variable opcional: taylordepth

Valor por defecto: 3

Si todavía no hay términos no nulos, la función taylor dobla el grado del desarrollo de g(x) tantas veces como sea necesario para que el grado del desarrollo sea menor o igual que n 2^taylordepth.

Función: taylorinfo (expr)

Devuelve información sobre el desarrollo de Taylor expr. El valor devuelto por esta función es una lista de listas. Cada lista contiene el nombre de una variable, el punto de expansión y el grado del desarrollo.

La función taylorinfo devuelve false si expr no es un desarrollo de Taylor.

Ejemplo:

(%i1) taylor ((1 - y^2)/(1 - x), x, 0, 3, [y, a, inf]);
                  2                       2
(%o1)/T/ - (y - a)  - 2 a (y - a) + (1 - a )

         2                        2
 + (1 - a  - 2 a (y - a) - (y - a) ) x

         2                        2   2
 + (1 - a  - 2 a (y - a) - (y - a) ) x

         2                        2   3
 + (1 - a  - 2 a (y - a) - (y - a) ) x  + . . .
(%i2) taylorinfo(%);
(%o2)               [[y, a, inf], [x, 0, 3]]
Función: taylorp (expr)

Devuelve true si expr es un desarrollo de Taylor y false en caso contrario.

Variable opcional: taylor_logexpand

Valor por defecto: true

La variable taylor_logexpand controla los desarrollos de logaritmos en la función taylor.

Si taylor_logexpand vale true, todos los logaritmos se expanden completamente de manera que algunos problemas que se plantean debido a ciertas identidades logarítmicas no interfieran con el proceso del cálculo del desarrollo de Taylor. Sin embargo, este proceder no es del todo correcto.

Variable opcional: taylor_order_coefficients

Valor por defecto: true

La variable taylor_order_coefficients controla la ordenación de los coeficientes en un desarrollo de Taylor.

Si taylor_order_coefficients vale true, los coeficientes del desarrollo de Taylor se ordenan de la forma canónica.

Función: taylor_simplifier (expr)

Simplifica los coeficientes de la serie de potencias expr. Esta función es llamada desde la función taylor.

Variable opcional: taylor_truncate_polynomials

Valor por defecto: true

Si taylor_truncate_polynomials vale true, los polinomios quedan truncados en base a los niveles de truncamiento de entrada.

En otro caso, aquellos polinomios que se utilicen como entrada a la función taylor se consideran que tienen precisión infinita.

Función: taytorat (expr)

Convierte expr del formato de taylor al formato CRE (Canonical Rational Expression). El efecto es el mismo que haciendo rat (ratdisrep (expr)), pero más rápido.

Función: trunc (expr)

Devuelve la representación interna de la expresión expr de tal forma como si sus sumas fuesen una serie truncada de Taylor. La expresión expr no sufre ninguna otra modificación.

Ejemplo:

(%i1) expr: x^2 + x + 1;
                            2
(%o1)                      x  + x + 1
(%i2) trunc (expr);
                                2
(%o2)                  1 + x + x  + . . .
(%i3) is (expr = trunc (expr));
(%o3)                         true
Función: unsum (f, n)

Devuelve la diferencia f(n) - f(n - 1). En cierto sentido unsum es la inversa de sum.

Véase también nusum.

Ejemplos:

(%i1) g(p) := p*4^n/binomial(2*n,n);
                                     n
                                  p 4
(%o1)               g(p) := ----------------
                            binomial(2 n, n)
(%i2) g(n^4);
                              4  n
                             n  4
(%o2)                   ----------------
                        binomial(2 n, n)
(%i3) nusum (%, n, 0, n);
                     4        3       2              n
      2 (n + 1) (63 n  + 112 n  + 18 n  - 22 n + 3) 4      2
(%o3) ------------------------------------------------ - ------
                    693 binomial(2 n, n)                 3 11 7
(%i4) unsum (%, n);
                              4  n
                             n  4
(%o4)                   ----------------
                        binomial(2 n, n)
Variable opcional: verbose

Valor por defecto: false

Si verbose vale true, la función powerseries va imprimiendo mensajes durante su ejecución.


28.4 Introducción a las series de Fourier

El paquete fourie contiene funciones para el cálculo simbólico de series de Fourier. Hay funciones en el paquete fourie para calcular los coeficientes y para manipular las expresiones.


28.5 Funciones y variables para series de Fourier

Función: equalp (x, y)

Devuelve true si equal (x, y), en otro caso devuelve false. No devuelve el mensaje de error que se obtiene de equal (x, y) en un caso como éste.

Función: remfun (f, expr)
Función: remfun (f, expr, x)

La llamada remfun (f, expr) reemplaza todas las subexpresiones f (arg) por arg en expr.

La llamada remfun (f, expr, x) reemplaza todas las subexpresiones f (arg) por arg en expr sólo si arg contiene a la variable x.

Función: funp (f, expr)
Función: funp (f, expr, x)

La llamada funp (f, expr) devuelve true si expr contiene la función f.

La llamada funp (f, expr, x) devuelve true si expr contiene la función f y la variable x está presente en el argumento de alguna de las presencias de f.

Función: absint (f, x, halfplane)
Función: absint (f, x)
Función: absint (f, x, a, b)

La llamada absint (f, x, halfplane) devuelve la integral indefinida de f con respecto a x en el semiplano dado (pos, neg o both). La función f puede contener expresiones de la forma abs (x), abs (sin (x)), abs (a) * exp (-abs (b) * abs (x)).

La llamada absint (f, x) equivale a absint (f, x, pos).

La llamada absint (f, x, a, b) devuelve la integral definida de f con respecto a x de a a b.

Función: fourier (f, x, p)

Devuelve una lista con los coeficientes de Fourier de f(x) definida en el intervalo [-p, p].

Función: foursimp (l)

Simplifica sin (n %pi) a 0 si sinnpiflag vale true y cos (n %pi) a (-1)^n si cosnpiflag vale true.

Variable opcional: sinnpiflag

Valor por defecto: true

Véase foursimp.

Variable opcional: cosnpiflag

Valor por defecto: true

Véase foursimp.

Función: fourexpand (l, x, p, limit)

Calcula y devuelve la serie de Fourier a partir de la lista de los coeficientes de Fourier l hasta el término limit (limit puede ser inf). Los argumentos x y p tienen el mismo significado que en fourier.

Función: fourcos (f, x, p)

Devuelve los coeficientes de los cosenos de Fourier de f(x) definida en [0, p].

Función: foursin (f, x, p)

Devuelve los coeficientes de los senos de Fourier de f(x) definida en [0, p].

Función: totalfourier (f, x, p)

Devuelve fourexpand (foursimp (fourier (f, x, p)), x, p, 'inf).

Función: fourint (f, x)

Calcula y devuelve la lista de los coeficientes integrales de Fourier de f(x) definida en [minf, inf].

Función: fourintcos (f, x)

Devuelve los coeficientes integrales de los cosenos f(x) en [0, inf].

Función: fourintsin (f, x)

Devuelve los coeficientes integrales de los senos f(x) en [0, inf].


28.6 Funciones y variables para series de Poisson

Función: intopois (a)

Convierte a en un codificado Poisson.

Función: outofpois (a)

Convierte a desde codificado de Poisson a una representación general. Si a no está en forma de Poisson, outofpois hace la conversión, siendo entonces el valor retornado outofpois (intopois (a)). Esta función es un simplificador canónico para sumas de potencias de senos y cosenos.

Función: poisdiff (a, b)

Deriva a con respecto a b. El argumento b debe aparecer sólo en los argumentos trigonométricos o sólo en los coeficientes.

Función: poisexpt (a, b)

Idéntico a intopois (a^b). El argumento b debe ser un entero positivo.

Función: poisint (a, b)

Integra en un sentido restringido similar a poisdiff.

Variable optativa: poislim

Valor por defecto: 5

La variable poislim determina el dominio de los coeficientes en los argumentos de las funciones trigonométricas. El valor por defecto 5 corresponde al intervalo [-2^(5-1)+1,2^(5-1)], o [-15,16], pero puede reasignarse para [-2^(n-1)+1, 2^(n-1)].

Función: poismap (series, sinfn, cosfn)

Aplica las funciones sinfn a los términos sinusoidales y las funciones cosfn a los cosenoidales de la serie de Poisson dada. Tanto sinfn como cosfn son funciones de dos argumentos, los cuales son un coeficiente y una parte trigonométrica de un término de la serie.

Función: poisplus (a, b)

Idéntico a intopois (a + b).

Función: poissimp (a)

Convierte a en una serie de Poisson para a en su representación general.

Símbolo especial: poisson

El símbolo /P/ sigue a la etiqueta de las líneas que contienen expresiones que son series de Poisson.

Función: poissubst (a, b, c)

Sustituye b por a en c, donde c es una serie de Poisson.

(1) Si b es una de las variables u, v, w, x, y o z, entonces a debe ser una expresión lineal en esas variables (por ejemplo, 6*u + 4*v).

(2) Si b no es ninguna de esas variables, entonces a no puede contener tampoco a ninguna de ellas, ni senos, ni cosenos.

Función: poistimes (a, b)

Idéntico a intopois (a*b).

Función: printpois (a)

Presenta una serie de Poisson en un formato legible. Conjuntamente con outofpois, si es necesario convertirá a primero en una codificación de Poisson.


Siguiente: , Anterior:   [Índice general][Índice]