Siguiente: Introducción a las series, Anterior: Sumas productos y series, Subir: Sumas productos y series [Índice general][Índice]
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$
.
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)
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
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
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.
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
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
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
Siguiente: Introducción a las series, Anterior: Sumas productos y series, Subir: Sumas productos y series [Índice general][Índice]