Práctica 1. Introducción a Sage.



Documentos relacionados
Práctica 4: Aplicaciones de la derivada: representación gráfica de funciones y polinomio de Taylor.

Álgebra y Matemática Discreta Sesión de Prácticas 1

Índice Introducción Estructuras Algebraicas Listas Los Números Enteros Polinomios. Álgebra y Matemática Discreta Sesión de Prácticas 1

Introducción al Cálculo Simbólico a través de Maple

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

Divisibilidad y números primos

Ejercicios Resueltos del Tema 4

Ecuaciones de primer grado con dos incógnitas

DESARROLLO DE HABILIDADES DEL PENSAMIENTO LÓGICO

De aquí sale el proyecto MACsyma (MAC s SYmbolic MAnipulator)

NÚMEROS NATURALES Y NÚMEROS ENTEROS

Polinomios y fracciones algebraicas

Factorización de polinomios

Transformación de binario a decimal. Transformación de decimal a binario. ELECTRÓNICA DIGITAL

SISTEMAS DE NUMERACIÓN (11001, 011) = = (32,12)

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

SISTEMAS DE NUMERACIÓN. Sistema decimal

1.4.- D E S I G U A L D A D E S

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

TEMA 4. Sistema Sexagesimal. Sistema Octal (base 8): sistema de numeración que utiliza los dígitos 0, 1, 2, 3, 4, 5,

CALCULADORA CIENTÍFICA

SECRETARIA DE EDUCACIÓN PÚBLICA SUBSECRETARIA DE EDUCACIÓN MEDIA SUPERIOR DIRECCIÓN DE BACHILLERATOS ESTATALES Y PREPARATORIA ABIERTA

Por ejemplo convertir el número 131 en binario se realiza lo siguiente: Ahora para convertir de un binario a decimal se hace lo siguiente:

Cursada Primer Semestre 2015 Guía de Trabajos Prácticos Nro. 2

EJERCICIOS RESUELTOS DE NÚMEROS COMPLEJOS

Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 =

4º ESO MATEMÁTICAS Opción A 1ª EVALUACIÓN

Materia: Informática. Nota de Clases Sistemas de Numeración

Práctica 0 Cálculo con Mathematica

Qué son los monomios?

Sistemas de numeración

Ecuaciones e Inecuaciones

Matemáticas. 1 o ESO. David J. Tarifa García. info@esobachilleratouniversidad.com.es

UNIDAD 6. POLINOMIOS CON COEFICIENTES ENTEROS

INTRODUCCIÓN DÓNDE ENCONTRAR LA CALCULADORA WIRIS

SUMA Y RESTA DE FRACCIONES

1. Definición 2. Operaciones con funciones

Teoría Tema 1 Inecuaciones

UNIDAD 1. LOS NÚMEROS ENTEROS.

FRACCIONES. Una fracción tiene dos términos, numerador y denominador, separados por una raya horizontal.

Proyecto de Innovación Docente: Guía multimedia para la elaboración de un modelo econométrico.

LÍMITES Y CONTINUIDAD DE FUNCIONES

Lección 9: Polinomios

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo:

UNIDAD I NÚMEROS REALES

1º) Siempre que se pueda, hay que sacar factor común: :a b ± a c ± a d ± = a (b ± c ± d ± ):

Tema 2 : NÚMEROS ENTEROS. Primero de Educación Secundaria Obligatoria. I.e.s Fuentesaúco.

Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x

Índice Introducción Números Polinomios Funciones y su Representación. Curso 0: Matemáticas y sus Aplicaciones Tema 1. Números, Polinomios y Funciones

1. Números Reales 1.1 Clasificación y propiedades

La Lección de Hoy es Distancia entre dos puntos. El cuál es la expectativa para el aprendizaje del estudiante CGT.5.G.1

QUÉ ES UN NÚMERO DECIMAL?

EXPRESIONES ALGEBRAICAS

Colegio Las Tablas Tarea de verano Matemáticas 3º ESO

Aritmética finita y análisis de error

Lección 1. Representación de números

SISTEMAS DE NUMERACIÓN.

Ecuaciones Diferenciales Tema 2. Trasformada de Laplace

AXIOMAS DE CUERPO (CAMPO) DE LOS NÚMEROS REALES

INSTITUTO UNIVERSITARIO DE TECNOLOGÍA JOSE LEONARDO CHIRINO PUNTO FIJO EDO-FALCON CATEDRA: ARQUITECTURA DEL COMPUTADOR PROFESOR: ING.

