All published worksheets from http://sagenb.org
Image: ubuntu2004
Breve y elemental introducción a Sage
Manejo básico de Sage:
- Para ejecutar el contenido de una celda has de presionar shift-enter.
- El símbolo "#" indica el inicio de un comentario.
- El símbolo "_" representa el último resultado obtenido.
- Cuidado con la sangría en las líneas.
1. Sage es una calculadora
Puedes usar Sage como una calculadora. El orden de los paréntesis es el usual:
Sage manipula números racionales. Los símbolos "^" y "**" corresponden a "elevado a".
Sage permite el acceso al último resultado obtenido. Por ejemplo, el tipo del último resultado es racional:
Sage es de hecho una calculadora muy pero que muy potente:
Sage tiene algunas constantes predeterminadas como , e, ...
Los resultados se pueden calcular con gran precisión mediante la función N. Por ejemplo, calculado con 1000 dígitos (la opción time indica al final el tiempo usado):
Sage posee multitud de funciones elementales usuales: exp(x), log(x), log(x,base), sin(x), cos(x), tan(x), arcsin(x), arccos(x), arctan(x), ...
Sage puede realizar cálculos aritméticos rápidamente:
Sage puede hacer cálculos con matrices:
Crear matrices:
Operar con matrices para obtener otras nuevas: por ejemplo, B es A menos la traspuesta de A:
Producto de A por B:
Determinante:
Inversa:
Dada una matriz A, podemos resolver sistemas de ecuaciones con matriz de coeficientes A, creando el vector de términos independientes y usando el comando "\":
También podemos obtener el polinomio característico de una matriz:
Y encontrar sus raíces mediante solve (sólo vale para algunos polinomios):
Estas raíces son en realidad los valores propios de A:
Podemos también escalonar una matriz por filas (hacer eliminacion gaussiana):
Calcula una base del núcleo de una matriz (el conjunto de vectores que multiplicados a izquierda por esa matriz dan cero):
Y mucho, mucho más...
Sage es una calculadora gráfica
Sage puede representar gráficamente funciones en intervalos determinados:
Los gráficos se pueden superponer mediante +, y se les puede asignar color mediante rgbcolor. También podemos incluir texto indicando las coordenadas en que queremos que aparezca:
Los gráficos también pueden ser tridimensionales (nota: elegimos el visualizador de imágenes porque el estándar (Jmol) de momento da problemas al cargar en el navegador):
Sage representa figuras definidas por ecuaciones paramétricas (se pueden mover con el ratón):
Sage representa gráficas de ecuaciones implícitas complicadas (nota: no podemos acceder a la versión dinámica, así que elegimos un visualizador estático):
3. Sage es un sistema de cálculo simbólico
Sage realiza cálculos simbólicos. Para ello, primero se declaran las variables que se van a usar para que las reconozca como tales:
Observar que escribe 3*a^2*b, usando el asterisco para indicar productos. Es importante que tú hagas lo mismo y no te los olvides (en otro caso, interpretará la expresión completa como una nueva variable).
Sage factoriza polinomios en varias variables:
Sage permite presentar las expresiones con un formato más legible pero no hay que confundir la presentación con la expresión, son cosas totalmente diferentes.
Para liberar declaraciones de variables se usa reset:
Sage realiza operaciones usuales de cálculo (análisis matemático):
Define funciones:
Con diff se calcula la derivada (al igual que derivative):
También podemos calcular primitivas:
Calcula límites (oo denota infinito):
Y mucho, pero que mucho mucho más...
4. Ayuda en Sage
Para obtener información acerca de algún comando basta teclear ? después de él y ejecutar:
File: /usr/local/sage2/local/lib/python2.6/site-packages/sage/functions/log.py
Type: <class ‘sage.functions.log.Function_exp’>
Definition: exp(x, coerce=True, hold=False, prec=None, dont_call_method_on_arg=False)
Docstring:
The exponential function, \exp(x) = e^x.
EXAMPLES:
sage: exp(-1) e^(-1) sage: exp(2) e^2 sage: exp(2).n(100) 7.3890560989306502272304274606 sage: exp(x^2 + log(x)) e^(x^2 + log(x)) sage: exp(x^2 + log(x)).simplify() x*e^(x^2) sage: exp(2.5) 12.1824939607035 sage: exp(float(2.5)) 12.182493960703473 sage: exp(RDF('2.5')) 12.1824939607sage: exp(pi*I/2) I sage: exp(pi*I) -1 sage: exp(8*pi*I) 1 sage: exp(7*pi*I/2) -ITEST:
sage: latex(exp(x)) e^{x} sage: latex(exp(sqrt(x))) e^{\sqrt{x}} sage: latex(exp) \exp sage: latex(exp(sqrt(x))^x) \left(e^{\sqrt{x}}\right)^{x} sage: latex(exp(sqrt(x)^x)) e^{\left(\sqrt{x}^{x}\right)}Test simplifications when taking powers of exp, #7264:
sage: var('a,b,c,I') (a, b, c, I) sage: model_exp = exp(I)**a*(b) sage: sol1_l={b: 5.0, a: 1.1} sage: model_exp.subs(sol1_l) 5.00000000000000*(e^I)^1.10000000000000sage: exp(3)^I*exp(x) (e^3)^I*e^x sage: exp(x)*exp(x) e^(2*x) sage: exp(x)*exp(a) e^(a + x) sage: exp(x)*exp(a)^2 e^(2*a + x)Another instance of the same problem, #7394:
sage: 2*sqrt(e) 2*sqrt(e)
Una información más técnica se tiene con ?? (orientada a programadores o desarrolladores):
File: /usr/local/sage2/local/lib/python2.6/site-packages/sage/functions/log.py
Source Code (starting at line 10):
class Function_exp(GinacFunction): def __init__(self): r""" The exponential function, `\exp(x) = e^x`. EXAMPLES:: sage: exp(-1) e^(-1) sage: exp(2) e^2 sage: exp(2).n(100) 7.3890560989306502272304274606 sage: exp(x^2 + log(x)) e^(x^2 + log(x)) sage: exp(x^2 + log(x)).simplify() x*e^(x^2) sage: exp(2.5) 12.1824939607035 sage: exp(float(2.5)) 12.182493960703473 sage: exp(RDF('2.5')) 12.1824939607 :: sage: exp(pi*I/2) I sage: exp(pi*I) -1 sage: exp(8*pi*I) 1 sage: exp(7*pi*I/2) -I TEST:: sage: latex(exp(x)) e^{x} sage: latex(exp(sqrt(x))) e^{\sqrt{x}} sage: latex(exp) \exp sage: latex(exp(sqrt(x))^x) \left(e^{\sqrt{x}}\right)^{x} sage: latex(exp(sqrt(x)^x)) e^{\left(\sqrt{x}^{x}\right)} Test simplifications when taking powers of exp, #7264:: sage: var('a,b,c,I') (a, b, c, I) sage: model_exp = exp(I)**a*(b) sage: sol1_l={b: 5.0, a: 1.1} sage: model_exp.subs(sol1_l) 5.00000000000000*(e^I)^1.10000000000000 :: sage: exp(3)^I*exp(x) (e^3)^I*e^x sage: exp(x)*exp(x) e^(2*x) sage: exp(x)*exp(a) e^(a + x) sage: exp(x)*exp(a)^2 e^(2*a + x) Another instance of the same problem, #7394:: sage: 2*sqrt(e) 2*sqrt(e) """ GinacFunction.__init__(self, "exp", latex_name=r"\exp", conversions=dict(maxima='exp')) def __call__(self, x, coerce=True, hold=False, prec=None, dont_call_method_on_arg=False): """ Note that the ``prec`` argument is deprecated. The precision for the result is deduced from the precision of the input. Convert the input to a higher precision explicitly if a result with higher precision is desired.:: sage: t = exp(RealField(100)(2)); t 7.3890560989306502272304274606 sage: t.prec() 100 TESTS:: sage: exp(2,prec=100) doctest:...: DeprecationWarning: The prec keyword argument is deprecated. Explicitly set the precision of the input, for example exp(RealField(300)(1)), or use the prec argument to .n() for exact inputs, e.g., exp(1).n(300), instead. 7.3890560989306502272304274606 """ if prec is not None: from sage.misc.misc import deprecation deprecation("The prec keyword argument is deprecated. Explicitly set the precision of the input, for example exp(RealField(300)(1)), or use the prec argument to .n() for exact inputs, e.g., exp(1).n(300), instead.") x = GinacFunction.__call__(self, x, coerce=coerce, hold=hold, dont_call_method_on_arg=dont_call_method_on_arg) return x.n(prec) return GinacFunction.__call__(self, x, coerce=coerce, hold=hold, dont_call_method_on_arg=dont_call_method_on_arg)
Sage permite buscar información en la documentación proporcionando los enlaces correspondientes:
Search Documentation: "rgbcolor"
- bordeaux_2008/elliptic_curves.html
- constructions/calculus.html
- constructions/plotting.html
- reference/sage/calculus/calculus.html
- reference/sage/combinat/iet/iet.html
- reference/sage/combinat/words/paths.html
- reference/sage/functions/piecewise.html
- reference/sage/groups/perm_gps/cubegroup.html
- reference/sage/plot/animate.html
- reference/sage/plot/arrow.html
- reference/sage/plot/bar_chart.html
- reference/sage/plot/bezier_path.html
- reference/sage/plot/circle.html
- reference/sage/plot/disk.html
- reference/sage/plot/line.html
- reference/sage/plot/plot.html
- reference/sage/plot/plot3d/platonic.html
- reference/sage/plot/plot3d/shapes2.html
- reference/sage/plot/point.html
- reference/sage/plot/polygon.html
- reference/sage/plot/primitive.html
- reference/sage/plot/step.html
- reference/sage/plot/text.html
- reference/sage/rings/arith.html
- reference/sage/rings/padics/padic_base_generic.html
- reference/sage/rings/polynomial/groebner_fan.html
- reference/sage/rings/polynomial/polynomial_element.html
- reference/sage/schemes/elliptic_curves/ell_finite_field.html
- reference/sage/schemes/elliptic_curves/ell_generic.html
- reference/sage/schemes/elliptic_curves/ell_point.html
- reference/sage/schemes/elliptic_curves/heegner.html
- reference/sage/symbolic/expression.html
- reference/sagenb/notebook/interact.html
- tutorial/tour_algebra.html
- tutorial/tour_plotting.html
- tutorial/tour_algebra.html
- tutorial/tour_plotting.html
Si se teclea parte de un comando y se pulsa tab Sage intentará completarlo o mostrará un menú para elegir entre todos los comandos que comiencen por esas letras: