IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Curso elemental de Mathematica
Martın Arce
Departamento de matematicasUniversidad de Guanajuato
10 de marzo de 2015
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Introduccion
¿Que es Mathematica?
Mathematica es un programa utilizado en areas cientıficas, deingenierıa, matematicas y computacionales.
Desarrollado por Stephen Wolfram.
Comunmente considerado un programa de algebra computacional,tambien funciona como lenguaje de programacion.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Kernel y Front-End
Mathematica se divide en dos partes:
Kernel
Interpreta las expresiones (codigo de mathematica).
Realiza las operaciones.
Regresa expresiones de los resultados.
Front-End
Proporciona una interfaz con la cual interactua el usuario.
Aquı se intrucen los comandos y se expresan los resultados.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Interfaz de “cuadernos” e interfaz de solo texto
Interfaz de “cuadernos”
Interfaz mas agradable para el usuario.
Los archivos *.nb permiten introducir instrucciones en formato conestilo matematico ademas de la entrada usual con texto.
Permite interactuar, manipular y editar entradas y salidas delprograma en cualquier orden.
Interfaz de solo texto
Se utiliza en sistemas sin interfaz grafica.
Se corre desde consola como math.exe (math en linux).
Solo permite entradas y salidas con texto simple.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Interfaz de “cuadernos” e interfaz de solo texto
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Sintaxis basica
Todas las instrucciones y comandos se intruducen en el front-end,seguidas de [shift]+[enter]∗.
Los parentesis en mathematica son para agurpar, no para evaluar.Para evaluar se utilizan corchetes “[” y “]”.
Las funciones integradas en el programa inician con mayuscula y (engeneral) utilizan palabras completas.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Metodos de entrada
Hay principalmente tres metodos de entrada
1 Texto con teclado.
2 Paletas.
3 Comandos especiales con el teclado.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Paletas
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
¿Que es Mathematica?Sintaxis basica
Comandos especiales con el teclado
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Calculos numericos
Aritmetica basica
Suma: 3 + 8 + 4.
Multiplicacion: 2 3 5 o 2 ∗ 3 ∗ 5.
Negativo: −4.
Division: 5/3.
Elevar a una potencia: 2ˆ5.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Constantes
Constantes comunes
π: Pi o [esc]p[esc].
e: E o [esc]ee[esc].
i : I o [esc]ii[esc].◦: Degree o [esc]deg[esc]. Constante que vale π
180 . x Degree esel numero de radianes que son x grados. Ejemplo:Sin[90 Degree] = Sin[π2 ] = 1.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Numeros complejos
Operaciones basicas con numeros complejos
El numero complejo 3 + 2i se introduce 3 + I 2.
Parte real: Re[3 + I 2].
Parte imaginaria: Im[3 + I 2].
Norma: Abs[3 + I 2].
Argumento: Arg[3 + I 2]. La funcion Arg regresa un valor entre−π y π.
ComplexExpand[expr] expande expr suponiendo que todas lasvariables en expr son numeros reales.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Funcion Arg
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Generacion de numeros aleatorios
Funciones para generar numeros aleatorios
“Real” pseudoaleatorio en [0, 1]: RandomReal[].
“Real” pseudoaleatorio en [0, b]: RandomReal[b] (en [b, 0] sib < 0).
“Real” pseudoaleatorio en [a, b]: RandomReal[{a,b}] (en [b, a] sib < a).
Lista de n “reales” pseudoaleatorios en un rango:RandomReal[{a,b},n].
Arreglo multidimensional de tamano n1 × n2 × · · · × nm de “reales”pseudoaleatorios: RandomReal[{a,b},{n1, n2, · · · , nm}].
RandomInteger[] funciona exactamente igual que RandomReal entodos los casos, devolviendo numeros enteros.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Generacion de numeros aleatorios
Funciones para generar numeros complejos aleatorios
RandomComplex[]: Numero complejo pseudoaleatorio, cuyas partesreal e imaginaria estan en [0, 1].
RandomComplex[zmax]: Numero complejo pseudoaleatorio en elrectangulo con esquinas en el origen y zmax .
RandomComplex[{zmin, zmax}]: Numero complejo pseudoaleatorioen el rectangulo con esquinas en zmin y zmax .
RandomComplex[{zmin, zmax},n]: Lista de n numeros complejos enel rango dado.
RandomReal[{a,b},{n1, n2, · · · , nm}]: Arreglo multidimensional detamano n1 × n2 × · · · × nm de numeros complejos pseudoaleatorios.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Presicion y exactitud
Mathematica presenta los resultados numericos en forma exacta siempreque puede. Esto significa, por ejemplo, que los resultados se expresarancomo π, e,
√2 en lugar de 3.1415, 2.7182, 1.4142, etc.
De requerirse una aproximacion decimal de un resultado, por ejemplo√
2,introducimos
√2//N o, equivalentemente, N[
√2].
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Presicion y exactitud
Si queremos especificar la presicion a n digitos utilizamos N[√
2,n].
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Usar resultados anteriores
Notamos que cada entrada y salida esta enumerada en Mathematica,podemos tomar ventaja de esto manipulando resultados anterioresutilizando las siguientes expresiones en nuestras entradas.
Comandos para manipular resultados anteriores
%: Ultimo resultado (inmediato anterior).
% %: Penultimo resultado.
%· · · % (k veces): k-esimo resultado anterior.
% n Resultado en Output[n] (equivalente a Output[n]).
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Usar resultados anteriores
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Manipular como se expresa la salida
Podemos especificar como se expresa la salida que nos devuelveMathematica. Poner “;” al final de una expresion evita que se imprima elresultado. Usamos tambien “;” para poner varios comandos en unamisma linea. Usar “//” al final de una expresion nos sirve para decirle aMathematica la “forma” en que debe imprimirla.
Terminaciones “//”
//FullForm. Imprime la “forma completa” de la expresion sinsintaxis especial.
//Short. Se utiliza cuando la salida es muy grande y queremos quesolo se imprima una parte. Short[expr,n] imprime expr truncadaen n lineas.
//N. Nos da un aproximacion numerica de expr.
//TableForm.
//MatrixForm.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Variables
En Mathematica, como en lenguajes de programacion, podemos definir,evaluar, comparar y liberar variables. Salvo nombres reservados porMathematica (funciones predefinidas, nombres de constantes, etc.)podemos nombrar a nuestras variables con cualquier combinacion deletras y numeros, siempre que esta no comienze con un numero.
Manipulacion de variables
Asignamos valores a las variables con “=”: x = 5.
Podemos asignar el mismo valor a varias variables en un mismocomando: x = y = 5.
Para “liberar” variables utilizamos: x=. o Clear[x]. Se recomiendaliberar variables en cuanto se termine de trabajar con ellas paraevitar futuros errores.
Recordemos que x y (con un espacio en medio) es la multiplicacionde x por y . xy es la variable con nombre xy.
Una vez asignados valores, podemos hacer comparaciones logicasentre variables. A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Funciones basicas
Funcion Explicacion
Sqrt[x]√x
CubeRoot[x] 3√x
Surd[x,n] n√x
Exp[x] ex
Power[x,y] xy
Log[x] Logaritmo base e de xLog[b,x] Logaritmo base b de xSin[x], Cos[x], Tan[x] Funciones trigonometricasCot[x], Sec[x], Csc[x] (x se supone en radianes).ArcSin[x], ArcCos[x], ArcTan[x] Funciones trigonometricas
inversas
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Mas funciones
Funcion Explicacion
n! Factorial de n.Gamma(n+1), si n /∈ N.
Abs[x] |x |Mod[m,n] Regresa el residuo de m
nFloor[x] Mayor entero menor o igual a xFloor[x,a] Mayor multiplo de a menor o igual a xMax[x1, · · · , xn] El maximo xiMin[x1, · · · , xn] El mınimo xiFactorInteger[n] Regresa la factorizacion en numeros primos de nNorm[{x1, · · · , xn}] La norma del vector (x1, · · · , xn)
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Listas
A veces es conveniente agrupar juntos varios objetos y tratarlos comouna sola entidad. Las listas en Mathematica nos permiten hacer tal cosa.Una lista como {3,5,1} es una coleccion de tres objetos. Mathematicapermite tratar a la lista completa como un solo objeto y realizar porejemplo operaciones aritmeticas en ella o definirla como el valor de unavariable.
Listas
Una lista en Mathematica de 3 numeros: {3, 5, 1}.Operaciones aritmeticas entre listas de mismo tamano son validas yse realizan entrada a entrada.
Operaciones aritmeticas entre un numero y una lista tambien sonaceptadas por Mathematica.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Listas
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Listas
Muchas funciones, cuando se aplican a listas, se distribuyen a cada unade las entradas:
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Manipulacion de listas
Funciones para manipular listas
Si list es una lista, entonces:
Part[list,i] o list[[i]] regresa el i-esimo elemento de la lista(el primero es el 1).
Part[list,{i1, · · · , in}] o List[[{i1, · · · , in}]] regresan la“sublista” de los elementos con los indices dados.
Podemos asignar valores a elementos especificos haciendolist[[i]] = x.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Calculos numericosSintaxis (2)VariablesFunciones basicasListas
Funcion Table
La funcion Table nos brinda una forma practica para crear listas dada unaexpresion f y un iterador.
Funcion Table
Table[f,imax]. Regresa la lista con f en cada entrada, de tamanoimax.
Table[f,{i,imin,imax}]. Regresa la lista cuyas entradas son f
conforme i recorre desde imin hasta imax.
Table[f,{i,imin,imax,di}]. Como el caso anterior con i
haciendo saltos de tamano di.
Table[f,{i,{i1,i2,...,in}}]. i toma exactamente los valoresi1, ... ,in.
Table[f,{irange},{jrange},...]. Regresa listas anidadas,recorriendo los iteradores dados.
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Funciones creadas por el usuarioFunciones especialesManipulaciones algebraicasSubstituciones
Funciones creadas por el usuario
Definicion de funciones
Podemos definir nuestras propias funciones, de una o varias variables conla siguiente sintaxis:
‘‘nombre de la funcion’’[x ]:=expr
‘‘nombre de la funcion’’[{x1 , · · · , xn }]:=expr
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Funciones creadas por el usuarioFunciones especialesManipulaciones algebraicasSubstituciones
Funciones creadas por el usuario
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Funciones creadas por el usuarioFunciones especialesManipulaciones algebraicasSubstituciones
Funciones especiales
Algunas funciones muy utiles de uso comun:Funcion ExplicacionD[f,x] Derivada e integral de f
Integrate[f,x] con respecto a x
Limit[f,x->x0] lımx→x0 f (x)Sum[f,iter] y Product[f,iter] Suma y producto (notacion Σ y Π)
Solve[lhs==rhs,x] Soluciona la ecuacion para x
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Funciones creadas por el usuarioFunciones especialesManipulaciones algebraicasSubstituciones
Manipulaciones algebraicas
Mathematica cuenta con un amplio repertorio para manipular expresionesalgebraicas. Algunas de las mas utiles son las siguientes.
Funcion ExplicacionExpand[expr] Expande productos y potencias
enteras positivas en expr
Factor[poly] Factoriza un polinomiocon coeficientes enteros
Simplify[expr] Realiza diversas operaciones en expr
para devolverla en su forma mas simple
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Funciones creadas por el usuarioFunciones especialesManipulaciones algebraicasSubstituciones
Substituciones
Si tenemos una expresion grande y complicada en funcion de x yqueremos evaluarla para algun valor x0. Podemos copiar la expresion ydefinir una funcion que corresponda a esta y despues evaluar tal funcionen x0. Una solucion mucho mas rapida y comoda es “->”
Sintaxis para substituciones
expr/.x->valor Substituye a x por valor en expr.
expr/.{x->valor1,y->valor2} Substituye a x por valor1 y a y
por valor2 en expr.
expr/.{{x->valor1},{x->valor2},...,{x->valorn}} Devuelveuna lista con los valores de expr al haber substituido a x con cadauno de los valores dados
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Funciones creadas por el usuarioFunciones especialesManipulaciones algebraicasSubstituciones
Substituciones
A. Martın Curso elemental de Mathematica
IntroduccionCalculos numericos y simbolicos
Calculos mas elaborados
Funciones creadas por el usuarioFunciones especialesManipulaciones algebraicasSubstituciones
Substituciones
A. Martın Curso elemental de Mathematica