From: Mario R. R. <rio...@us...> - 2013-08-01 01:49:06
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Maxima CAS". The branch, master has been updated via 277a702abead253c7abc757ac458a24ab3915b70 (commit) from e208a4d370e46bcbf899c2d28454bc54a2f7e125 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 277a702abead253c7abc757ac458a24ab3915b70 Author: Mario Rodriguez <rio...@us...> Date: Thu Aug 1 03:48:54 2013 +0200 Update translations diff --git a/doc/info/es/Number.es.texi b/doc/info/es/Number.es.texi index 59b41ce..6d35e45 100644 --- a/doc/info/es/Number.es.texi +++ b/doc/info/es/Number.es.texi @@ -1,4 +1,4 @@ -@c English version 2012-03-30 +@c English version 2013-07-30 @menu * Funciones y variables para teor@'{@dotless{i}}a de n@'umeros:: @end menu @@ -18,16 +18,18 @@ V@'ease tambi@'en @code{burn}. @example (%i1) zerobern: true$ (%i2) map (bern, [0, 1, 2, 3, 4, 5, 6, 7, 8]); - 1 1 1 1 1 -(%o2) [1, - -, -, 0, - --, 0, --, 0, - --] - 2 6 30 42 30 + 1 1 1 1 1 +(%o2) [1, - -, -, 0, - --, 0, --, 0, - --] + 2 6 30 42 30 (%i3) zerobern: false$ (%i4) map (bern, [0, 1, 2, 3, 4, 5, 6, 7, 8]); - 1 1 1 5 691 7 3617 43867 -(%o4) [1, - -, -, - --, --, - ----, -, - ----, -----] - 2 6 30 66 2730 6 510 798 + 1 1 1 1 1 5 691 7 +(%o4) [1, - -, -, - --, --, - --, --, - ----, -] + 2 6 30 42 30 66 2730 6 @end example + + @end deffn @deffn {Funci@'on} bernpoly (@var{x}, @var{n}) @@ -296,12 +298,17 @@ La llamada @code{divsum (@var{n})} devuelve la suma de los divisores de @var{n}. @deffn {Funci@'on} euler (@var{n}) Devuelve el @var{n}-@'esimo n@'umero de Euler del entero no negativo @var{n}. +Los n@'umero de Euler iguales a cero se eliminan si @code{zerobern} vale @code{false}. Para la constante de Euler-Mascheroni, v@'ease @code{%gamma}. @example -(%i1) map (euler, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); -(%o1) [1, 0, - 1, 0, 5, 0, - 61, 0, 1385, 0, - 50521] +(%i1) zerobern: true$ +(%i2) map (euler, [0, 1, 2, 3, 4, 5, 6]); +(%o2) [1, 0, - 1, 0, 5, 0, - 61] +(%i3) zerobern: false$ +(%i4) map (euler, [0, 1, 2, 3, 4, 5, 6]); +(%o4) [1, - 1, 5, - 61, 1385, - 50521, 2702765] @end example @end deffn @@ -322,14 +329,16 @@ Para ejemplos, v@'ease @code{ifactors}. @deffn {Funci@'on} fib (@var{n}) -Devuelve el @var{n}-@'esimo n@'umero de Fibonacci. La llamada @code{fib(0)} es igual a 0, @code{fib(1)} devuelve 1 y -@code{fib (-@var{n})} es igual a @code{(-1)^(@var{n} + 1) * fib(@var{n})}. +Devuelve el @var{n}-@'esimo n@'umero de Fibonacci. La llamada @code{fib(0)} +devuelve 0, @code{fib(1)} devuelve 1 y @code{fib (-@var{n})} es igual a +@code{(-1)^(@var{n} + 1) * fib(@var{n})}. -Despu@'es de llamar a @code{fib}, la variable @code{prevfib} toma el valor @code{fib (@var{x} - 1)}, que es el n@'umero de Fibonacci que precede al @'ultimo calculado. +Despu@'es de llamar a @code{fib}, la variable @code{prevfib} toma el valor +@code{fib (@var{n} - 1)}, que es el n@'umero de Fibonacci que precede al @'ultimo calculado. @example -(%i1) map (fib, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); -(%o1) [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] +(%i1) map (fib, [-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]); +(%o1) [- 3, 2, - 1, 1, 0, 1, 1, 2, 3, 5, 8, 13, 21] @end example @end deffn @@ -447,7 +456,7 @@ si @var{n} es un divisor nulo m@'odulo @var{m}. @example (%i1) inv_mod(3, 41); (%o1) 14 -(%i2) ratsimp(3^-1), modulus=41; +(%i2) ratsimp(3^-1), modulus = 41; (%o2) 14 (%i3) inv_mod(3, 42); (%o3) false @@ -477,7 +486,8 @@ Devuelve el s@'{@dotless{i}}mbolo de Jacobi para @var{p} y @var{q}. @end deffn @deffn {Funci@'on} lcm (@var{expr_1}, ..., @var{expr_n}) -Devuelve el m@'{@dotless{i}}nimo com@'un m@'ultiplo de sus argumentos. Los argumentos pueden ser tanto expresiones en general como enteros. +Devuelve el m@'{@dotless{i}}nimo com@'un m@'ultiplo de sus argumentos. +Los argumentos pueden ser tanto expresiones en general como enteros. Es necesario cargar en memoria esta funci@'on haciendo @code{load ("functs")}. @@ -486,6 +496,36 @@ Es necesario cargar en memoria esta funci@'on haciendo @code{load ("functs")}. + +@deffn {Funci@'on} lucas (@var{n}) +Devuelve el @var{n}-@'esimo n@'umero de Lucas. +@code{lucas(0)} es igual a 2, @code{lucas(1)} es igual a 1 y +@code{lucas(-@var{n})} es igual a @code{(-1)^(-@var{n}) * lucas(@var{n})}. + +@example +(%i1) map (lucas, [-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]); +(%o1) [7, - 4, 3, - 1, 2, 1, 3, 4, 7, 11, 18, 29, 47] +@end example + +Despu@'es de llamar a @code{lucas}, la variable global @code{next_lucas} +es igual a @code{lucas (@var{n} + 1)}, el n@'umero de Lucas que sigue al +@'ultimo que se ha devuelto. El ejemplo muestra como los n@'umeros de +Fibonacci se pueden calcular mediante @code{lucas} y @code{next_lucas}. + +@example +(%i1) fib_via_lucas(n) := + block([lucas : lucas(n)], + signum(n) * (2*next_lucas - lucas)/5 )$ +(%i2) map (fib_via_lucas, [-4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]); +(%o2) [- 3, 2, - 1, 1, 0, 1, 1, 2, 3, 5, 8, 13, 21] +@end example +@end deffn + + + + + + @deffn {Funci@'on} mod (@var{x}, @var{y}) Si @var{x} e @var{y} son n@'umeros reales e @var{y} es distinto de cero, @@ -714,3 +754,444 @@ Ejemplos: @end defvr + + + + + +@deffn {Funci@'on} zn_add_table (@var{n}) +Muestra la tabla de la suma de todos los elementos de (Z/@var{n}Z). + +V@'eanse tambi@'en @code{zn_mult_table} y @code{zn_power_table}. + +@end deffn + + + + + + + +@deffn {Funci@'on} zn_determinant (@var{matrix}, @var{p}) +Utiliza el procedimiento de la descomposici@'on LU para calcular el determinante +de @var{matrix} sobre (Z/@var{p}Z). El argumento @var{p} debe ser un n@'umero primo. + +Si el determinante es igual a cero, el procedimiento puede fallar, en cuyo caso +@code{zn_determinant} calcula el determinante no modular y luego reduce. + +V@'ease tambi@'en @code{zn_invert_by_lu}. + +Ejemplo: + +@example +(%i1) m : matrix([1,3],[2,4]); + [ 1 3 ] +(%o1) [ ] + [ 2 4 ] +(%i2) zn_determinant(m, 5); +(%o2) 3 +(%i3) m : matrix([2,4,1],[3,1,4],[4,3,2]); + [ 2 4 1 ] + [ ] +(%o3) [ 3 1 4 ] + [ ] + [ 4 3 2 ] +(%i4) zn_determinant(m, 5); +(%o4) 0 +@end example + +@end deffn + + + + + +@deffn {Funci@'on} zn_invert_by_lu (@var{matrix}, @var{p}) +Utiliza el procedimiento de la descomposici@'on LU para calcular la inversa +modular de @var{matrix} sobre (Z/@var{p}Z). El argumento @var{p} debe ser +un n@'umero primo y @var{matrix} invertible. La funci@'on @code{zn_invert_by_lu} +devuelve @code{false} si @var{matrix} no es invertible. + +V@'ease @code{zn_determinant}. + +Ejemplo: + +@example +(%i1) m : matrix([1,3],[2,4]); + [ 1 3 ] +(%o1) [ ] + [ 2 4 ] +(%i2) zn_determinant(m, 5); +(%o2) 3 +(%i3) mi : zn_invert_by_lu(m, 5); + [ 3 4 ] +(%o3) [ ] + [ 1 2 ] +(%i4) matrixmap(lambda([a], mod(a, 5)), m . mi); + [ 1 0 ] +(%o4) [ ] + [ 0 1 ] +@end example + +@end deffn + + + + + + +@deffn {Funci@'on} zn_log (@var{a}, @var{g}, @var{n}) +@deffnx {Funci@'on} zn_log (@var{a}, @var{g}, @var{n}, [[@var{p1}, @var{e1}], @dots{}, [@var{pk}, @var{ek}]]) +Calcula el logaritmo discreto. Sea (Z/@var{n}Z)* un grupo c@'{@dotless{i}}clico, +@var{g} una ra@'{@dotless{i}}z primitiva m@'odulo @var{n} y @var{a} un miembro +de este grupo, entonces @code{zn_log (a, g, n)} calcula la congruencia @code{g^x = a mod n}. + +El algoritmo que se aplica necesita una factorizaci@'on prima de @code{totient(n)}. Esta +factorizaci@'on puede requerir mucho tiempo de c@'alculo, por lo que en ciertos casos puede +ser aconsejable factorizar primero y luego pasar la lista de factores a @code{zn_log} como +cuarto argumento. La lista debe ser de la misma forma que las lista devuelta por +@code{ifactors(totient(n))} utilizando la opci@'on por defecto @code{factors_only : false}. + +El algoritmo utiliza la reducci@'on de Pohlig-Hellman y el m@'etodo Rho de Pollard +para los logaritmos discretos. El tiempo de ejecuci@'on de @code{zn_log} depende en +primer lugar del n@'umero de bits del mayor factor primo del totient. + +V@'eanse tambi@'en @code{zn_primroot}, @code{zn_order}, @code{ifactors} y @code{totient}. + +Ejemplos: + +@code{zn_log (a, g, n)} resuelve la congruencia @code{g^x = a mod n}. + +@example +(%i1) n : 22$ +(%i2) g : zn_primroot(n); +(%o2) 7 +(%i3) ord_7 : zn_order(7, n); +(%o3) 10 +(%i4) powers_7 : makelist(power_mod(g, x, n), x, 0, ord_7 - 1); +(%o4) [1, 7, 5, 13, 3, 21, 15, 17, 9, 19] +(%i5) zn_log(21, g, n); +(%o5) 5 +(%i6) map(lambda([x], zn_log(x, g, n)), powers_7); +(%o6) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] +@end example + +El cuarto argumento opcional debe ser de la misma forma que la lista devuelta por +@code{ifactors(totient(n))}. + +@example +(%i1) (p : 2^127-1, primep(p)); +(%o1) true +(%i2) ifs : ifactors(p - 1)$ +(%i3) g : zn_primroot(p, ifs); +(%o3) 43 +(%i4) a : power_mod(g, 1234567890, p)$ +(%i5) zn_log(a, g, p, ifs); +(%o5) 1234567890 +(%i6) time(%o5); +(%o6) [1.204] +(%i7) f_max : last(ifs); +(%o7) [77158673929, 1] +(%i8) slength( printf(false, "~b", f_max[1]) ); +(%o8) 37 +@end example + +@end deffn + + + + + + +@deffn {Funci@'on} zn_mult_table (@var{n}) +@deffnx {Funci@'on} zn_mult_table (@var{n}, all) +Sin el argumento opcional @var{all}, @code{zn_mult_table(n)} +muestra la tabla de multiplicaci@'on de los elementos de (Z/@var{n}Z)*, +que son todos elementos invertibles m@'odulo @var{n}. + +El argumento opcional @var{all} hace que la tabla se genere para todos los +elementos no nulos. + +V@'eanse tambi@'en @code{zn_add_table} y @code{zn_power_table}. + +Ejemplo: + +@example +(%i1) zn_mult_table(4); + [ 1 3 ] +(%o1) [ ] + [ 3 1 ] +(%i2) zn_mult_table(4, all); + [ 1 2 3 ] + [ ] +(%o2) [ 2 0 2 ] + [ ] + [ 3 2 1 ] +@end example + +@end deffn + + + + + + + +@deffn {Funci@'on} zn_order (@var{x}, @var{n}) +@deffnx {Funci@'on} zn_order (@var{x}, @var{n}, [[@var{p1}, @var{e1}], @dots{}, [@var{pk}, @var{ek}]]) +Devuelve el orden de @var{x} si es una unidad del grupo finito (Z/@var{n}Z)*, o devuelve @code{false}. +@var{x} una unidad m@'odulo @var{n} si es coprimo con @var{n}. + +El algoritmo que se aplica necesita una factorizaci@'on prima de @code{totient(n)}. Esta +factorizaci@'on puede requerir mucho tiempo de c@'alculo, por lo que en ciertos casos puede +ser aconsejable factorizar primero y luego pasar la lista de factores a @code{zn_log} como +tercer argumento. La lista debe ser de la misma forma que las lista devuelta por +@code{ifactors(totient(n))} utilizando la opci@'on por defecto @code{factors_only : false}. + +V@'eanse tambi@'en @code{zn_primroot}, @code{ifactors} y @code{totient}. + +Ejemplos: + +@code{zn_order} calcula el orden de la unidad @var{x} en (Z/@var{n}Z)*. + +@example +(%i1) n : 22$ +(%i2) g : zn_primroot(n); +(%o2) 7 +(%i3) units_22 : sublist(makelist(i,i,1,21), lambda([x], gcd(x, n) = 1)); +(%o3) [1, 3, 5, 7, 9, 13, 15, 17, 19, 21] +(%i4) (ord_7 : zn_order(7, n)) = totient(n); +(%o4) 10 = 10 +(%i5) powers_7 : makelist(power_mod(g,i,n), i,0,ord_7 - 1); +(%o5) [1, 7, 5, 13, 3, 21, 15, 17, 9, 19] +(%i6) map(lambda([x], zn_order(x, n)), powers_7); +(%o6) [1, 10, 5, 10, 5, 2, 5, 10, 5, 10] +(%i7) map(lambda([x], ord_7/gcd(x, ord_7)), makelist(i, i,0,ord_7 - 1)); +(%o7) [1, 10, 5, 10, 5, 2, 5, 10, 5, 10] +(%i8) totient(totient(n)); +(%o8) 4 +@end example + +El tercer argumento opcional debe ser de la misma forma que la lista devuelta +por @code{ifactors(totient(n))}. + +@example +(%i1) (p : 2^142 + 217, primep(p)); +(%o1) true +(%i2) ifs : ifactors( totient(p) )$ +(%i3) g : zn_primroot(p, ifs); +(%o3) 3 +(%i4) is( (ord_3 : zn_order(g, p, ifs)) = totient(p) ); +(%o4) true +(%i5) map(lambda([x], ord_3/zn_order(x, p, ifs)), makelist(i,i,2,15)); +(%o5) [22, 1, 44, 10, 5, 2, 22, 2, 8, 2, 1, 1, 20, 1] +@end example + +@end deffn + + + + + +@deffn {Funci@'on} zn_power_table (@var{n}) +@deffnx {Funci@'on} zn_power_table (@var{n}, all) +Sin el argumento opcional @var{all}, @code{zn_power_table(n)} +muestra la tabla de potencias de los elementos de (Z/@var{n}Z)*, +que son todos elementos invertibles m@'odulo @var{n}. El exponente +se obtiene con un bucle desde @code{1} hasta @code{totient(n)} +y la tabla termina con una columna de unos al lado derecho. + +El argumento opcional @var{all} hace que la tabla se genere para todos los +elementos no nulos. En este caso, el exponente se calcula con un bucle desde +@code{1} hasta @code{totient(n) + 1} y la @'ultima columna es por lo tanto +igual a la primera. + +V@'eanse tambi@'en @code{zn_add_table} y @code{zn_mult_table}. + +Ejemplo: + +@example +(%i1) zn_power_table(6); + [ 1 1 ] +(%o1) [ ] + [ 5 1 ] +(%i2) zn_power_table(6, all); + [ 1 1 1 ] + [ ] + [ 2 4 2 ] + [ ] +(%o2) [ 3 3 3 ] + [ ] + [ 4 4 4 ] + [ ] + [ 5 1 5 ] +@end example + +@end deffn + + + + + + +@deffn {Funci@'on} zn_primroot (@var{n}) +@deffnx {Funci@'on} zn_primroot (@var{n}, [[@var{p1}, @var{e1}], @dots{}, [@var{pk}, @var{ek}]]) +Si el grupo multiplicativo es c@'{@dotless{i}}clico, @code{zn_primroot} +calcula la menor ra@'{@dotless{i}}z primitiva de m@'odulo @var{n}. (Z/@var{n}Z)* es +c@'{@dotless{i}}clico si @var{n} es igual a @code{2}, @code{4}, @code{p^k} o @code{2*p^k}, +siendo @code{p} primo y mayor que @code{2} y @code{k} un n@'umero natural. +Si a la variable opcional @code{zn_primroot_pretest}, cuyo valor por defecto es +@code{false}, se le da el valor @code{true}, entonces @code{zn_primroot} +realiza una prueba previa. En cualquier caso, el c@'alculo est@'a limitado por la +cota superior @code{zn_primroot_limit}. + +Si (Z/@var{n}Z)* no es c@'{@dotless{i}}clico o si no tiene ra@'{@dotless{i}}ces +primitivas menores que @code{zn_primroot_limit}, @code{zn_primroot} devuelve +@code{false}. + +El algoritmo que se aplica necesita una factorizaci@'on prima de @code{totient(n)}. Esta +factorizaci@'on puede requerir mucho tiempo de c@'alculo, por lo que en ciertos casos puede +ser aconsejable factorizar primero y luego pasar la lista de factores a @code{zn_log} como +argumento adicional. La lista debe ser de la misma forma que las lista devuelta por +@code{ifactors(totient(n))} utilizando la opci@'on por defecto @code{factors_only : false}. + +V@'eanse tambi@'en @code{zn_primroot_p}, @code{zn_order}, @code{ifactors} y @code{totient}. + +Ejemplos: + +@code{zn_primroot} calcula la menor ra@'{@dotless{i}}z primitiva de m@'odulo @var{n} o +devuelve @code{false}. + +@example +(%i1) n : 14$ +(%i2) g : zn_primroot(n); +(%o2) 3 +(%i3) zn_order(g, n) = totient(n); +(%o3) 6 = 6 +(%i4) n : 15$ +(%i5) zn_primroot(n); +(%o5) false +@end example + +El argumento opcional debe ser de la misma forma que la lista devuelta +por @code{ifactors(totient(n))}. + +@example +(%i1) (p : 2^142 + 217, primep(p)); +(%o1) true +(%i2) ifs : ifactors( totient(p) )$ +(%i3) g : zn_primroot(p, ifs); +(%o3) 3 +(%i4) [time(%o2), time(%o3)]; +(%o4) [[15.556972], [0.004]] +(%i5) is(zn_order(g, p, ifs) = p - 1); +(%o5) true +(%i6) n : 2^142 + 216$ +(%i7) ifs : ifactors(totient(n))$ +(%i8) zn_primroot(n, ifs), + zn_primroot_limit : 200, zn_primroot_verbose : true; +`zn_primroot' stopped at zn_primroot_limit = 200 +(%o8) false +@end example + +@end deffn + + + + + + +@defvr {Option variable} zn_primroot_limit +Valor por defecto: @code{1000} + +Si @code{zn_primroot} no puede encontrar una ra@'{@dotless{i}}z primitiva, +entonces se para en esta cota superior. Si a la variable opcional +@code{zn_primroot_verbose} se le da el valor @code{true}, se imprimir@'a un +mensaje cuando @code{zn_primroot_limit} sea alcanzado. + +@end defvr + + + + + + + +@deffn {Funci@'on} zn_primroot_p (@var{x}, @var{n}) +@deffnx {Funci@'on} zn_primroot_p (@var{x}, @var{n}, [[@var{p1}, @var{e1}], @dots{}, [@var{pk}, @var{ek}]]) +Comprueba si @var{x} es una ra@'{@dotless{i}}z primitiva en el +grupo multiplizativo (Z/@var{n}Z)*. + +El algoritmo que se aplica necesita una factorizaci@'on prima de @code{totient(n)}. Esta +factorizaci@'on puede requerir mucho tiempo de c@'alculo, por lo que en ciertos casos puede +ser aconsejable factorizar primero y luego pasar la lista de factores a @code{zn_log} como +tercer argumento. La lista debe ser de la misma forma que las lista devuelta por +@code{ifactors(totient(n))} utilizando la opci@'on por defecto @code{factors_only : false}. + +V@'eanse tambi@'en @code{zn_primroot}, @code{zn_order}, @code{ifactors} y @code{totient}. + +Ejemplos: + +@code{zn_primroot_p} como funci@'on de predicado. + +@example +(%i1) n : 14$ +(%i2) units_14 : sublist(makelist(i,i,1,13), lambda([i], gcd(i, n) = 1)); +(%o2) [1, 3, 5, 9, 11, 13] +(%i3) zn_primroot_p(13, n); +(%o3) false +(%i4) sublist(units_14, lambda([x], zn_primroot_p(x, n))); +(%o4) [3, 5] +(%i5) map(lambda([x], zn_order(x, n)), units_14); +(%o5) [1, 6, 6, 3, 3, 2] +@end example + +El tercer argumento opcional debe ser de la misma forma que la lista +devuelta por @code{ifactors(totient(n))}. + +@example +(%i1) (p : 2^142 + 217, primep(p)); +(%o1) true +(%i2) ifs : ifactors( totient(p) )$ +(%i3) sublist(makelist(i,i,1,50), lambda([x], zn_primroot_p(x, p, ifs))); +(%o3) [3, 12, 13, 15, 21, 24, 26, 27, 29, 33, 38, 42, 48] +(%i4) [time(%o2), time(%o3)]; +(%o4) [[7.748484], [0.036002]] +@end example + +@end deffn + + + + + + +@defvr {Option variable} zn_primroot_pretest +Valor por defecto: @code{false} + +El grupo multiplicativo (Z/@var{n}Z)* es c@'{@dotless{i}}clico si if @var{n} +es igual a @code{2}, @code{4}, @code{p^k} o @code{2*p^k}, siendo @code{p} +un n@'umero primo mayor que @code{2} y @code{k} es un n@'umero natural. + +La variable @code{zn_primroot_pretest} controla si @code{zn_primroot} debe +comprobar si sucede alguna de estas situaciones antes de calcular la menor +ra@'{@dotless{i}}z primitiva. Solo se realizar@'a esta comprobaci@'on si +@code{zn_primroot_pretest} toma el valor @code{true}. + +@end defvr + + + + + + + +@defvr {Option variable} zn_primroot_verbose +Valor por defecto: @code{false} + +Controla si @code{zn_primroot} imprime un mensaje cuando alcanza @code{zn_primroot_limit}. + +@end defvr + + + diff --git a/doc/info/es/Numerical.es.texi b/doc/info/es/Numerical.es.texi index 875c76b..2f50784 100644 --- a/doc/info/es/Numerical.es.texi +++ b/doc/info/es/Numerical.es.texi @@ -1,29 +1,24 @@ @c English version 2011-08-21 @menu -* Introducci@'on a los m@'etodos num@'ericos:: -* Series de Fourier:: -* Funciones y variables para los m@'etodos num@'ericos:: -* Funciones y variables para las series de Fourier:: +* Introducci@'on a la transformada r@'apida de Fourier:: +* Funciones y variables para la transformada r@'apida de Fourier:: +* Funciones para la resoluci@'on num@'erica de ecuaciones:: +* Introducci@'on a la resoluci@'on num@'erica de ecuaciones diferenciales:: +* Funciones para la resoluci@'on num@'erica de ecuaciones diferenciales:: @end menu -@node Introducci@'on a los m@'etodos num@'ericos, Series de Fourier, M@'etodos num@'ericos, M@'etodos num@'ericos -@section Introducci@'on a los m@'etodos num@'ericos +@node Introducci@'on a la transformada r@'apida de Fourier, Funciones y variables para la transformada r@'apida de Fourier, M@'etodos num@'ericos, M@'etodos num@'ericos +@section Introducci@'on a la transformada r@'apida de Fourier -@node Series de Fourier, Funciones y variables para los m@'etodos num@'ericos, Introducci@'on a los m@'etodos num@'ericos, M@'etodos num@'ericos -@section Series de Fourier +El paquete @code{fft} contiene funciones para el c@'alculo num@'erico (no simb@'olico) +de la transformada r@'apida de Fourier. -El paquete @code{fft} contiene funciones para el c@'alculo num@'erico (no simb@'olico) de la transformada r@'apida de Fourier. La instrucci@'on @code{load ("fft")} carga el paquete. V@'ease @code{fft}. -El paquete @code{fourie} contiene funciones para el c@'alculo simb@'olico de series de Fourier. La instrucci@'on -@code{load ("fourie")} carga el paquete. Hay funciones en el paquete @code{fourie} para calcular los coeficientes de Fourier y para la transformaci@'on de expresiones. V@'ease @code{Funciones y variables para las series de Fourier}. -@c end concepts M@'etodos num@'ericos -@node Funciones y variables para los m@'etodos num@'ericos, Funciones y variables para las series de Fourier, Series de Fourier, M@'etodos num@'ericos -@section Funciones y variables para los m@'etodos num@'ericos -@c NOTE: Let's keep POLARTORECT, RECTTOPOLAR, and IFT before FFT -@c in this file. Otherwise DESCRIBE returns the FFT text (because -@c POLARTORECT, etc are list in the heading of FFT with @defunx). + + +@node Funciones y variables para la transformada r@'apida de Fourier, Funciones para la resoluci@'on num@'erica de ecuaciones, Introducci@'on a la transformada r@'apida de Fourier, M@'etodos num@'ericos @deffn {Funci@'on} polartorect (@var{magnitude_array}, @var{phase_array}) @@ -48,6 +43,8 @@ V@'ease tambi@'en @code{fft}. @end deffn + + @deffn {Funci@'on} recttopolar (@var{real_array}, @var{imaginary_array}) Transforma valores complejos de la forma @code{a + b %i} a la forma @@ -96,7 +93,7 @@ a continuaci@'on. Si @code{x} es el resultado de la transformada inversa, entonces para @code{j} entre 0 y @code{n - 1} se tiene @example -x[j] = sum(y[k] exp(+2 %i %pi j k / n), k, 0, n - 1) +x[j] = sum(y[k] exp(-2 %i %pi j k / n), k, 0, n - 1) @end example Para utilizar esta funci@'on ejec@'utese antes @code{load(fft)}. @@ -179,7 +176,7 @@ a continuaci@'on. Si @code{y} es el resultado de la transformada inversa, entonces para @code{k} entre 0 y @code{n - 1} se tiene @example -y[k] = (1/n) sum(x[j] exp(-2 %i %pi j k / n), j, 0, n - 1) +y[k] = (1/n) sum(x[j] exp(+2 %i %pi j k / n), j, 0, n - 1) @end example Si los datos @var{x} son reales, los coeficientes reales @code{a} y @code{b} @@ -322,6 +319,18 @@ C@'alculo de los coeficientes del seno y coseno. + + + + + + + +@node Funciones para la resoluci@'on num@'erica de ecuaciones, Introducci@'on a la resoluci@'on num@'erica de ecuaciones diferenciales, Funciones y variables para la transformada r@'apida de Fourier, M@'etodos num@'ericos +@section Funciones para la resoluci@'on num@'erica de ecuaciones + + + @deffn {Funci@'on} horner (@var{expr}, @var{x}) @deffnx {Funci@'on} horner (@var{expr}) Cambia el formato de @var{expr} seg@'un la regla de Horner utilizando @var{x} como variable principal, si @'esta se especifica. El argumento @code{x} se puede omitir, en cuyo caso se considerar@'a como variable principal la de @var{expr} en su formato racional can@'onico (CRE). @@ -520,123 +529,403 @@ Ejemplos: -@node Funciones y variables para las series de Fourier, , Funciones y variables para los m@'etodos num@'ericos, M@'etodos num@'ericos -@section Funciones y variables para las series de Fourier - -@c REPHRASE -@deffn {Funci@'on} equalp (@var{x}, @var{y}) -Devuelve @code{true} si @code{equal (@var{x}, @var{y})}, en otro caso devuelve @code{false}. No devuelve el mensaje de error que se obtiene de @code{equal (x, y)} en un caso como @'este. - -@c NEEDS EXAMPLES -@end deffn - -@deffn {Funci@'on} remfun (@var{f}, @var{expr}) -@deffnx {Funci@'on} remfun (@var{f}, @var{expr}, @var{x}) -La llamada @code{remfun (@var{f}, @var{expr})} reemplaza todas las subexpresiones @code{@var{f} (@var{arg})} por @var{arg} en @var{expr}. - -La llamada @code{remfun (@var{f}, @var{expr}, @var{x})} reemplaza todas las subexpresiones @code{@var{f} (@var{arg})} por @var{arg} en @var{expr} s@'olo si @var{arg} contiene a la variable @var{x}. -@c NEEDS EXAMPLES -@end deffn +@node Introducci@'on a la resoluci@'on num@'erica de ecuaciones diferenciales, Funciones para la resoluci@'on num@'erica de ecuaciones diferenciales, Funciones para la resoluci@'on num@'erica de ecuaciones, M@'etodos num@'ericos +@section Introducci@'on a la resoluci@'on num@'erica de ecuaciones diferenciales -@deffn {Funci@'on} funp (@var{f}, @var{expr}) -@deffnx {Funci@'on} funp (@var{f}, @var{expr}, @var{x}) -La llamada @code{funp (@var{f}, @var{expr})} devuelve @code{true} si @var{expr} contiene la funci@'on @var{f}. +Las ecuaciones diferenciales ordinarias (EDO) que se resuelven con las funciones de esta +secci@'on deben tener la forma +@ifnottex +@example + dy + -- = F(x,y) + dx +@end example +@end ifnottex +@tex +$${{dy}\over{dx}} = F(x,y)$$ +@end tex +la cual es una EDO de primer orden. Las ecuaciones diferenciales de orden +@var{n} deben escribirse como un sistema de @var{n} ecuaciones de primer +orden del tipo anterior. Por ejemplo, una EDO de segundo orden debe escribirse +como un sistema de dos ecuaciones, +@ifnottex +@example + dx dy + -- = G(x,y,t) -- = F(x,y,t) + dt dt +@end example +@end ifnottex +@tex +$${{dx}\over{dt}} = G(x,y,t) \qquad {{dy}\over{dt}} = F(x,y,t)$$ +@end tex + +El primer argumento de las funciones debe ser una lista con las expresiones +de los miembros derechos de las EDOs. Las variables cuyas derivadas se representan +por las expresiones anteriores deben darse en una segunda lista. En el caso antes +citado, las variables son @var{x} y @var{y}. La variable independiente, @var{t} +en los mismos ejemplos anteriores, pueden darse mediante una opci@'on adicional. +Si las expresiones dadas no dependen de esa variable independiente, el sistema +recibe el nombre de aut@'onomo. + + + + + + + +@node Funciones para la resoluci@'on num@'erica de ecuaciones diferenciales, , Introducci@'on a la resoluci@'on num@'erica de ecuaciones diferenciales, M@'etodos num@'ericos +@section Funciones para la resoluci@'on num@'erica de ecuaciones diferenciales + + + +@deffn {Funci@'on} plotdf (@var{dydx}, ...options...) +@deffnx {Funci@'on} plotdf (@var{dvdu}, @code{[}@var{u},@var{v}@code{]}, ...options...) +@deffnx {Funci@'on} plotdf (@code{[}@var{dxdt},@var{dydt}@code{]}, ...options...) +@deffnx {Funci@'on} plotdf (@code{[}@var{dudt},@var{dvdt}@code{]}, @code{[}@var{u},@var{v}@code{]}, ...options...) +Dibuja un campo de direcciones en dos dimensiones @var{x} y @var{y}. + +@var{dydx}, @var{dxdt} y @var{dydt} son expresiones que dependen de @var{x} y +@var{y}. Adem@'as de esas dos variables, las dos expresiones pueden depender de +un conjunto de par@'ametros, con valores num@'ericos que son dados por medio +de la opci@'on @code{parameters} (la sintaxis de esa opci@'on se explica mas al +frente), o con un rango de posibles valores definidos con la opci@'on +@var{sliders}. + +Varias otras opciones se pueden incluir dentro del comando, o +seleccionadas en el men@'u. Haciendo click en un punto del gr@'afico se +puede hacer que sea dibujada la curva integral que pasa por ese punto; +lo mismo puede ser hecho dando las coordenadas del punto con la opci@'on +@code{trajectory_at} dentro del comando plotdf. La direcci@'on de +integraci@'on se puede controlar con la opci@'on @code{direction}, que +acepta valores de @emph{forward}, @emph{backward} ou @emph{both}. El +n@'umero de pasos realizado en la integraci@'on num@'erica se controla +con la opci@'on @code{nsteps} y el incremento del tiempo en cada paso +con la opci@'on @code{tstep}. Se usa el m@'etodo de Adams Moulton para +hacer la integraci@'on num@'erica; tambi@'en es posible cambiar para el +m@'etodo de Runge-Kutta de cuarto orden con ajuste de pasos. + +@b{Men@'u de la ventana del gr@'afico:} + +El men@'u de la ventana gr@'afica dispone de las siguientes opciones: +@emph{Zoom}, que permite cambiar el comportamiento del rat@'on, de +manera que har@'a posible el hacer zoom en la regi@'on del gr@'afico +haciendo clic con el bot@'on izquierdo. Cada clic agranda la imagen +manteniendo como centro de la misma el punto sobre el cual se ha hecho +clic. Manteniendo pulsada la tecla @key{Shift} mientras se hace clic, +retrocede al tama@~no anterior. Para reanudar el c@'alculo de las +trayectorias cuando se hace clic, seleccine la opci@'on @emph{Integrate} +del men@'u. + +La opci@'on @emph{Config} del men@'u se puede utilizar para cambiar +la(s) EDO(S) y algunos otros ajustes. Despu@'es de hacer los cambios, se +debe utilizar la opci@'on @emph{Replot} para activar los nuevos ajustes. +Si en el campo @emph{Trajectory at} del men@'u de di@'alogo de +@emph{Config} se introducen un par de coordenadas y luego se pulsa la +tecla @key{retorno}, se mostrar@'a una nueva curva integral, adem@'as de +las ya dibujadas. Si se selecciona la opci@'on @emph{Replot}, s@'olo se +mostrar@'a la @'ultima curva integral seleccionada. + +Manteniendo pulsado el bot@'on derecho del rat@'on mientras se mueve el +cursor, se puede arrastrar el gr@'afico horizontal y verticalmente. +Otros par@'ametros, como pueden ser el n@'umero de pasos, el valor +inicial de @var{t}, las coordenadas del centro y el radio, pueden +cambiarse en el submen@'u de la opci@'on @emph{Config}. + +Con la opci@'on @emph{Save}, se puede obtener una copia del gr@'afico en +una impresora Postscript o guardarlo en un fichero Postscript. Para +optar entre la impresi@'on o guardar en fichero, se debe seleccionar +@emph{Print Options} en la ventana de di@'alogo de @emph{Config}. Una +vez cubiertos los campos de la ventana de di@'alogo de @emph{Save}, +ser@'a necesario seleccionar la opci@'on @emph{Save} del primer men@'u +para crear el fichero o imprimir el gr@'afico. + +@b{Opciones gr@'aficas:} + +La funci@'on @code{plotdf} admite varias opciones, cada una de las cuales +es una lista de dos o m@'as elementos. El primer elemento es el nombre de +la opci@'on, y el resto est@'a formado por el valor o valores asignados +a dicha opci@'on. + +La funci@'on @code{plotdf} reconoce las siguientes opciones: + +@itemize @bullet +@item +@dfn{tstep} establece la amplitud de los incrementos en la +variable independiente @var{t}, utilizados para calcular la curva +integral. Si se aporta s@'olo una expresi@'on @var{dydx}, la variable +@var{x} ser@'a directamente proporcional a @var{t}. +El valor por defecto es 0.1. + +@item +@dfn{nsteps} establece el n@'umero de pasos de longitud +@code{tstep} que se utilizar@'an en la variable independiente para +calcular la curva integral. +El valor por defecto es 100. + +@item +@dfn{direction} establece la direcci@'on de la variable +independiente que ser@'a seguida para calcular una curva integral. +Valores posibles son: @code{forward}, para hacer que la variable +independiente aumente @code{nsteps} veces, con incrementos @code{tstep}; +@code{backward}, para hacer que la variable independiente +disminuya; @code{both}, para extender la curva integral @code{nsteps} +pasos hacia adelante y @code{nsteps} pasos hacia atr@'as. +Las palabras @code{right} y @code{left} se pueden utilizar como +sin@'onimos de @code{forward} y @code{backward}. +El valor por defecto es @code{both}. + +@item +@dfn{tinitial} establece el valor inicial de la variable +@var{t} utilizado para calcular curvas integrales. Puesto que las +ecuaciones diferenciales son aut@'onomas, esta opci@'on s@'olo +aparecer@'a en los gr@'aficos de las curvas como funciones de @var{t}. +El valor por defecto es 0. + +@item +@dfn{versus_t} se utiliza para crear una segunda ventana +gr@'afica, con el gr@'afico de una curva integral, como dos funciones +@var{x}, @var{y}, de variable independiente @var{t}. Si se le da a +@code{versus_t} cualquier valor diferente de 0, se mostrar@'a la +segunda ventana gr@'afica, la cual incluye otro men@'u, similar +al de la ventana principal. +El valor por defecto es 0. + +@item +@dfn{trajectory_at} establece las coordenadas @var{xinitial} +y @var{yinitial} para el extremo inicial de la curva integral. +No tiene asignado valor por defecto. + +@item +@dfn{parameters} establece una lista de par@'ametros, +junto con sus valores num@'ericos, que son utilizados en la +definici@'on de la ecuaci@'on diferencial. Los nombres de los +par@'ametros y sus valores deben escribirse en formato de cadena +de caracteres como una secuencia de pares @code{nombre=valor} +separados por comas. + +@item +@dfn{sliders} establece una lista de par@'ametros que +se cambiar@'an interactivamente utilizando barras de deslizamiento, +as@'{@dotless{i}} como los rangos de variaci@'on de dichos par@'ametros. +Los nombres de los par@'ametros y sus rangos deben escribirse en formato +de cadena de caracteres como una secuencia de pares @code{nombre=min:max} +separados por comas. + +@item +@dfn{xfun} establece una cadena de caracteres con funciones +de @var{x} separadas por puntos y comas para ser representadas por +encima del campo de direcciones. Estas funciones ser@'an interpretadas +por Tcl, no por Maxima. + +@item +@dfn{xradius} es la mitad de la longitud del rango de valores +a representar en la direcci@'on x. +El valor por defecto es 10. + +@item +@dfn{yradius} es la mitad de la longitud del rango de valores +a representar en la direcci@'on y. +El valor por defecto es 10. + +@item +@dfn{xcenter} es la coordenada x del punto situado en el centro +del gr@'afico. +El valor por defecto es 0. + +@item +@dfn{ycenter} es la coordenada y del punto situado en el centro +del gr@'afico. +El valor por defecto es 0. + +@item +@dfn{width} establece el ancho de la ventana gr@'afica en +p@'{@dotless{i}}xeles. +El valor por defecto es 500. + +@item +@dfn{height} establece la altura de la ventana gr@'afica en +p@'{@dotless{i}}xeles. +El valor por defecto es 500. + +@end itemize + +@b{Ejemplos:} + +NOTA: Dependiendo de la interface que se use para Maxima, las funciones +que usan @code{openmath}, incluida @code{plotdf}, pueden desencadenar un +fallo si terminan en punto y coma, en vez del s@'{@dotless{i}}mbolo de +d@'olar. Para evitar problemas, se usar@'a el s@'{@dotless{i}}mbolo de +d@'olar en todos ejemplos. + +@itemize @bullet +@item +Para mostrar el campo de direcciones de la ecuaci@'on diferencial +@math{y' = exp(-x) + y} y la soluci@'on que pasa por @math{(2, -0.1)}: +@example +(%i1) load("plotdf")$ -La llamada @code{funp (@var{f}, @var{expr}, @var{x})} devuelve @code{true} si @var{expr} contiene la funci@'on @var{f} y la variable @var{x} est@'a presente en el argumento de alguna de las presencias de @var{f}. +(%i2) plotdf(exp(-x)+y,[trajectory_at,2,-0.1]); +@end example -@c NEEDS EXAMPLES -@end deffn +@ifnotinfo +@image{../figures/plotdf1,8cm} +@end ifnotinfo -@deffn {Funci@'on} absint (@var{f}, @var{x}, @var{halfplane}) -@deffnx {Funci@'on} absint (@var{f}, @var{x}) -@deffnx {Funci@'on} absint (@var{f}, @var{x}, @var{a}, @var{b}) -La llamada @code{absint (@var{f}, @var{x}, @var{halfplane})} devuelve la integral indefinida de @var{f} con respecto a -@var{x} en el semiplano dado (@code{pos}, @code{neg} o @code{both}). La funci@'on @var{f} puede contener expresiones de la forma @code{abs (x)}, @code{abs (sin (x))}, @code{abs (a) * exp (-abs (b) * abs (x))}. +@item +Para mostrar el campo de direcciones de la ecuaci@'on +@math{diff(y,x) = x - y^2} y la soluci@'on de condici@'on +inicial @math{y(-1) = 3}, se puede utilizar la sentencia: +@example +(%i3) plotdf(x-y^2,[xfun,"sqrt(x);-sqrt(x)"], + [trajectory_at,-1,3], [direction,forward], + [yradius,5],[xcenter,6]); +@end example +El gr@'afico tambi@'en muestra la funci@'on @math{y = sqrt(x)}. + +@ifnotinfo +@image{../figures/plotdf2,8cm} +@end ifnotinfo + +@item +El siguiente ejemplo muestra el campo de direcciones de un oscilador +arm@'onico, definido por las ecuaciones @math{dx/dt = y} y +@math{dy/dt = -k*x/m}, y la curva integral que pasa por +@math{(x,y) = (6,0)}, con una barra de deslizamiento que +permitir@'a cambiar el valor de @math{m} interactivamente +(@math{k} permanece fijo a 2): +@example +(%i4) plotdf([y,-k*x/m],[parameters,"m=2,k=2"], + [sliders,"m=1:5"], [trajectory_at,6,0]); +@end example -La llamada @code{absint (@var{f}, @var{x})} equivale a @code{absint (@var{f}, @var{x}, pos)}. +@ifnotinfo +@image{../figures/plotdf3,8cm} +@end ifnotinfo -La llamada @code{absint (@var{f}, @var{x}, @var{a}, @var{b})} devuelve la integral definida de @var{f} con respecto a @var{x} de @var{a} a @var{b}. +@item +Para representar el campo de direcciones de la ecuaci@'on de +Duffing, @math{m*x''+c*x'+k*x+b*x^3 = 0}, se introduce la +variable @math{y=x'} y se hace: +@example +(%i5) plotdf([y,-(k*x + c*y + b*x^3)/m], + [parameters,"k=-1,m=1.0,c=0,b=1"], + [sliders,"k=-2:2,m=-1:1"],[tstep,0.1]); +@end example -@c NEEDS EXAMPLES -@end deffn +@ifnotinfo +@image{../figures/plotdf4,8cm} +@end ifnotinfo +@item +El campo de direcciones de un p@'endulo amortiguado, +incluyendo la soluci@'on para condiciones iniciales dadas, +con una barra de deslizamiento que se puede utilizar para +cambiar el valor de la masa, @math{m}, y con el gr@'afico +de las dos variables de estado como funciones del tiempo: -@deffn {Funci@'on} fourier (@var{f}, @var{x}, @var{p}) -Devuelve una lista con los coeficientes de Fourier de -@code{@var{f}(@var{x})} definida en el intervalo @code{[-p, p]}. +@example +(%i6) plotdf([y,-g*sin(x)/l - b*y/m/l], + [parameters,"g=9.8,l=0.5,m=0.3,b=0.05"], + [trajectory_at,1.05,-9],[tstep,0.01], + [xradius,6],[yradius,14], + [xcenter,-4],[direction,forward],[nsteps,300], + [sliders,"m=0.1:1"], [versus_t,1]); +@end example -@c NEEDS EXAMPLES -@end deffn +@ifnotinfo +@image{../figures/plotdf5,8cm}@image{../figures/plotdf6,8cm} +@end ifnotinfo -@c NEES EXPANSION. WHAT IS THE ARGUMENT l ?? -@deffn {Funci@'on} foursimp (@var{l}) -Simplifica @code{sin (n %pi)} a 0 si @code{sinnpiflag} vale @code{true} y -@code{cos (n %pi)} a @code{(-1)^n} si @code{cosnpiflag} vale @code{true}. +@end itemize -@c NEEDS EXAMPLES @end deffn -@defvr {Variable opcional} sinnpiflag -Valor por defecto: @code{true} -V@'ease @code{foursimp}. -@end defvr +@deffn {Funci@'on} ploteq (@var{exp}, ...options...) -@defvr {Variable opcional} cosnpiflag -Valor por defecto: @code{true} +Dibuja curvas equipotenciales para @var{exp}, que debe ser una expresi@'on +dependiente de dos variables. Las curvas se obtienen integrando la ecuaci@'on +diferencial que define las trayectorias ortogonales a las soluciones del +sistema aut@'onomo que se obtiene del gradiente de la expresi@'on dada. +El dibujo tambi@'en puede mostrar las curvas integrales de ese sistema +de gradientes (opci@'on @code{fieldlines}). -V@'ease @code{foursimp}. +Este programa tambi@'en necesita Xmaxima, incluso si se ejecuta Maxima desde +una consola, pues el dibujo se crear@'a por el c@'odigo Tk de Xmaxima. +Por defecto, la regi@'on dibujada estar@'a vac@'{@dotless{i}}a hasta que el +usuario haga clic en un punto, d@'e sus coordenadas a trav@'es del men@'u o +mediante la opci@'on @code{trajectory_at}. -@end defvr +La mayor parte de opciones aceptadas por @code{plotdf} se pueden utilizar +tambi@'en con @code{ploteq} y el aspecto del interfaz es el mismo que el +descrito para @code{plotdf}. -@c NEEDS EXPANSION. EXPLAIN x AND p HERE (DO NOT REFER SOMEWHERE ELSE) -@deffn {Funci@'on} fourexpand (@var{l}, @var{x}, @var{p}, @var{limit}) -Calcula y devuelve la serie de Fourier a partir de la lista de los coeficientes de Fourier @var{l} hasta el t@'ermino @var{limit} (@var{limit} puede ser @code{inf}). Los argumentos @var{x} y @var{p} tienen el mismo significado que en -@code{fourier}. +Ejemplo: -@c NEEDS EXAMPLES -@end deffn - -@c NEEDS EXPANSION. -@deffn {Funci@'on} fourcos (@var{f}, @var{x}, @var{p}) -Devuelve los coeficientes de los cosenos de Fourier de @code{@var{f}(@var{x})} definida en @code{[0, @var{p}]}. - -@c NEEDS EXAMPLES -@end deffn +@c ===beg=== +@c V: 900/((x+1)^2+y^2)^(1/2)-900/((x-1)^2+y^2)^(1/2)$ +@c ploteq(V,[x,-2,2],[y,-2,2],[fieldlines,"blue"])$ +@c ===end=== +@example +(%i1) V: 900/((x+1)^2+y^2)^(1/2)-900/((x-1)^2+y^2)^(1/2)$ +(%i2) ploteq(V,[x,-2,2],[y,-2,2],[fieldlines,"blue"])$ +@end example -@c NEEDS EXPANSION. -@deffn {Funci@'on} foursin (@var{f}, @var{x}, @var{p}) -Devuelve los coeficientes de los senos de Fourier de @code{@var{f}(@var{x})} definida en @code{[0, @var{p}]}. +Haciendo clic sobre un punto se dibujar@'a la curva equipotencial que pasa por +ese punto (en rojo) y la trayectoria ortogonal (en azul). -@c NEEDS EXAMPLES @end deffn -@c NEEDS EXPANSION. -@deffn {Funci@'on} totalfourier (@var{f}, @var{x}, @var{p}) -Devuelve @code{fourexpand (foursimp (fourier (@var{f}, @var{x}, @var{p})), @var{x}, @var{p}, 'inf)}. -@c NEEDS EXAMPLES -@end deffn -@c NEEDS EXPANSION -@deffn {Funci@'on} fourint (@var{f}, @var{x}) -Calcula y devuelve la lista de los coeficientes integrales de Fourier de @code{@var{f}(@var{x})} definida en @code{[minf, inf]}. +@deffn {Funci@'on} rk (@var{ODE}, @var{var}, @var{initial}, @var{dominio}) +@deffnx {Funci@'on} rk ([@var{ODE1},...,@var{ODEm}], [@var{v1},...,@var{vm}], [@var{init1},...,@var{initm}], @var{dominio}) -@c NEEDS EXAMPLES -@end deffn +La primera forma se usa para resolver num@'ericamente una ecuaci@'on +diferencial ordinaria de primer orden (EDO), y la segunda forma resuelve +num@'ericamente un sistema de @var{m} de esas ecuaciones, usando el m@'etodo +de Runge-Kutta de cuarto orden. @var{var} representa la variable dependiente. +EDO debe ser una expresi@'on que dependa @'unicamente de las variables +independiente y dependente, y define la derivada de la variable dependiente +en funci@'on de la variable independiente. -@c NEEDS EXPANSION -@deffn {Funci@'on} fourintcos (@var{f}, @var{x}) -Devuelve los coeficientes integrales de los cosenos @code{@var{f}(@var{x})} en @code{[0, inf]}. +La variable independiente se representa con @var{dominio}, que debe ser +una lista con cuatro elementos, como por ejemplo: +@example +[t, 0, 10, 0.1] +@end example +el primer elemento de la lista identifica la variable independiente, el +segundo y tercer elementos son los valores inicial y final para esa +variable, y el @'ultimo elemento da el valor de los incrementos que +deber@'an ser usados dentro de ese intervalo. + +Si se van a resolver @var{m} ecuaciones, deber@'a haber @var{m} +variables dependientes @var{v1}, @var{v2}, ..., @var{vm}. Los valores +iniciales para esas variables ser@'an @var{inic1}, +@var{inic2}, ..., @var{inicm}. Continuar@'a existiendo apenas una +variable independiente definida por la lista @var{domain}, como en +el caso anterior. @var{EDO1}, ..., @var{EDOm} son las expresiones que +definen las derivadas de cada una de las variables dependientes en +funci@'on de la variable independiente. Las @'unicas variables que +pueden aparecer en cada una de esas expresiones son la variable +independiente y cualquiera de las variables dependientes. Es importante +que las derivadas @var{EDO1}, ..., @var{EDOm} sean colocadas en la lista +en el mismo orden en que fueron agrupadas las variables dependientes; +por ejemplo, el tercer elemento de la lista ser@'a interpretado como la +derivada de la tercera variable dependiente. + +El programa intenta integrar las ecuaciones desde el valor inicial de la +variable independiente, hasta el valor final, usando incrementos +fijos. Si en alg@'un paso una de las variables dependientes toma un +valor absoluto muy grande, la integraci@'on ser@'a suspendida en ese +punto. El resultado ser@'a una lista con un n@'umero de elementos igual +al n@'umero de iteraciones realizadas. Cada elemento en la lista de +resultados es tambi@'en una lista con @var{m}+1 elementos: el valor de +la variable independiente, seguido de los valores de las variables +dependientes correspondientes a ese punto. -@c NEEDS EXAMPLES @end deffn -@c NEEDS EXPANSION -@deffn {Funci@'on} fourintsin (@var{f}, @var{x}) -Devuelve los coeficientes integrales de los senos @code{@var{f}(@var{x})} en @code{[0, inf]}. -@c NEEDS EXAMPLES -@end deffn diff --git a/doc/info/es/Series.es.texi b/doc/info/es/Series.es.texi index 3281452..5fcb3e9 100644 --- a/doc/info/es/Series.es.texi +++ b/doc/info/es/Series.es.texi @@ -1,16 +1,18 @@ -@c English version 2011-06-13 +@c English version 2013-04-02 @menu -* Sumas y productos:: +* Funciones y variables para sumas y productos:: * Introducci@'on a las series:: * Funciones y variables para las series:: -* Series de Poisson:: +* Introducci@'on a las series de Fourier:: +* Funciones y variables para series de Fourier:: +* Funciones y variables para series de Poisson:: @end menu -@node Sumas y productos, Introducci@'on a las series, Series, Series -@section Sumas y productos +@node Funciones y variables para sumas y productos, Introducci@'on a las series, Sumas productos y series, Sumas productos y series +@section Funciones y variables para sumas y productos @@ -366,11 +368,22 @@ Ejemplos: -@node Introducci@'on a las series, Funciones y variables para las series, Sumas y productos, Series + + + + + + + +@node Introducci@'on a las series, Funciones y variables para las series, Funciones y variables para sumas y productos, Sumas productos y series @section Introducci@'on a las series -Maxima dispone de las funciones @code{taylor} y @code{powerseries} para calcular las series de las funciones diferenciables. Tambi@'en tiene herramientas como @code{nusum} capaces de encontrar la expresi@'on compacta de algunas series. Operaciones como la suma y la multiplicaci@'on operan de la forma habitual en el contexto de las series. Esta secci@'on presenta las variables globales que controlan la expansi@'on. -@c end concepts Series +Maxima dispone de las funciones @code{taylor} y @code{powerseries} para calcular +las series de las funciones diferenciables. Tambi@'en tiene herramientas como +@code{nusum} capaces de encontrar la expresi@'on compacta de algunas series. +Operaciones como la suma y la multiplicaci@'on operan de la forma habitual en +el contexto de las series. Esta secci@'on presenta las variables globales que +controlan la expansi@'on. @@ -381,7 +394,7 @@ Maxima dispone de las funciones @code{taylor} y @code{powerseries} para calcular -@node Funciones y variables para las series, Series de Poisson, Introducci@'on a las series, Series +@node Funciones y variables para las series, Introducci@'on a las series de Fourier, Introducci@'on a las series, Sumas productos y series @section Funciones y variables para las series @defvr {Variable opcional} cauchysum @@ -1090,8 +1103,144 @@ Si @code{verbose} vale @code{true}, la funci@'on @code{powerseries} va imprimien -@node Series de Poisson, , Funciones y variables para las series, Series -@section Series de Poisson +@node Introducci@'on a las series de Fourier, Funciones y variables para series de Fourier, Funciones y variables para las series, Sumas productos y series +@section Introducci@'on a las series de Fourier + +El paquete @code{fourie} contiene funciones para el c@'alculo simb@'olico de +series de Fourier. Hay funciones en el paquete @code{fourie} para calcular los +coeficientes y para manipular las expresiones. + + + + + + + + + + + +@node Funciones y variables para series de Fourier, Funciones y variables para series de Poisson, Introducci@'on a las series de Fourier, Sumas productos y series +@section Funciones y variables para series de Fourier + + +@deffn {Funci@'on} equalp (@var{x}, @var{y}) +Devuelve @code{true} si @code{equal (@var{x}, @var{y})}, en otro caso devuelve @code{false}. No devuelve el mensaje de error que se obtiene de @code{equal (x, y)} en un caso como @'este. +@end deffn + + +@deffn {Funci@'on} remfun (@var{f}, @var{expr}) +@deffnx {Funci@'on} remfun (@var{f}, @var{expr}, @var{x}) +La llamada @code{remfun (@var{f}, @var{expr})} reemplaza todas las subexpresiones @code{@var{f} (@var{arg})} por @var{arg} en @var{expr}. + +La llamada @code{remfun (@var{f}, @var{expr}, @var{x})} reemplaza todas las subexpresiones @code{@var{f} (@var{arg})} por @var{arg} en @var{expr} s@'olo si @var{arg} contiene a la variable @var{x}. +@end deffn + + +@deffn {Funci@'on} funp (@var{f}, @var{expr}) +@deffnx {Funci@'on} funp (@var{f}, @var{expr}, @var{x}) +La llamada @code{funp (@var{f}, @var{expr})} devuelve @code{true} si @var{expr} contiene la funci@'on @var{f}. + +La llamada @code{funp (@var{f}, @var{expr}, @var{x})} devuelve @code{true} si @var{expr} contiene la funci@'on @var{f} y la variable @var{x} est@'a presente en el argumento de alguna de las presencias de @var{f}. +@end deffn + + +@deffn {Funci@'on} absint (@var{f}, @var{x}, @var{halfplane}) +@deffnx {Funci@'on} absint (@var{f}, @var{x}) +@deffnx {Funci@'on} absint (@var{f}, @var{x}, @var{a}, @var{b}) +La llamada @code{absint (@var{f}, @var{x}, @var{halfplane})} devuelve la integral indefinida de @var{f} con respecto a +@var{x} en el semiplano dado (@code{pos}, @code{neg} o @code{both}). La funci@'on @var{f} puede contener expresiones de la forma @code{abs (x)}, @code{abs (sin (x))}, @code{abs (a) * exp (-abs (b) * abs (x))}. + +La llamada @code{absint (@var{f}, @var{x})} equivale a @code{absint (@var{f}, @var{x}, pos)}. + +La llamada @code{absint (@var{f}, @var{x}, @var{a}, @var{b})} devuelve la integral definida de @var{f} con respecto a @var{x} de @var{a} a @var{b}. +@end deffn + + +@deffn {Funci@'on} fourier (@var{f}, @var{x}, @var{p}) +Devuelve una lista con los coeficientes de Fourier de +@code{@var{f}(@var{x})} definida en el intervalo @code{[-p, p]}. +@end deffn + + + +@deffn {Funci@'on} foursimp (@var{l}) +Simplifica @code{sin (n %pi)} a 0 si @code{sinnpiflag} vale @code{true} y +@code{cos (n %pi)} a @code{(-1)^n} si @code{cosnpiflag} vale @code{true}. +@end deffn + + + +@defvr {Variable opcional} sinnpiflag +Valor por defecto: @code{true} + +V@'ease @code{foursimp}. +@end defvr + + +@defvr {Variable opcional} cosnpiflag +Valor por defecto: @code{true} + +V@'ease @code{foursimp}. + +@end defvr + + + +@deffn {Funci@'on} fourexpand (@var{l}, @var{x}, @var{p}, @var{limit}) +Calcula y devuelve la serie de Fourier a partir de la lista de los coeficientes de Fourier @var{l} hasta el t@'ermino @var{limit} (@var{limit} puede ser @code{inf}). Los argumentos @var{x} y @var{p} tienen el mismo significado que en +@code{fourier}. +@end deffn + + + +@deffn {Funci@'on} fourcos (@var{f}, @var{x}, @var{p}) +Devuelve los coeficientes de los cosenos de Fourier de @code{@var{f}(@var{x})} definida en @code{[0, @var{p}]}. +@end deffn + + + +@deffn {Funci@'on} foursin (@var{f}, @var{x}, @var{p}) +Devuelve los coeficientes de los senos de Fourier de @code{@var{f}(@var{x})} definida en @code{[0, @var{p}]}. +@end deffn + + + +@deffn {Funci@'on} totalfourier (@var{f}, @var{x}, @var{p}) +Devuelve @code{fourexpand (foursimp (fourier (@var{f}, @var{x}, @var{p})), @var{x}, @var{p}, 'inf)}. +@end deffn + + + +@deffn {Funci@'on} fourint (@var{f}, @var{x}) +Calcula y devuelve la lista de los coeficientes integrales de Fourier de @code{@var{f}(@var{x})} definida en @code{[minf, inf]}. +@end deffn + + + +@deffn {Funci@'on} fourintcos (@var{f}, @var{x}) +Devuelve los coeficientes integrales de los cosenos @code{@var{f}(@var{x})} en @code{[0, inf]}. +@end deffn + + + +@deffn {Funci@'on} fourintsin (@var{f}, @var{x}) +Devuelve los coeficientes integrales de los senos @code{@var{f}(@var{x})} en @code{[0, inf]}. +@end deffn + + + + + + + + + + + + +@node Funciones y variables para series de Poisson, , Funciones y variables para series de Fourier, Sumas productos y series +@section Funciones y variables para series de Poisson @deffn {Funci@'on} intopois (@var{a}) diff --git a/doc/info/es/dynamics.texi b/doc/info/es/dynamics.texi index b0dfb56..7294e9b 100644 --- a/doc/info/es/dynamics.texi +++ b/doc/info/es/dynamics.texi @@ -164,53 +164,7 @@ despu@'es de dejarla evolucionar durante @var{n1} iteraciones iniciales. @end deffn -@deffn {Funci@'on} rk (EDO, var, inicial, dominio) -@deffnx {Funci@'on} rk ([EDO1,...,EDOm], [v1,...,vm], [inic1,...,inicm], dominio) - -La primera forma se usa para resolver num@'ericamente una ecuaci@'on -diferencial ordinaria de primer orden (EDO), y la segunda forma resuelve -num@'ericamente un sistema de @var{m} de esas ecuaciones, usando el m@'etodo -de Runge-Kutta de cuarto orden. @var{var} representa la variable dependiente. -EDO debe ser una expresi@'on que dependa @'unicamente de las variables -independiente y dependente, y define la derivada de la variable dependiente -en funci@'on de la variable independiente. - -La variable independiente se representa con @var{dominio}, que debe ser -una lista con cuatro elementos, como por ejemplo: -@example -[t, 0, 10, 0.1] -@end example -el primer elemento de la lista identifica la variable independiente, el -segundo y tercer elementos son los valores inicial y final para esa -variable, y el @'ultimo elemento da el valor de los incrementos que -deber@'an ser usados dentro de ese intervalo. - -Si se van a resolver @var{m} ecuaciones, deber@'a haber @var{m} -variables dependientes @var{v1}, @var{v2}, ..., @var{vm}. Los valores -iniciales para esas variables ser@'an @var{inic1}, -@var{inic2}, ..., @var{inicm}. Continuar@'a existiendo apenas una -variable independiente definida por la lista @var{domain}, como en -el caso anterior. @var{EDO1}, ..., @var{EDOm} son las expresiones que -definen las derivadas de cada una de las variables dependientes en -funci@'on de la variable independiente. Las @'unicas variables que -pueden aparecer en cada una de esas expresiones son la variable -independiente y cualquiera de las variables dependientes. Es importante -que las derivadas @var{EDO1}, ..., @var{EDOm} sean colocadas en la lista -en el mismo orden en que fueron agrupadas las variables dependientes; -por ejemplo, el tercer elemento de la lista ser@'a interpretado como la -derivada de la tercera variable dependiente. - -El programa intenta integrar las ecuaciones desde el valor inicial de la -variable independiente, hasta el valor final, usando incrementos -fijos. Si en alg@'un paso una de las variables dependientes toma un -valor absoluto muy grande, la integraci@'on ser@'a suspendida en ese -punto. El resultado ser@'a una lista con un n@'umero de elementos igual -al n@'umero de iteraciones realizadas. Cada elemento en la lista de -resultados es tambi@'en una lista con @var{m}+1 elementos: el valor de -la variable independiente, seguido de los valores de las variables -dependientes correspondientes a ese punto. -@end deffn @deffn {Funci@'on} staircase (@var{F}, @var{y0}, @var{n}, ...opciones...); diff --git a/doc/info/es/maxima.texi b/doc/info/es/maxima.texi index d439389..170fe63 100644 --- a/doc/info/es/maxima.texi +++ b/doc/info/es/maxima.texi @@ -17,7 +17,7 @@ @documentencoding ISO-8859-1 @synindex vr fn @settitle Manual de Maxima -Ver. 5.30 +Ver. 5.31 @c %**end of header @setchapternewpage odd @ifinfo @@ -170,7 +170,7 @@ Soporte para campos m@'as espec@'{@dotless{i}}ficos de las matem@'aticas * itensor:: Manipulaci@'on indexada de tensores * ctensor:: Manipulaci@'on por componentes de tensores * atensor:: Manipulaci@'on algebraica de tensores -* Series:: Series de potencias y de Taylor. +* Sumas productos y series:: Sumas, productos, Taylor y series de potencias. * Teor@'{@dotless{i}}a de N@'umeros:: Teor@'ia de n@'umeros. * Simetr@'{@dotless{i}}as:: * Grupos:: @'Algebra abstracta. @@ -219,7 +219,6 @@ Paquetes adicionales * numericalio:: Lectura y escritura de ficheros. * opsubst:: Utilidad para sustituciones. * orthopoly:: Polinomios ortogonales. -* plotdf:: Dibuja campos de direcciones con Openmath. * romberg:: Integraci@'on num@'erica por el m@'etodo de Romberg. * simplex:: Programaci@'on lineal. * simplification:: Reglas y funciones de simplificaci@'on. @@ -376,10 +375,11 @@ Ecuaciones Diferenciales M@'etodos num@'ericos -* Introducci@'on a los m@'etodos num@'ericos:: -* Series de Fourier:: -* Funciones y variables para los m@'etodos num@'ericos:: -* Funciones y variables para las series de Fourier:: +* Introducci@'on a la transformada r@'apida de Fourier:: +* Funciones y variables para la transformada r@'apida de Fourier:: +* Funciones para la resoluci@'on num@'erica de ecuaciones:: +* Introducci@'on a la resoluci@'on num@'erica de ecuaciones diferenciales:: +* Funciones para la resoluci@'on num@'erica de ecuaciones diferenciales:: Matrices y @'Algebra Lineal @@ -405,12 +405,14 @@ atensor * Introducci@'on a atensor:: * Funciones y variables para atensor:: -Series +Sumas productos y series -* Sumas y productos:: +* Funciones y variables para sumas y productos:: * Introducci@'on a las series:: * Funciones y variables para las series:: -* Series de Poisson:: +* Introducci@'on a las series de Fourier +* Funciones y variables para series de Fourier:: +* Funciones y variables para series de Poisson:: Teor@'{@dotless{i}}a de N@'umeros @@ -623,10 +625,6 @@ orthopoly * Introducci@'on a polinomios ortogonales:: * Funciones y variables para polinomios ortogonales:: -plotdf - -* Funciones y variables para plotdf:: - romberg * Funciones y variables para romberg:: @@ -800,15 +798,15 @@ zeilberger @chapter ctensor @include Ctensor.es.texi -@node atensor, Series, ctensor, Top +@node atensor, Sumas productos y series, ctensor, Top @chapter atensor @include Atensor.es.texi -@node Series, Teor@'{@dotless{i}}a de N@'umeros, atensor, Top -@chapter Series +@node Sumas productos y series, Teor@'{@dotless{i}}a de N@'umeros, atensor, Top +@chapter Sumas productos y series @include Series.es.texi -@node Teor@'{@dotless{i}}a de N@'umeros, Simetr@'{@dotless{i}}as, Series, Top +@node Teor@'{@dotless{i}}a de N@'umeros, Simetr@'{@dotless{i}}as, Sumas productos y series, Top @chapter Teor@'{@dotless{i}}a de N@'umeros @include Number.es.texi @@ -968,15 +966,11 @@ zeilberger @chapter opsubst @include opsubst.texi -@node orthopoly, plotdf, opsubst, Top +@node orthopoly, romberg, opsubst... [truncated message content] |