Академический Документы
Профессиональный Документы
Культура Документы
Snezhana G. Gocheva-Ilieva
Al lector
Propsito. Este texto pretende ayudar en la formacin de estudiantes y profesores sobre cmo usar Mathematica en niveles intermedios y avanzados. Se recomienda haber seguido previamente la introduccin a Mathematica que puede verse en el captulo anterior de esta gua. Contenidos. Se incluyen referencias a las principales funciones de Mathematica. Hay un gran nmero de ejemplos que explican las capacidades del sistema. Los ejemplos se han agrupado de acuerdo con la materia en la forma de ficheros que contienen distintas explicaciones y resultados. Los contenidos de Mathematica o WebMathematica estn vivos en el sentido de que podemos repetirlos y usarlos en cualquier momento. El conocimiento significativo se alcanza cuando se repiten los diferentes ejemplos con cambios en los parmetros, en los valores numricos, en las funciones, etc. Objetivos. Se pretende provocar el uso interactivo del sistema para crear lecciones especiales, tests, tutoriales, artculos y otros desarrollos en diferentes reas de la educacin y de la exploracin cientfica en matemticas. Plovdiv, 21.08.2007. El autor
Compatibilidad con los lenguajes de programacin C++, FORTRAN etc. con posibilidades para intercambiar datos y libreras. Sistema abierto que permite la definicin de nuevas reglas, funciones, procedimientos y paquetes por parte de los usuarios. Versiones modificadas para trabajar en entornos de red y desarrollo de aplicaciones. Publicaciones fciles a travs de las caractersticas especiales de Publicon de Wolfram Research. Posibilidades para intercambiar datos en diferentes formatos: HTML, XML (XHTML + MathML) etc.
Hay que tener en cuenta a la hora de teclear las funciones y commandos que el sistema es sensible a los nombres de las variables y que, por ejemplo, CoCa-CoLa es diferente de Coca-Cola. Las funciones del sistema comienzan siempre por letra mayscula y los argumentos van entre corchetes. Es recomendable que los nombres de las funciones definidas por el usuario no empiecen por letras maysculas. Los nombres vlidos empiezan necesariamente por una letra. La lnea de comandos y operadores pueden contener funciones del sistema, funciones de los usuarios, variables, constantes, etc. Para familiarizarse rpidamente con Mathematica es muy recomendable usar la extraordinaria ayuda que contiene el sistema y el manual realizado por el creador de Mathematica, S. Wolfram.
Funcin
El resultado del ltimo Out El resultado del penltimo Out El resultado del antepenltimo Out El resultado del Out[n] Separador universal Separador para expresiones dentro de una lnea. Al final de la lnea inhibe la salida. Punto decimal. Smbolo para borrar el contenido de una variable. Smbolo para multiplicar matrices Smbolo de asignacin Definiendo una funcin o una regla Cambio temporal de valores para el clculo actual Flecha para la sustitucin de un valor o una regla
Ejemplo
N[%,50] Repite el ultimo clculo con una precisin de 50 dgitos
%20 Repite el Out 20 Plot[x3+4, {x,1,5}] x=223; -No se visualiza Out -22.345 x1=. El contenido de la variable x1 ha sido borrado. m.n 12=1.345 f[x_]:=Sin[x] Cos[x2] /. x->3a -El resultado es cos(9a4) ArcCos[x2] /. x->0.5 - El resultado es 3.14159
. = := /. -> //N ( ) [ ] { } [[ ]] (* *)
Parntesis para operaciones aritmticas o h=( 7-x5/ (1-3 ( 2+x3)) lgicas Corchetes para los argumentos de las funciones. Llaves para las listas de elementos. Corchetes para la extraccin de elementos de una lista o ndices. Parntesis para comentarios D[Sin[x-4]] m={-1, 0, 6, 4 ,1 } - m es un vector con 6 coordenadas m[ [ 3 ] ] - Tercer elemento de m
Smbolos para las operaciones aritmticas: ^ a=2 / 7 * or space Potencia, multiplicacin, divisin, suma b=a*c / (3-x^3) y resta / + == != > >= <= < Smbolos de comparacin: Igual, distinto, mayor, mayor o igual, etc. Se usan para verificar identidades, resolver ecuaciones, etc.
Operaciones lgicas: Not lgico o factorial ! And lgico && Or lgico || Xor[p,q,...] Or Exclusivo << >> >>> !! Smbolo para cargar un paquete externo
Usadas para resolver clculos complicados, verificaciones lgicas, etc., ! (a && b<2) <<Graphics`Shapes` <<name_ of_ the_ file Expresin >>> name_of_the_file Expresin >> f1 !!f1
Smbolo para exportar datos a un fichero Expresin >> name_of_the_file Aadir al fichero Lee el texto en el fichero
Funcin
In (entrada) 5! N[%,8]
Ejemplos
Out (resultado) 120 3.1415927 2.71828 False True -10 + 198 I -10 198 45 32 ] 0.731616 0 2
e//N True && False !False p=(5+3I) Re[p] Im[p] 30Degree//N Abs[-45] Sqrt[1024.] Exp[ Log[1.] Log[3, 9] Sin[ Cos[ ] ]
3
Sqrt[ x ] Raz cuadrada de x Exp[ x ] Funcin exponencial Log[x] Logaritmo neperiano Log[b,x] Logaritmo en base b de x Sin[x ] Cos[x] La funcin seno La funcin coseno
Tan[x] Cot[x]
Tan[
Cot[30Degree] ArcSin[Cos[ ]]
ArcSin[x] La funcin arco seno ArcCos[x] La funcin arco coseno ArcTan[x] La funcin arco tangente ArcCot[x] La funcin arco cotangente Round[x] El entero ms cercano a x Mod[n,m] El resto de la divisin n/m
Random[ ] Nmero pseudoaleatorio en el intervalo [0,1)
ArcCos[Tan[2.]]
ArcCot[ 1 ] Round[2.6] Round[ -2.6] Mod[ 27, 4] Random[ ] Random[ ] 3 -3 3 0.08779 0.648845
1.6.
Transformaciones
de
expresiones
Accin
La variable pierde su valor Las variables pierden sus valores Reemplaza la variable en expr1 con expr2 Reemplazo de las variables 1, 2, .. en expr1 por sus valores respectivos Muestra el primer miembro de la expresin Muestra los primeros n miembros de la expresin Cuenta el nmero de elementos Verificacin lgica Quita parntesis y expande la expresin Reduce los elementos de una expresin si es posible Expande la expresin teniendo en cuenta las identidades trigonomtricas. Expande las expresiones complejas Expande las expresiones lgicas Factoriza expresiones Factoriza expresiones teniendo en cuenta las identidades trigonomtricas Expande todas las expresiones Reduce a comn denominador Descomposicin en fracciones simples Simplifica una fraccin Agrupa segn las potencias de x
Variable = . Clear[ variable1, variable2, ... ] expression1 /. variable -> expression2 expression1 /. {var.1-> expression2, var.2 -> expression2,...} Expression // Short Short [ expression , n ] Length [ expression ] If[ if expr1, then expr2, else expr3] Expand[ expression ] Simplify[ expression ] Expand[ expression , Trig -> True] Complex Expand[ expression ] LogicalExpand [ expression ] Factor[ expression ] Factor[ expression , Trig -> True ] ExpandAll[ expression ] Together [ expression ] Apart[ expression ] Cancel[ expression ] Collect [ expression , x ]
FactorTerms [ expression , x ] Numerator [ expression ] Denominator [ expression ] ExpandNumerator [ expression ] ExpandDenominator [ expression ] InterpolatingPolynomial[{{x1,f1},{x2,f2}, ...},x]
Factores independientes de x El numerador de una expresin El denominador de una expresin Expande solo el numerador Expande solo el denominador Halla el polinomio de interpolacin asociada a la tabla de valores
Accin
Calcula la derivada parcial de f respecto de x Calcula la derivada parcial de f respecto de x, y, etc. Calcula la derivada n-sima de f respecto de x Calcula la derivada total de f Calcula la derivada total de f en la derivada total de x Calcula la derivada parcial de f[x] respecto de x Calcula la integral indefinida Calcula la integral definida Calcula el valor numrico de la integral definida Calcula el valor numrico de la integral definida con una precisin de n dgitos Calcula la integral doble Calcula el lmite Calcula el lmite infinito Calcula la suma de f segn el recorrido de la variable Como la funcin previa, pero incrementando el ndice i con un salto di Sumas mltiples Calcula el producto Como la funcin previa, pero incrementando el ndice i con un salto di Calcula productos mltiples Frmula de Taylor de f en x0 de orden n. El polinomio de Taylor de f Resuelve algebraicamente la ecuacin f=0 respecto de x. El resultado es una lista de races. Como antes pero con una ecuacin en general
x1=x /. %[[1]] x2=x /. %%[[2]] N[Solve [f==0, x] , n] Solve [ {f==0, g==0}, {x, y}] Eliminate [{left1==right1, left2==right2, ...},{x, y, ...}] Reduce[{left1==right1, left2==right2, ...},{x, y, ...}]
Extrae la primera raz de la ecuacin en la variable x1 Extrae la segunda raz de la ecuacin en la variable x2 Calcula numricamente las races de la ecuacin con precisin de n dgitos Resuelve el sistema de ecuaciones. El resultado es una lista con los valores de las variables. Si es posible elimina las variables del sistema de ecuaciones y da la posible solucin. Anlogo al anterior pero con las relaciones lgicas
1.8. Listas
{e1, e2, ...,en} es una lista de elementos. Los elementos pueden ser de muy diversos tipos: nmeros, expresiones, listas, grficas,
Funcin
{a1,a2,.....} {{b1,b2,...},{c1,c2,...}, ...} Table[ f , {n}] Table[ f , {i, n}] Table[ f , {i, imin, imax}] Table[ f , {i, imin, imax, di}] TableForm[ list ] ColumnForm[ list ] % // TableForm Array[ a, n ] Range[ n ] Range[ n1,n2] Range[ n1,n2, di ] list[ [ i ] ] o Part[list, i ] list[ [ i, j ] ] o Part[list, i ,j ] Lenght[ list ] Table[ f, {i, imax}, {j, jmax} ] Array[ a, {m,n}] IdentityMatrix[ n ] DiagonalMatrix[ list ] Dimensions[ list ] MatrixForm[ list ] Genera una lista
Accin
Genera una matriz. La primera fila es b1,b2,... , la segunda fila es c1,c2,..., etc. Genera la lista {f,f,...,f} Genera una lista, i=1,...,n. Genera una lista, i=imin, ... imax Como la funcin previa, pero incrementando el ndice i con un salto di Muestra los elementos de list en forma de tabla Muestra los elementos de list en forma de columnas Muestra el resultado anterior en forma de tabla Define la lista {a[1],a[2],..., a[n]} Genera la lista de enteros {1,2,...,n} Genera la lista de enteros de n1 a n2 Como la funcin previa, pero incrementando el ndice i con un salto di Extrae el i-simo element de list Extrae el elemento (i,j) de una matriz list Cuenta el nmero de elementos de list Genera una matriz , i=1,2,..., imax and j=1,2,..., jmax Define una lista bidimensional de objetos a[i,j] Genera la matriz identidad de orden n Genera una matriz diagonal con los elementos de list Proporciona la dimensin de list Presenta la lista en la forma matricial habitual.
cm o a.b
c*m
Multiplica la constante c por la matriz m Multiplica las matrices a y b Si existe, calcula la inversa de la matriz m Calcula la matriz mn Calcula el determinante de la matriz cuadrada m Calcula la matriz traspuesta de m Calcula los valores propios de m Calcula los primeros k valores propios de m Calcula numricamente los valores propios de m Calcula los vectores propios de m Calcula numricamente los vectores propios de m Suma todos los elementos de list Calcula el producto de todos los elementos de list
Inverse[m] MatrixPower[m, n] Det[m] Transpose[ m ] Eigenvalues[ m ] Eigenvalues[m , k] Eigenvalues[ N [m] ] Eigenvectors[ m ] Eigenvectors[ N[ m ] ] Apply [ Plus,list] o Plus @@ list Apply [ Times, list ] o Times @@ list
Accin
Proporciona la grfica de la funcin f[x] con x en el intervalo [a,b] Proporciona la grfica de la funcin f[x] con x en el intervalo [a,b] y los valores de f[x] en el intervalo [c,d] Proporciona las grficas de las funciones f1,f2,f3 con x en el intervalo [a,b] Proporciona las grficas almacenadas en las variables g1, g2, ... Dibuja los puntos {1,y1},{2,y2},... Dibuja los puntos {x1,y1}, {x2,y2},... Conecta los puntos mediante la lnea quebrada.
ParametricPlot[ {fx,fy} , {t, tmin,tmax} Dibuja la curva dada por sus ecuaciones paramtricas ] ParametricPlot[ {fx,fy} , {gx,gy},...,{t, Dibuja varias curvas dadas por sus ecuaciones paramtricas en los mismos ejes coordenados tmin,tmax} ] ParametricPlot[ {fx,fy} , {t, Como antes pero con la opcin de la relacin entre las tmin,tmax}, AspectRatio -> Automatic escalas de los ejes ] Proporciona el sonido cuya amplitud viene dada por f como funcin del tiempo t en segundos en el Play[ f, {t, tmin, tmax} ] intervalo marcado ListPlay[{a1,a2,a3,...}, SampleRate -> Proporciona el sonido almacenado en las variables a1, a2, a3, .. r] Proporciona el sonido almacenado en la variable. Show[ ssound1 ]
1.10. Grficas 3D
Funcin
Plot3D[ f, {x, a, b}, {y, c, d} ] ListPlot3D[{{x1,y1,z1}, {x2,y2,z2},...} ] ListContourPlot[ data array ] ListDensityPlot[ data array ] ParametricPlot3D[{fx,fy,fz}, {t, tmin,tmax} ] ParametricPlot3D[{fx,fy,fz}, {t, tmin,tmax},{u, umin, umax} ] ParametricPlot3D[ {fx,fy,fz, s}, {t,tmin,tmax}, {u, umin, umax}]
Accin
Proporciona la grfica de la funcin f[x,y], con la x variando en el intervalo [a,b] y la y en el intervalo [c,d] Dibuja los puntos tridimensionales citados. Dibuja las curvas de nivel de la lista de datos Dibuja la grfica de densidades de la lista de datos Dibuja una curva dada por sus ecuaciones paramtricas Dibuja una superficie dada por sus ecuaciones paramtricas Oscurece la grfica de la superficie de acuerdo con la funcin s
Descripcin
Carga el paquete que permite el uso de grficas especiales Presenta los datos en forma de histograma Presenta los datos en forma de tarta Proporciona la grfica de una curva en polares Cargar el paquete que permite animaciones grficas Anima la grfica gr segn el recorrido de t. Anima simultneamente la secuencia de objetos grficos almacenados enlas variables gr1, gr2,... Carga el paquete que permite representar las soluciones de desigualdades y sistemas de desigualdades. Dibuja la solucin grfica del conjunto de desigualdades ineqs en 2D Dibuja la solucin grfica del conjunto de desigualdades ineqs en 3D
<<Graphics`InequalityGraphics` InequalityPlot[ ineqs, {x, xmin, xmax}, {y, ymin, ymax} ] InequalityPlot3D[ ineqs, {x, xmin, xmax}, {y, ymin, ymax}, {z, zmin, zmax} ]
Primitiva
Point[ {x,y}] Line [ { {x1,y1},{x2,y2},...}] Rectangle[{xmin, ymin},{xmax, ymax}] Polygon[ { {x1,y1},{x2,y2},...}] Circle [ {x,y} , r ] Disk [ {x,y} , r ] Disk [ {x,y} , {r1,r2} ]
Objeto grfico
Define el punto del plano de coordenadas {x,y} Define la lnea quebrada que se obtiene uniendo los puntos citados Define el rectngulo por los vrtices opuestos dados Define un polgono plano de vrtices {x1,y1},{x2,y2}, ... Define el crculo de centro (x,y) y radio r. Define el disco de centro (a,b) y radio r Define una elipse
Primitiva
Point[ {x,y,z}] Line [{ {x1,y1,z1},{x2,y2,z2},...}] Polygon[{ {x1,y1,z1},{x2,y2,z2},...}]
Objeto grfico
Define el punto de coordenadas {x,y,z} Define la lnea quebrada uniendo los puntos citados Define el polgono de vrtices los puntos citados
Cuboid [{xmin, ymin,zmin}, {xmax, ymax,zmax}] Define el paraleleppedo por sus vertices opuestos.
Ejemplo 2. Resolvemos la ecuacin x6-1=0 y almacenamos el resultado en la variable z. Luego extraemos algunas races de esa lista.
Ejemplo 3. Si tratamos de resolver la ecuacin , obtenemos solo las reglas correspondientes. Por eso utilizamos la funcin NSolve[ ]. La ecuacin posee 2 races reales y 6 complejas.
Ejemplo 4. Intentamos resolver exactamente dos ecuaciones trigonomtricas y vemos que eso no es siempre posible Solve[Cos[x]==a,x] Solve[Cos[x]==2x,x]
Ejemplo 5. Para resolver la segunda ecuacin del ejemplo anterior, dibujamos la grfica de la funcin para localizar la raz y luego resolvemos el problema mediante el mtodo de Newton aplicando la funcin FindRoot[ ]. El punto inicial puede ser x=0. Plot[Cos[x]-2x,{x,-5,5}] FindRoot[Cos[x]==2x,{x,0}]
Ejemplo 6. Resolvemos ahora un sistema de dos ecuaciones con dos incgnitas y extremos las primeras soluciones en las variables , b : f = 3x + y-5 g =-x + 2y+1 Solve[{f==0,g==0},{x,y}] (*In the first curly brackets we indicate the list of equations *) (* and in the second curly brackets the list of unknowns x,y *) N[%] a= x/. %[[1]] b= y/. %%[[1]]
Example 7. Verificamos que la solucin es correcta: a b f /. {x->a,y->b} g /. {x->a,y->b} 1.57143 0.285714 0. 0. Ejemplo 8. Resolvemos el sistema paramtrico: Solve[{c*x + y==0, 3x + (1+c)y == 1}, {x,y}]
Ejemplo 9. Resolvemos un sistema de dos ecuaciones. En ocasiones la salida es muy larga y puede ser poco manejable. Se puede ocultar/mostrar la solucin haciendo un doble click en el corchete del final de la celda.
Ejemplo 10. Resolveremos un sistema de dos ecuaciones con dos incgnitas x,y, Por conveniencia almacenamos las ecuaciones en dos variables auxiliares ur1 y ur2. Obsrvese que es distinto el signo igual == del signo de asignacin =. Intentamos resolver el sistema con la funcin Solve y obtenemos que las posibles races exactas del sistema verifican una serie de reglas que no nos permiten manejar la solucin. Tratamos entonces de resolver el sistema numricamente y almacenamos las terceras soluciones en dos nuevas variables que nos permitira usarlas si fuera necesario para clculos posteriores.
Ejemplo 11. Si las ecuaciones son muy complejas, se puede intentar una simplificacin eliminando algunas incgnitas en algunas ecuaciones. Eso es lo que hacemos ahora. opr1=Eliminate[{ur1,ur2},x] opr2=Eliminate[{ur1,ur2},y]
Ejemplo 12. Resolvemos ahora las ecuaciones obtenidas antes.. rey=N[Solve[opr1,y]] rex=N[Solve[opr2,x]]
x2=x/.rex[[2]]
Ejemplo 13. Mathematica resuelve ahora un sistema homogneo. Obsrvese que se obtiene la solucin exacta del sistema planteado.
Ejemplo 14. Todas las posibilidades presentes pueden ser examinadas con la funcin Reduce. En la presentacin del resultado aparecen las funciones lgicas habituales. Utilizamos esta funcin para examinar la solucin de la ecuacin de 2 grado:
Ejemplo 15. Se presenta ahora la solucin del ejemplo 10 con la funcin Reduce. Puesto que el resultado es una larga y complicada expresin lgica, evitamos mostrarla escribiendo un ; al final del operador. Luego calculamos los valores numricos obtenidos.
Ejemplo 16. Calculamos ahora las soluciones a partir del mtodo numrico de Newton que se obtiene mediante la funcin FindRoot. FindRoot[{ur1,ur2},{x,-1},{y,-1}] FindRoot[{ur1,ur2},{x,-0.1+i},{y,i}]
Ejemplo 18. Expresando uno de los valores en funcin del otro. f1=Reduce[ur1,y] f2=Reduce[ur2,y]
Los mismos comandos pueden escribirse con ayuda de las paletas de smbolos matemticos.
Ejemplo 2. Veamos las grficas de las funciones derivadas del ejemplo 1. Es interesante su comportamiento en el intervalo [-2,2] y por eso solo las representamos en dicho intervalo.
Ejemplo 4. Limpiamos la variable f. Calculamos despus algunas derivadas simblicas con f. f=. D[f[x],x] D[5* x *f[x], x]
Ejemplo 5. Si le asignamos algn valor de f, el posible antiguo valor es anulado automticamente. Calculamos algunas integrales para el nuevo valor de la variable f.
Ejemplo 7. Queremos calcular la integral doble de una funcin trigonomtrica. El sistema tiene dificultades en el clculo porque la funcin integrando tiene singularidades. A pesar de que el clculo es muy lento, obtenemos la solucin. Si el clculo es muy lento, siempre se puede interrumpir la evaluacin acudiendo al men Kernel/Abort Evaluation.
Ejemplo 8. Se representa ahora la funcin del ejemplo anterior para mostrar las singularidades. Plot3D[f[x,y],{x,0,1},{y,0,1}]
Ejemplo 11. Vamos a examinar otra funcin con singularidades. El sistema realiza la grfica sin problemas, a pesar de que no est definida para x=0.
Ejemplo 12. Calculamos los lmites adecuados para esa funcin y hacemos una integral impropia.
-Graphics-
-Graphics-
Ahora obtenemos el desarrollo en serie en un entorno del punto 1. Con la funcin Normal[ ] se obtiene el polinomio de Taylor.
Series[Exp[x],{x,0,7}] Normal[%]
Ejemplo 3. La serie de potencias de una function trigonomtrica. Viendo el resultado con los coeficientes decimals se ve lo rpido que los coeficientes tienden a 0. Series[Sin[2t],{t,0,20}] N[Normal[%]]
Ejemplo 4. Aqu obtenemos el desarrollo en serie de potencias de un producto de funciones, multiplicando los desarrollos en serie individuales. Utilizamos la funcin Simplify para obtener alguna simplificacin.
Ejemplo 6. Podemos hacer transformaciones con las series. red2=Normal[Series[Tan[-a*x]*(1+Cos[2x]),{x,0,4}]] red3=red2 *2 *(1-red2)
Simplify[%]