Estudio de ceros de ecuaciones funcionales

Curso PHP Módulo 1 R-Luis

1. Ecuaciones no lineales

Los números racionales

Introducción al sistema Wolfram Mathematica

Función exponencial y Logaritmos

Lección 4: Suma y resta de números racionales

BREVE MANUAL DE SOLVER

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

Análisis de propuestas de evaluación en las aulas de América Latina

Límites: tipos de indeterminaciones 6

Cálculo Simbólico también es posible con GeoGebra

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

En la actualidad ASCII es un código de 8 bits, también conocido como ASCII extendido, que aumenta su capacidad con 128 caracteres adicionales

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES

Límite de una función

Unidad 1 Sistemas de numeración Binario, Decimal, Hexadecimal

Ejemplos de conversión de reales a enteros

>> % suma de dos números reales, el resultado se asigna a ans

Tema 3. Medidas de tendencia central Introducción. Contenido

2 Potencias y radicales

Módulo 9 Sistema matemático y operaciones binarias

Funciones y subrutinas

by Tim Tran:

POLINOMIOS Y FRACCIONES ALGEBRAICAS

9.Método de integración por partes.-

Ámbito Científico-Tecnológico Módulo III Bloque 2 Unidad 1 Quien parte y reparte, se lleva la mejor parte

CAPÍTULO III. FUNCIONES

POTENCIAS Y RAICES. POTENCIA DE UN NÚMERO El cuadrado de un número es el resultado de multiplicar ese número por sí mismo.

SISTEMAS DE NUMERACIÓN. Sistema de numeración decimal: = =8245,97

Algoritmos y Diagramas de Flujo 2

Anterior Sistemas binarios: Aritmética binaria Siguiente ARITMÉTICA BINARIA. Operaciones elementales con números binarios

1.3 Números racionales

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

Descomposición factorial de polinomios

Polinomios: Definición: Se llama polinomio en "x" de grado "n" a una expresión del tipo

Polinomios. Objetivos. Antes de empezar. 1.Expresiones algebraicas pág. 64 De expresiones a ecuaciones Valor numérico Expresión en coeficientes

28 = =

Transcripción:

1 de 9 07/07/2010 12:07 To print higher-resolution math symbols, click the Hi-Res Fonts for Printing button on the jsmath control panel. If the math symbols print as black boxes, turn off image alpha channels using the Options pane of the jsmath control panel. Prácticas de Cálculo Infinitesimal. 1.1. Primeras operaciones. Práctica 1. Introducción a Sage. Empecemos con algunas operaciones numéricas. Se emplea (/) para la división, (*) para el producto y (^) o (**) para la exponenciación. 2+3 4*6 5 24 12/6 2 3^2^5 1853020188851841 La principal diferencia de Sage con una calculadora estriba en su capacidad de realizar cálculos exactos o bien con precisión arbitraria. Así, si operamos con números racionales el resultado obtenido es un número racional y no su representación o aproximación decimal, como proporciona una calculadora. Con las sencillas operaciones siguientes ya podemos ilustrar el hecho de que Sage trabaja con cantidades exactas: 12/8 3/2 3/4+1/3 13/12 2*sqrt(8) # la raíz cuadrada se escribe como sqrt 4*sqrt(2) Notemos que en una celda de entrada, Sage no ejecuta el texto que se inicia con el símbolo #. (12/8)*(2/3) 1 Con algunas calculadoras, es muy posible que esta última operación se hubiera realizado en la siguiente forma aproximada: 12/8=1.5, 2/3=0.6666667, y por tanto el producto es 1.0000005. Por supuesto que Sage permite utilizar aproximaciones decimales de un número. Esto es: n(11/43) # las órdenes n, N, numerical_approx son sinónimas 0.255813953488372 Nótese que el resultado aparece por defecto con unas 15 cifras significativas, pero podemos conseguir mayor precisión especificando el número de dígitos como argumento opcional de la función N. n(11/43,digits=50) 0.25581395348837209302325581395348837209302325581395

2 de 9 07/07/2010 12:07 Las órdenes de Sage siempre encierran sus argumentos entre paréntesis. De todas formas, la sintaxis la iremos viendo sin problemas, a medida que vamos haciendo distintos cálculos. Volviendo a lo anterior, parece más interesante que Sage trabaje con números exactos. De hecho, opera y simplifica: 3/7*5/9 5/21 El símbolo _ hace referencia a la salida (resultado) de la última celda ejecutada n(_) 0.238095238095238 Como es regla general en matemáticas, Sage realiza primero las operaciones entre paréntesis, después las potencias de derecha a izaquierda, continúa con las multiplicaciones y divisiones de izquierda a derecha y, por último las sumas y restas de izquierda a derecha. También es importante indicar que para agrupar operaciones en Sage se usan exclusivamente paréntesis, nada de corchetes y llaves que podemos usar en la escritura habitual a mano. Por tanto la siguiente expresión es errónea. [(3+5)*4]^2 Traceback (click to the left of this block for traceback)... TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int' Cuando en una operación aparece algún número real (un número de punto flotante, es decir, con un número finito de decimales) el resultado es siempre real. Para indicar que considere un número como de punto flotante, basta colocarle el punto decimal. 11./43 0.255813953488372 Sage también calcula el valor absoluto, la parte entera y el signo de un número dado: abs(3) 3 abs(-2/3) 2/3 floor(2/3) 0 floor(-4/3) -2 sgn(4) 1 sgn(-56) -1 Podemos trabajar con números complejos: z1=2+3*i z2=4+5*i z1+z2 8*I + 6 z1*z2 22*I - 7 z1/z2 2/41*I + 23/41 conjugate(z1)

3 de 9 07/07/2010 12:07-3*I + 2 Funciones elementales Hasta ahora hemos utilizado Sage como una calculadora que puede hacer cuentas aritméticas de modo exacto. También podemos usarlo como una calculadora científica exacta, ya que tiene predefinidas las funciones elementales y algunas constantes; para usarlas sólo hay que conocer la sintaxis apropiada. log(x), sin(x), cos(x), tan(x), asin(x), acos(x), atan(x), exp(x), e (la constante de Neper), pi (relación entre la longitud y el diámetro de la circunferencia). Es importante saber que Sage distingue entre mayúsculas y minúsculas. Además los argumentos de las funciones van entre paréntesis. Huelga decir que si no escribimos bien la expresión, los resultados obtenidos no serán correctos. Veamos cómo se puede trabajar de modo exacto con funciones. sin(pi/3) 1/2*sqrt(3) exp(3) e^3 log(exp(3)) Por supuesto, también podemos operar de modo aproximado N(exp(3)) 20.0855369231877 exp(3.) 20.0855369231877 Ejercicio. Encuentra el error en las siguientes expresiones 1. Sen(pi/2) 2. ln[3] 3. Cos(Pi) 1.2. Variables. Concatenación de instrucciones. Asignación de variables. a=5 # crea una variable llamada 'a' que es de tipo entero y tiene el valor 5. Observa que al hacer una asignación de variable Sage no muestra una salida. a 5 a+27 32 A veces querremos escribir varias instrucciones en una misma celda de entrada. Para ello podemos escribir cada instrucción en una línea diferente o bien simplemente separarlas por ';' b=10; c=15; b*c 150 d=7 e=3 d*e*b

210 Sage sólo muestra la salida de la última instrucción de la celda 10+12 10+15 25 si queremos que muestre la salida de alguna operación que no sea la última debemos emplear la orden print. print 10+12 10+15 22 25 Sage incorpora características de lenguaje de programación (basado en Python). Sage puede trabajar en simbólico, sin embargo es un lenguaje de programación tipado. Es decir, cualquier símbolo (excepto 'x', que por defecto se considera una variable) que usemos en Sage ha de ser definido previamente como miembro de un tipo de datos. De momento veremos dos formas de hacerlo: 1. Asignando un valor a la variable. P. ej. escribiremos a=5. o también poli=x^2+3*x. 2. Si no queremos asignar un valor a la variable, sino que sea una variable genérica escribiremos p. ej. y=var('y') factor(x^3-1) #la orden factor factoriza un polinomio. (x - 1)*(x^2 + x + 1) factor(y^3-1) Traceback (click to the left of this block for traceback)... NameError: name 'y' is not defined Da error, ya que no está definido 'y'. Ahora lo definimos primero. y=var('y') factor(y^3-1) (y - 1)*(y^2 + y + 1) El comando reset() borra todas las variables definidas. Si se especifica la variable solo se borra el valor de dicha variable y las demás quedan intactas. reset('y') factor(y^3-1) Traceback (click to the left of this block for traceback)... NameError: name 'y' is not defined 1.3. Cálculo simbólico Aquí empezamos a atisbar la importancia del uso de Sage. Esta clase de programas pueden operar con símbolos y hacer simplificaciones y manipulaciones como las harías en un papel. Las órdenes que aprenderemos en este apartado son: expr.full_simplify() aplica varios métodos de simplificación sobre "expr": simplify_factorial, simplify_trig, simplify_rational y simplify_radical. expr.expand() ejecuta las multiplicaciones y potencias de "expr" para transformarlo en sumas. poli.factor() ó factor(poli) factoriza el polinomio "poli". expr.partial_fraction() descompone en fracciones simples "expr". (x^2-1)/(x-1) (x^2-1)/(x - 1) 4 de 9 07/07/2010 12:07

5 de 9 07/07/2010 12:07 En general Sage es muy cuidadoso y no simplificará una fracción racional a menos que le indiquemos que es una fracción racional o que le pidamos explícitamente que simplifique _.full_simplify() x + 1 También puede simplificar expresiones no polinómicas ex=(1+(tan(x))^2)*cos(x)*e^(x^2-x)/(e^x) ex.simplify_full() # simplify_full es sinónimo de full_simplify 3^(x^2-2*x)/cos(x) Si lo que queremos es desarrollar un producto utilizamos la orden expand poli=((x+1)*(x+2)-(x+2)^2)^3 expand(poli) -x^3-6*x^2-12*x - 8 También podemos factorizar polinomios (si sus raíces son enteras, si no, no funciona) factor(x^4-1) (x - 1)*(x + 1)*(x^2 + 1) O descomponer en fracciones simples (esto es, descomponer un cociente de polinomios en suma de un polinomio más cocientes de polinomios con denominadores que son potencias de polinomios de grado 1 ó 2 irreducibles y numeradores de grado estrictamente menor que el denominador. Es un método estándar que se emplea, por ejemplo, para calcular primitivas de funciones racionales o sumar series). frac=1/((3+x)*(1+x)^3) frac.partial_fraction() 1/8/(x + 1) - 1/4/(x + 1)^2 + 1/2/(x + 1)^3-1/8/(x + 3) Ejercicio. Comprueba las igualdades: 2 sin (x) +cos 2 (x) =1. 2(1 + x²) 1 = 1 + x⁴ 1 + 2 x +x ² + 1 1 2 x +x² 1.4 Resolución de ecuaciones e inecuaciones. 1.4.1. Resolución de ecuaciones y sistemas. Sage tiene un comando que nos permite resolver ecuaciones y sistemas (sobre los números complejos). solve(eqns, var1, var2,...) resuelve las ecuaciones 'eqns' en las variables var1, var2, etc. Algunas observaciones 1. 2. Las ecuaciones se escriben en la forma: parte izda. == parte dcha. ecuaciones simultáneas se escriben entre corchetes y separadas por comas, e.d. [eqn1,eqn2,eqn3] En general, la orden solve está poco desarrollada y sólo resuelve ecuaciones y sistemas polinómicos y algún otro caso sencillo. Veamos algunos ejemplos del funcionamiento de este comando. solve(x^3-2*x+1==0,x) [x == -1/2*sqrt(5) - 1/2, x == 1/2*sqrt(5) - 1/2, x == 1] Por defecto no muestra multiplicidades. Lógicamente x=1 es una raíz doble del polinomio x²-2x+1, sin embargo, si queremos que nos muestre que es una solución doble, tenemos que indicárselo.

solve(x^2-2*x+1==0,x) [x == 1] solve(x^2-2*x+1==0,x,multiplicities=true) ([x == 1], [2]) solve(x^8-256==0,x) #posee 8 soluciones complejas, 2 de ellas son reales. [x == (I + 1)*sqrt(2), x == (2*I), x == (I - 1)*sqrt(2), x == -2, x == (-I - 1)*sqrt(2), x == (-2*I), x == (-I + 1)*sqrt(2), x == 2] En cuanto la ecuación es un poco complicada, para resolverla tenemos que activar el procedimiento "to_poly_solve" de Maxima. Este procedimiento es incompatible con que muestre multiplicidades. solve(sqrt(x+1)-2*sqrt(x-1)==1,x,to_poly_solve=true) [x == -4/9*sqrt(7) + 20/9] Al resolver la ecuación: 1 4 x = x 3 4, Sage nos da la solución x=1/2. Notar que aunque la solución sea un número real, como hemos dicho antes, la igualdad es de números complejos 1 4 = 1 4. solve(sqrt(1/4-x)==sqrt(x-3/4),x,to_poly_solve=true) [x == (1/2)] Más ejemplos: solve(log(2*x)+log(4+x)==log(x),x,to_poly_solve=true) [x == (-7/2)] solve(abs(1-abs(1-x))==10,x,to_poly_solve=true) [x == 12, x == -10] Veamos cómo se desenvuelve con un sistema de ecuaciones dependiente de un parámetro x,y,a=var('x,y,a') solve([2*a*x-y==1, 3*a*y+x==1],x,y) [[x == (3*a + 1)/(6*a^2 + 1), y == (2*a - 1)/(6*a^2 + 1)]] También es posible que no encuentre soluciones para una ecuación. Bien porque no las haya solve([2*x+y==1,4*x+2*y==3],x) [] bien porque no sea capaz de obtenerlas solve(9^x-3^(x+1)+2==0,x,to_poly_solve=true) Traceback (click to the left of this block for traceback)... TypeError: 'sage.symbolic.expression.expression' object does not support indexing solve(2*x==sin(x),x) [x == 1/2*sin(x)] Cuando no somos capaces de resolver de modo exacto una ecuación en una variable podemos resolverla de modo aproximado usando métodos numéricos. find_root(eqn,a,b) encuentra una solución aproximada de la ecuación 'eqn' en el intevalo [a,b]. Es importante elegir bien el intervalo en el que buscar la solución. Además hay que tener en cuenta que sólo nos devuelve una solución, aunque hubiera varias. Por todo esto, es muy conveniente hacer primero una representación gráfica. plot([2*x,sin(x)],-1,1) 6 de 9 07/07/2010 12:07

7 de 9 07/07/2010 12:07 find_root(2*x==sin(x),-1/2,1/2) 0.0 plot(9^x-3^(x+1)+2,-1,1) find_root(9^x-3^(x+1)+2==0,-1,1) 0.63092975357145686 find_root(9^x-3^(x+1)+2==0,-1,1/2) 3.6259095176137501e-16 En realidad la solución exacta es cero, pero hay un error del orden 10^(-16). Resuelve con Sage las siguientes ecuaciones o sistemas (si es posible de modo exacto o si no, aproximado). a) 25 x 5 (x+1) +4=0 b) sin(x + y ) =1, cos(x y ) =1. c) log(3x +2 ) +log (x +2 ) =0. d) y 50 x 2 =0 x 20 y 2 =0. e) x 5 +2x 4 +4x 3 +8x 2 +1 6x +3 2 =0. 1.4.2. Resolución de inecuaciones. la instruccion solve explicada en el apartado anterior resuelve inecuaciones sencillas

8 de 9 07/07/2010 12:07 si solve falla, también podemos emplear solve_ineq solve(x*(x^2-2)*(x^2-3)>0,x) [[x > -sqrt(3), x < -sqrt(2)], [x > 0, x < sqrt(2)], [x > sqrt(3)]] solve_ineq(x*(x^2-2)*(x^2-3)>0,x) [[x > -sqrt(3), x < -sqrt(2)], [x > 0, x < sqrt(2)], [x > sqrt(3)]] En el siguiente ejemplo avanza un paso, pero deja la solución a medias. solve([x/abs(x-1)>=0,1/x<x+1],x) [[0 < x, x < 1, x^2 + x - 1 > 0], [1 < x, x^2 + x - 1 > 0]] Así que la completamos nosotros solve([x^2 + x - 1 > 0],x) [[x < -1/2*sqrt(5) - 1/2], [x > 1/2*sqrt(5) - 1/2]] x 1 Así que podemos concluir que la solución del sistema de ecuaciones 0, es la unión de intervalos abs(x 1) x x +1 5 1 ( 1 ) ( 1 ) 2 En general, las desigualdades deberán ser sencillas para que Sage sea capaz de resolverlas. Muchas veces es mejor hacerlas a mano. Ejercicios propuestos: Ejercicio 1. Dar 20 cifras decimales del número π. Ejercicio 2. Factorizar x n y n para n=2,...,7 Ejercicio 3. Simplificar x 2 1 x 3 1 Ejercicio 4. Encuentra los errores de escritura: solve[x+abs[x]=1,x] simplify_full(sen(x)*tan(x)) solve(x+y=1,2x+y=3,x,y) Ejercicio 5. Resuelve las ecuaciones. Si es posible de modo exacto, si no, de modo aproximado. 1 +tan 2 2 (x) = 2 Ejercicio 6. Resuelve cos (x) las desigualdades: x 3 + x 2 =21 x 8 2 2x + x 1=0 1

9 de 9 07/07/2010 12:07 e x cos(x) 0 Alguna da problemas? Ejercicio 7. Es lo mismo a=b que b=a? Dad un ejemplo que lo ponga de manifiesto.