You are on page 1of 58

Software Mathematica: Su aplicacin en los Mtodos Numricos

Software Mathematica: Su aplicacin en los Mtodos Numricos

AUTORES: Lic. ELIZABET ALEJANDRA MATOSO CATEDRA: METODOS NUMERICOS UNIVERSIDAD: UNIVERSIDAD NACIONAL DEL NORDESTE FACULTAD: FACULTAD DE CIENCIAS EXACTAS NATURALES Y AGRIMENSURA LUGAR Y FECHA: CORRIENTES 2011

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos

INDICE
ndice Capitulo 1: Introduccin Captulo 2: Introduccin a Mathematica El espacio de trabajo Notebook y ncleo Entradas y salidas Celdas Paletas Operadores Constantes incorporadas Funciones Comandos Algebraicos El comando N Captulo 3: Funciones y listas Variables Funciones Listas Construccin y manipulacin de listas Comandos Captulo 4: Vectores y matrices Operaciones Matrices Operaciones Captulo 5: Resolucin de ecuaciones y sistemas de ecuaciones Comando LinearSolve Comando Solve Comando Findroot Comando NSolve Captulo 6: Representacin grfica Comando Plot Opciones de Plot Comando ListPlot Comando Show Comando Plot3D Opciones comando Plot3D Captulo 7: Derivacin e Integracin Derivacin Integracin Integrales indefinidas e integrales definidas Integrales impropias Valor aproximado de una integral Comando NIntegrate Aplicaciones de la integral Capitulo 8: Conceptos de programacin Listas 2 4 5 5 6 6 6 6 7 7 8 8 8 10 10 10 12 12 12 15 15 16 17 22 22 22 23 24 25 25 27 32 33 34 35 39 39 39 40 40 41 42 43 45 45

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos Variables Bucles Funciones condicionales: sentencia IF Orden Break Comando Which Captulo 9: Aplicaciones de Mtodos Races de ecuaciones Integracin de ecuaciones diferenciales Capitulo 10: Conclusin Capitulo 11: Bibliografa 45 47 49 50 50 51 51 53 57 58

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos

CAPITULO 1: INTRODUCCIN
Este material didctico, constituir un aporte para el desarrollo de la asignatura Mtodos Numricos y de otras materias afines dictadas en la FACENA (Facultad de Ciencias Exactas Naturales y Agrimensura). El objetivo es introducir al estudiante de ciencias bsicas, tanto de las Ingenieras como de las Matemticas, en el manejo de una herramienta de software, potente, verstil y contribuir mediante su utilizacin al estudio y comprensin de los Mtodos Numricos y las tcnicas de clculo aproximado y del anlisis de los errores cometidos. En el aula, se aprende el manejo y la aplicacin de algoritmos matemticos para alcanzar resultados o resolver problemas que los mtodos provistos por la Matemtica pura no pueden alcanzar, y en el laboratorio se ensea el uso y aplicacin de una herramienta de software que soporte lo incorporado en el aula. De un abanico de herramientas, se ha seleccionado Mathematica por tener caractersticas amigables, pensadas para el perfil de estos alumnos que no tienen profundos conocimientos de programacin. La propuesta del equipo docente, es continuar con la mejora y optimizacin de este recurso didctico, introduciendo nuevos mtodos y problemas del campo cientfico. Adems se est trabajando con otros paquetes de software, tales como el Matlab (Matrix Laboratory), y el Maple (Software libre) para permitir al alumno escoger entre una variedad de herramientas posibles.

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos

CAPITULO 2: INTRODUCCIN A MATHEMATICA


Mathematica es un programa utilizado en reas cientficas, de ingeniera, matemticas y reas computacionales. Originalmente fue concebido por Stephen Wolfram quien contina siendo el lder del grupo de matemticos y programadores que desarrollan el producto. Comnmente considerado como un sistema de lgebra computacional, Mathematica es tambin un poderoso lenguaje de programacin de propsito general.

EL ESPACIO DE TRABAJO El espacio de trabajo de la herramienta Mathematica, est compuesto por las siguientes partes: Notebook y Ncleo Entradas y salidas Celdas Paletas

Figura 1: El espacio de trabajo

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos NOTEBOOK Y NUCLEO En el programa Mathematica se pueden distinguir dos grandes partes: Una de ellas, llamada ncleo (Kernel), es la encargada de ejecutar todos los comandos y realizar los clculos necesarios. La otra parte es la interfaz del usuario (Front-End). Existe un tipo especial de Front-End que permite generar documentos interactivos en los que se mezclan grficos y textos y en el que se incluirn todos los comandos a evaluar por el ncleo; a ese tipo de documentos se los denomina Notebooks. ENTRADAS Y SALIDAS Para que el ncleo evale todas las entradas (inputs) ingresadas, se debe pulsar las teclas Shift y Enter simultneamente. Por cada entrada dada por el usuario, Mathematica devolver una salida (output) que numerar (ambos con el mismo nmero) secuencialmente a lo largo de una sesin de trabajo. CELDAS Cada entrada y salida lleva un corchete situado a la derecha de la pantalla delimitando lo que denominaremos celdas (Cell). PALETAS Las paletas son pequeas ventanas, que se pueden activar (o desactivar) y que contienen algunas de las operaciones, rdenes e instrucciones ms usuales que se necesitan durante una sesin de trabajo. Inicialmente son siete paletas que contienen todo tipo de operaciones, desde las ms bsicas hasta otras ms complejas de Clculo Algebraico, Clculo Integral o de Clculo Diferencial. Ofrecen la posibilidad de escribir, y por tanto de resolver, de la misma forma que se realiza en una hoja. Principios generales para escribir comandos: Las maysculas y minsculas. Mathematica distingue unos caracteres de otros. Todas las funciones, opciones, variables y constantes incorporadas al programa empiezan con mayscula, por lo tanto se recomienda utilizar minscula para aquellas definidas por el usuario. Los espacios. Un espacio entre dos variables se interpreta como un signo de multiplicacin. Por esto, nunca se debe dejar un espacio entre caracteres cuando se define el nombre de una constante, variable o funcin. Los parntesis, corchetes y llaves. Los parntesis se utilizan para agrupar e indican prioridad en las operaciones a efectuar. Los corchetes son exclusivos de las funciones y delimitan el argumento de las mismas, no se puede usar como un segundo nivel de parntesis. Las llaves se utilizan para definir listas (vectores y matrices, por ejemplo) de elementos.

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos OPERADORES Mathematica reconoce los operadores habituales de suma, diferencia, producto, cociente y potenciacin: Operacin suma resta producto cociente potenciacin Notacin en Mathematica X+Y XY X * Y o X Y (un espacio) X/Y X^Y

Otras operaciones numricas usuales son las siguientes: Operacin Valor absoluto de x Raz cuadrada de x Parte entera de x Factorial de x Nmero aleatorio real entre 0 y 1 Mximo y mnimo de una lista de vectores Descomposicin en factores primos de x Notacin en Mathematica Abs[x] Sqrt[x] Floor[x] X! o Factorial[x] Random[x] Max[x1,x2,..], Min[x1,x2,..] FactorInteger[x]

NOTA: Todas las funciones comienzan con maysculas (incluso cuando el nombre est formado por varias palabras). Los argumentos de las distintas funciones siempre van entre corchetes. La mayora de las operaciones se encuentran tambin en varias de las paletas. Con respecto a la precisin en el clculo, Mathematica tiene precisin infinita; es decir que las operaciones son realizadas en forma exacta o bien con la precisin que le indique el operador. La nica limitacin es la memoria disponible de la PC. CONSTANTES INCORPORADAS Mathematica tiene un gran nmero de constantes usuales predefinidas, algunas de ellas son: Notacin en Mathematica Pi E E I Infinity Si bien "infinito" no es una constante, ya que no es un valor numrico, Mathematica la incluye como constante predefinida. Operacin

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos FUNCIONES Algunas funciones usuales y la sintaxis correspondiente en Mathematica: Operacin x x e ln(x) log a ( x) sen(x) cos(x) tg (x) cot g ( x) sec(x) cos ec( x) arcsen(x) arcsh(x) Notacin en Mathematica Sqrt[x] E^x o Exp[x] Log[x] Log[a,x] Sin [x] Cos[x] Tan[x] Cot[x] Sec[x] Csc[x] Arcsen[x] ArcSinh[x]

COMANDOS ALGEBRAICOS Mediante el comando Expand[] podemos obtener el desarrollo de las expresiones introducidas (por ejemplo, la aplicacin de la propiedad distributiva, el desarrollo del cuadrado del binomio). Operacin Expand[x] Factor[x] Together[x] Apart[x]
Cancel[x] Simplify[x] FullSimplify[x] TrigExpand[x] TrigFactor[x]

Notacin en Matemtica Forma expandida (efecta sumas, productos, potencias) Factoriza x (escribe x como producto de factores mnimos) Escribe todos los trminos de x con un denominador comn Separa x en trminos con denominadores lo ms simples posible. Cancela factores comunes que posean numerador y denominador Simplifica x siguiendo reglas algebraicas estndar Simplifica x usando reglas algebraicas ms potentes Expande expresiones trigonomtrica en suma de trminos Factoriza expresiones trigonomtricas en producto de trminos

EL COMANDO N Para aproximar expresiones racionales peridicas o expresiones irracionales, se debe utilizar el comando N[expresin, nmero de cifras], donde el primero de los argumentos (expresin) corresponde a la cantidad numrica que se desea aproximar y el segundo de los argumentos (nmero de cifras) a la cantidad de cifras con la que se requiere el resultado (parte entera+decimales).

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 1: Obtener el valor exacto y aproximado de 123/9990, utilizar el comando N, para obtener los resultados. 123/99990

41 33330
N[123/99990] 0.00123012 Ejemplo 2: Calcular la raz cuadrada de 3 con 20 cifras exactas. N[Sqrt[3],20] 1.7320508075688772935 Tambin se puede calcular aproximaciones numricas indicando a la herramienta que alguno de los nmeros es real y no entero; para ello se coloca el punto de los decimales y Mathematica devolver el resultado con una precisin por defecto. Ejemplo 3: Probar la salida de las entradas; 123/99 y 123./99. Observar la diferencia reflejada. 123/99

41 33
123./99 1.24242

Lic. Matoso Elizabet Alejandra

Software Mathematica: Su aplicacin en los Mtodos Numricos

CAPITULO 3: FUNCIONES Y LISTAS


VARIABLES En programacin, las variables son estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecucin de un programa. Una variable corresponde a un rea reservada en la memoria principal del ordenador. La asignacin de valores a las variables se realiza de la siguiente manera: Ejemplo 1: Asignar a la variable x el valor de 7. x=7 7 (la variable x vale 7) A partir de este momento cualquier clculo que se realice y donde intervenga la variable x, sta equivaldr al valor dado. Ejemplo 2: Sumar el valor 4 a la variable x, definida previamente. x+4 11 Ejemplo 3: Calcular el cuadrado de x, ms x, menos el valor 3 x^2+x3 53 Es importante destacar, que los valores asignados a las variables son permanentes. Una vez que se haya asignado un valor a una variable concreta, el valor permanecer hasta que no se libere o limpie la variable. Por supuesto, el valor desaparecer cuando se reinicie el ncleo o se empiece una nueva sesin de Mathematica. Para liberar a las variables bastar con el Comando Clear. Ejemplo 4: Liberar la variable x. Clear[x] Print[x] x FUNCIONES La definicin de funciones se puede realizar de dos maneras diferentes: Asignacin inmediata (=) Asignacin diferida (:=) Diferencia: cuando se utiliza la asignacin diferida, sta se produce cada vez que se llama a la funcin, por lo tanto esta se ve afectada por todas las modificaciones que puedan efectuarse. Cuando se define una funcin en Mathematica, se debe especificar el nombre de la misma y su variable independiente.

Lic. Matoso Elizabet Alejandra

10

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 5: Definir la funcin f(x)= x^2+5x, utilizando la asignacin Diferida. x=4 4 f[x_]:=x^2+5x f[x] 36 f[5] 50 Ejemplo 6: Definir la funcin anterior, utilizando asignacin Inmediata. y=2 2 g[y_]=y^2+5y 14 g[y] 14 g[8] 14 En la asignacin diferida se observa, que la entrada no produce salida. Esto se debe a los dos puntos delante del signo de igualdad. Lo que se hace al aadir los dos puntos equivale a un pequeo programa que se ejecutar cada vez que lo llamemos. En cambio, si no se aade los dos puntos, Mathematica ejecutar la funcin inmediatamente. NOTA: La variable x lleva un guin bajo "_" delante del signo igual, para que el programa entienda que se trata de una variable muda, es decir, x puede llevar cualquier nombre o valor. Si se hubiese definido una funcin sin el guin bajo "_", sucedera lo siguiente: Ejemplo 7: Definir la funcin f(x)= x ^ 2, sin utilizar el guin bajo y cargar valores a x. Clear[x,f] f[x]=x^2

x2
f[6] f[6] f[6] f[5] f[6] f[5]

Lic. Matoso Elizabet Alejandra

11

Software Mathematica: Su aplicacin en los Mtodos Numricos LISTAS Son colecciones de objetos que son tratados como una entidad y constituyen una de las estructuras ms importantes de Mathematica. En particular tienen utilidad para la construccin de vectores y matrices. CONSTRUCCIN Y MANIPULACIN DE LISTAS Para definir una lista, se deben indicar sus elementos entre llaves y separadas por comas. Los elementos no son necesariamente del mismo tipo, de modo que una lista puede estar formada por nmeros, fracciones, otras listas, etc. Otras formas de construir listas consisten en utilizar los comandos. -Table -Array Con las listas se pueden efectuar las operaciones aritmticas bsicas, ser utilizados como argumentos de las funciones elementales y efectuar una serie de manipulaciones.

COMANDOS Sort[lista]: ordena la lista Dimensions[matriz]: devuelve las dimensiones de una matriz Reverse[lista]: invierte la lista Length[lista]: calcula el nmero de elementos de la lista Rest[lista]: devuelve la lista sin su primer elemento Drop[lista,nelemento]: elimina un nmero de elementos, a partir del comienzo Take[lista,cant elementos]: se obtiene la lista formada por los primeros elementos de la lista Append[lista, elemento nuevo]: sirve para aadir nuevos elementos al final de la lista. Prepend[lista, elemento nuevo]: sirve para aadir nuevos elementos al inicio de la lista. Ejemplo 8: Definir una lista denominada l, con los valores; 5, 2, 6, 1, 9, 0, 4. l={5,2,6,1,9,0,4} {5,2,6,1,9,0,4} Ejemplo 9: Aplicar el comando Sort a la lista l. Sort[l] {0,1,2,4,5,6,9} Ejemplo 10: Aplicar el comando Reverse a la lista l. Reverse[l] {4,0,9,1,6,2,5} Ejemplo 11: Aplicar el comando Length a la lista l. Length[l] 7

Lic. Matoso Elizabet Alejandra

12

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 12: Aplicar el comando Rest a la lista l. Rest[l] {2,6,1,9,0,4} Ejemplo 13: Aplicar el comando Drop a la lista l. Drop[l,1] {2,6,1,9,0,4} Ejemplo 14: Aplicar el comando Take a la lista l. Take[l,2] {5,2} Ejemplo 15: Aplicar el comando Append a la lista l. Append[l,11] {5,2,6,1,9,0,4,11} Ejemplo 16: Aplicar el comando Prepend a la lista l. Prepend[l,8] {8,5,2,6,1,9,0,4} Count[lista,suceso]: evala cuantas veces tiene lugar suceso en la lista. Position[lista,suceso]: evala las posiciones en las que tiene lugar suceso en lista. Insert[lista,elemento,{i,j,}]: inserta en la posesin {i,j,} de lista elemento. Delete[lista,{i,j,}]: elimina de la lista el elemento de la posicin {i,j,}. Flatten[lista]: convierte una matriz o una lista con sublistas en una lista nica o vector. Partition[lista,nelementos,paso]: agrupa elementos de una lista en grupos de tamao nelementos y avanzando paso. Si se omite paso, se avanza n elemento. ReplacePart[lista, elemento nuevo, {i,j,}]: reemplaza el elemento {i,j,} de lista por elemento nuevo. Join[lista1,lista2,listan]: crea una nueva lista concatenando los elementos de lista1, lista2, , listan. Union[lista1,lista2,listan]: crea una nueva lista realizando una unin conjuntista de los elementos de lista1, lista2, , listan. Intersection[lista1,lista2,listan]: crea una nueva lista realizando una interseccin conjuntista de los elementos de lista1, lista2, , listan. Plus@@lista: suma los elementos de lista. Times@@lista: multiplica los elementos de lista. Ejemplo 17: Definir las listas; h, p y r, con los siguientes elementos; h={{2,8,-5},{a,b},c} p={2,4,-1,0,3} r={{a,b},c,d} {{2,8,-5},{a,b},c} {2,4,-1,0,3} {{a,b},c,d}

Lic. Matoso Elizabet Alejandra

13

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 18: Aplicar el comando Count a la lista h. Count[h,c] 1 Ejemplo 19: Aplicar el comando Position a la lista r. Position[r,{a,b}] {{1}} Ejemplo 20: Aplicar el comando Insert a la lista r. Insert[r,d,1] {d,{a,b},c,d} Ejemplo 21: Aplicar el comando Delete a la lista p. Delete[p,3] {2,4,0,3} Ejemplo 22: Aplicar el comando ReplacePart a la lista p. ReplacePart[p,27,5] {2,4,-1,0,27} Ejemplo 23: Aplicar el comando Join a la lista h y r. Join[h,r] {{2,8,-5},{a,b},c,{a,b},c,d} Ejemplo 24: Aplicar el comando Union a la lista h y r. Union[h,r] {c,d,{a,b},{2,8,-5}} Ejemplo 25: Aplicar el comando Intersection a la lista h y r. Intersection[h,r] {c,{a,b}} Ejemplo 26: Aplicar el comando Plus@@ a la lista p. Plus@@p 8 Ejemplo 27: Aplicar el comando Times@@ a la lista p. Times@@p 0 Ejemplo 28: Aplicar el comando Flatten a la lista h. Flatten[h] {2,8,-5,a,b,c} Ejemplo 29: Aplicar el comando Partition a la lista p. Partition[p,2] {{2,4},{-1,0}}

Lic. Matoso Elizabet Alejandra

14

Software Mathematica: Su aplicacin en los Mtodos Numricos

CAPITULO 4: VECTORES Y MATRICES


Para definir un vector se deben escribir los elementos entre llaves y separados por comas. Igualmente, para definir una matriz bastar escribir como un vector de vectores que correspondern a las filas de la matriz. Tambin se puede usar la paleta BasicCalculations/Lists and Matrices. Ejemplo 1: Definir dos vectores; v1 con los valores (1, 2 , 3) y v2 con los valores (2, 6, -3) v1={1,2,3} v2={2,6,-3} {1,2,3} {2,6,-3} OPERACIONES Las operaciones que se pueden realizar son las siguientes: El producto escalar, utilizando el comando Dot o el punto (.) v1.v2 5 Dot[v1,v2] 5 La multiplicacin elemento a elemento v1*v2 {2,12,-9} Para obtener el elemento i-simo de un vector utilizar el comando Part[v,i]. Por ejemplo, para obtener el segundo elemento de v1 se debe hacer: Part[v1,2] 2 Una segunda forma de generar vectores, es a travs de la orden Table[ ], cuya definicin es: Table[expr,{imax}]: genera un vector con imax copias de expr. Table[expr,{i,imax}]: genera un vector variando expr desde i=1 hasta i=imax. Table[expr,{i,imin,imax}]: genera un vector variando expr desde i=imin hasta i=imax. Table[expr,{i,imin,imax,di}]: genera un vector variando desde imin hasta imax con saltos di.

Lic. Matoso Elizabet Alejandra

15

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 2: Construir vectores, utilizando el comando Table. Table[i,{5}] {i,i,i,i,i} Table[n^2,{n,4}] {1,4,9,16} Table[2a,{a,2,6}] {4,6,8,10,12} Table[2^i,{i,1,9,0.5}] {2,2.82843,4.,5.65685,8.,11.3137,16.,22.6274,32.,45.2548, 64.,90.5097,128.,181.019,256.,362.039,512.} Una tercera forma de definir vectores, es mediante el comando Array: Array[a,n]: permite construir un vector simblico de n componentes. Array[g,4] {g[1],g[2],g[3],g[4]} g[1]=2 g[2]=4 g[3]=6 g[4]=8 2 4 6 8

MATRICES Una matriz siempre est delimitada por un par de llaves y, separadas por comas, se escriben las filas agrupadas tambin con llaves. Ejemplo 3: Definir las siguientes matrices; a={{1,2,5},{-2,5,7},{1,0,3}} b={{1,1,1},{6,3,2},{1,-3,0}} {{1,2,5},{-2,5,7},{1,0,3}} {{1,1,1},{6,3,2},{1,-3,0}} Mathematica no muestra el resultado en la forma habitual que se conoce. Para conseguir este formato, se utiliza la orden MatrixForm[matriz].

i 1 2 5y j j 2 5 7 z z j z j z j z 1 0 3{ k

MatrixForm[a]

MatrixForm[b]

i1 1 1y j j6 3 2z z j z j z j z 1 3 0 { k

Lic. Matoso Elizabet Alejandra

16

Software Mathematica: Su aplicacin en los Mtodos Numricos Una matriz tambin se puede definir con el comando Table y Array de la siguiente manera: Table[expresin, { i, imin, imax, incrementoi}, {j, jmin, jmax, incrementoj}, ]: se construye una lista cuyos componentes sern los distintos valores de expresin, para cada uno de los ndices i, j variando entre mnimo y mximo con el incremento especificado en cada paso. Los incrementos y los valores mnimos son optativos, por defecto toman el valor 1. Array[a, {m,n}]: se construye una matriz simblica de m filas y n columnas. Los argumentos han de ser de tipo entero. Posteriormente se puede asignar valores a sus componentes. Ejemplo 4: Definir matrices utilizando el comando Table y Array. Table[x^2+y^2,{x,0,2},{y,2,5}] {{4,9,16,25},{5,10,17,26},{8,13,20,29}} Array[t,{2,3}] {{t[1,1],t[1,2],t[1,3]},{t[2,1],t[2,2],t[2,3]}} t[1,1]=1 t[1,2]=0 t[1,3]=1 1 0 1 OPERACIONES SUMA: Para sumar matrices, si los rdenes lo permiten, se utiliza el signo +. MatrixForm[a]

MatrixForm[b]

i 1 2 5y j j 2 5 7 z z j z j z j z k 1 0 3{ i1 1 1y j j6 3 2z z j z j z j z k 1 3 0 { i2 3 6y j j4 8 9z z j z j z j z 2 3 3 { k

a+b {{2,3,6},{4,8,9},{2,-3,3}} MatrixForm[a+b]

Lic. Matoso Elizabet Alejandra

17

Software Mathematica: Su aplicacin en los Mtodos Numricos PRODUCTO: El producto se realiza utilizando el punto y para obtener un formato matricial, utilizar MatrixForm: a.b {{18,-8,5},{35,-8,8},{4,-8,1}} MatrixForm[a.b]

i 18 8 5 y j j 35 8 8 z z j z j z j z k 4 8 1 {

Producto entre una Matriz y un vector: MatrixForm[a.v1]

i 20 y j j 29 z z j z j z j z k 10 {

Producto entre una matriz y un escalar: MatrixForm[2a]

i 2 4 10 y j j 4 10 14 z z j z j z j z 2 0 6{ k

Los siguientes comandos son los que permiten extraer elementos, filas, columnas y submatrices de una matriz: Para extraer el elemento (i,j)-simo de una matriz A, escribimos

Para extraer la fila i-sima

Para obtener una submatriz de A el comando es:

Para extraer la columna j-sima A[[ All , j ]]

Lic. Matoso Elizabet Alejandra

18

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 5: Definir una matriz A, con los siguientes elementos;

i1 2 3y j j4 5 6z z j z j z j z k1 3 2{
Ejemplo 6: Obtener el elemento (2,3) de la matriz A definida anteriormente. A[[2,3]] 6 Ejemplo 7: Obtener la segunda fila de la matriz A. A[[2]] {4,5,6} Ejemplo 8: Construir una submatriz de A que contenga las filas (1,2) y las columnas (2,3). A[[{1,2},{2,3}]] {{2,3},{5,6}} Ejemplo 9: Obtener la tercera columna de la matriz A y mostrar el resultado en forma convencional. A[[All,3]] {3,6,9} MatrixForm[%]

i3y j z j6z j z j z j z k9{

Tabla de alguna de las operaciones matriciales ms usuales: Operacin Inversa Determinante Valores propios Vectores propios Polinomio caracterstico Rango Traspuesta Traza Matriz Diagonal Matriz Identidad Notacin en mathematica Inverse[a] Det[a] Eigenvalues[a] Eigenvectors[a] CharacteristicPolynomial[a,x] MatrixRank[a] Transpose[a] Tr[a] DiagonalMatrix[{a11,a22,}] IdentityMatrix[n]

Lic. Matoso Elizabet Alejandra

19

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 10: Definir una matriz cuadrada mat mat={{1,3,4},{-1,0,1},{1,3,-1}} {{1,3,4},{-1,0,1},{1,3,-1}} MatrixForm[%]

i 1 3 4 y j j 1 0 1 z z j z j z j z k 1 3 1 {

Ejemplo 11: Calcular el determinante de mat para comprobar que no sea nulo, y poder calcular la inversa. Det[mat] -15 Ejemplo 12: Calcular la matriz inversa de mat. inv=Inverse[mat]

::

1 1 1 1 1 1 , 1, >, :0, , >, : , 0, >> 5 5 3 3 5 5

Ejemplo 13: Realizar el producto matricial, para comprobar que inv es la inversa de mat, ya que el resultado obtenido es la matriz identidad. iden=mat.inv {{1,0,0},{0,1,0},{0,0,1}} MatrixForm[%]

i1 0 0y j j0 1 0z z j z j z j z 0 0 1{ k

Ejemplo 14: Definir la matriz g. g={{1,2,7},{1,3,5}} {{1,2,7},{1,3,5}} MatrixForm[g]

1 2 7 N 1 3 5

Ejemplo 15: Calcular la traspuesta de g.

i1 1y j j2 3z z j z j z j z k7 5{

MatrixForm[Transpose[g]]

Lic. Matoso Elizabet Alejandra

20

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 16: Definir la matriz h. h={{0,1,5,9},{2,1,6,8},{0,0,0,3},{0,0,1,-2}} {{0,1,5,9},{2,1,6,8},{0,0,0,3},{0,0,1,-2}} MatrixForm[%]

i0 j j2 j j j j0 j j j k0

1 1 0 0

5 6 0 1

9 y z z 8 z z z z 3 z z z 2 {

Ejemplo 17: Calcular los autovalores de la matriz h. valores=Eigenvalues[h] {-3,2,-1,1} MatrixForm[%]

i 3 y j j 2 z z j z j z j j 1 z z j z j z j z k 1 {

Ejemplo 18: Calcular los autovectores de la matriz h. vectores=Eigenvectors[h] {{-7,1,-5,5},{1,2,0,0},{-1,1,0,0},{-13,-37,3,1}} MatrixForm[%]

1 5 i 7 j j 1 j 2 0 j j j 1 j 1 0 j j k 13 37 3

5y z z 0z z z z 0z z z 1{

Lic. Matoso Elizabet Alejandra

21

Software Mathematica: Su aplicacin en los Mtodos Numricos

TEMA 5: RESOLUCIN DE ECUACIONES Y SISTEMAS DE ECUACIONES


Mathematica puede resolver los tipos ms comunes de ecuaciones y sistemas de ecuaciones, tanto de forma exacta como aproximada. Cuando se resuelve un polinomio de grado alto, y no es posible utilizar las operaciones elementales, se requiere de comandos como NSolve, para obtener una solucin aproximada. En cambio si el polinomio es de grado bajo, se utilizan comandos como Solve, que obtienen la solucin exacta expresada mediante radicales.

COMANDO LINEARSOLVE El comando LinearSolve, devuelve un vector, el cual cumplir la ecuacin matricial matriz. x = b, siendo matriz una matriz y b un vector. La sintaxis del comando es: LinearSolve[matriz , b] Ejemplo 1: Ingresar el siguiente sistema de ecuaciones y calcular con el comando LinearSolve. x + 2y z =1 2x + 3 y + z = 1 2 y + z = 2
Su resolucin mediante Mathematica es:

mat={{1,2,-1},{2,3,1},{0,-2,1}}; vec={1,1,-2}; LinearSolve [mat,vec] {-1,1,0}


Se realiz la definicin de una matriz de coeficientes y un vector de trminos independientes para un sistema de ecuaciones lineales. Como respuesta se obtuvo la solucin del sistema planteado. En el caso de los sistemas indeterminados, este comando solo calcula una de las soluciones.

COMANDO SOLVE Cuando la funcin sea polinmica o tenga una forma sencilla de expresin se utiliza el comando Solve. Devuelve el valor exacto de las races de la funcin. Resuelve sistemas de grado bajo, pero con soluciones exactas. El problema de usar este comando, es que solo permite resolver ecuaciones y sistemas de ecuaciones para los que es posible aplicar un mtodo algebraico sencillo, es decir que se puedan resolver mediante operaciones elementales. La sintaxis del comando es: Solve[ecuacion, var iables ]

Lic. Matoso Elizabet Alejandra

22

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 2: Ingresar el siguiente sistema y calcular utilizando el comando Solve. x + y =1 y 2z = 1
x + 2z = 0 Su resolucin mediante Mathematica es:

Solve[{x+y 1,y-2z 1,x+2z 0},{x,y,z}] {{x-2 z,y1+2 z}} %/.z2 {{x-4.,y5.}}


En este caso se observa, que se trata de un sistema compatible indeterminado y por lo tanto la solucin obtenida es en funcin de Z. Sobre la solucin de la ecuacin se puede aplicar cualquier transformacin. Se considera alguna de las incgnitas como un parmetro y se obtiene resultados particulares para ciertos valores del mismo. En el ejemplo, se obtienen las soluciones de la ecuacin con z=2. El operador %: hace referencia a la ltima salida. El operador /. : indica que sobre la expresin considerada se aplica la regla z > 2 . NOTA: El doble signo igual (==) entre la funcin y el valor cero indica que es una ecuacin. La x que figura despus de la coma identifica la variable o incgnita a despejar.

COMANDO FINDROOT El comando FindRoot, se utiliza en el caso de que la funcin sea ms compleja, se pueden calcular aproximaciones de las races utilizando mtodos numricos para su resolucin. Como este comando usa mtodos aproximados iterativos, es posible que si se ingresan valores muy alejados para los puntos iniciales, Mathematica no pueda encontrar una solucin. Los valores que comienzan para las variables de FindRoot son elegidos tpicamente usando estimaciones de las soluciones previstas, por ensayo y error, o haciendo grficos. Es decir, es conveniente hacer primero una grfica de la funcin para ver dnde se anula la funcin.
La sintaxis del comando es: FindRoot[ecuacion, {x, x0 }] : que utiliza el Mtodo de Newton (o mtodo de la tangente) tomando como punto inicial x = x0 FindRoot[ecuacion, {x, x0 }, { y, y0 }] : que utiliza una variante del Mtodo de la secante tomando como puntos iniciales x = x0 , y = y0 .

Lic. Matoso Elizabet Alejandra

23

Software Mathematica: Su aplicacin en los Mtodos Numricos * El primer argumento, es la ecuacin. * El segundo argumento, es una lista {x, x0 } que indica la variable y el valor inicial. * El resultado, es una lista que contiene una regla que muestra el valor de la variable. Ejemplo 3: Graficar la siguiente ecuacin en el intervalo [0; 2], para determinar un punto de inicio y calcular todas las races con el comando FindRoot. e x 3x
Su resolucin mediante Mathematica es: Plot[Exp[x]-3 x,{x,0,2}]
1.25 1 0.75 0.5 0.25 0.5 -0.25 1 1.5 2

FindRoot[Exp[x]-3x 0,{x,0}] {x0.619061} FindRoot[Exp[x]-3x 0,{x,1.5}] {x1.51213} COMANDO NSOLVE El comando NSolve, calcula todas las soluciones de una ecuacin o de un sistema de ecuaciones polinmicas y no polinmicas. Los valores obtenidos, son races aproximadas y puede aplicarse para cualquier grado.
La sintaxis del comando es: NSolve[ecuacion, var iables ] Ejemplo 4: Resolver el siguiente sistema de ecuaciones, utilizando el comando NSolve: x2 + y 2 = 1

y = x2 Su resolucin mediante Mathematica es:


NSolve[{x^2+y^2 1,y x^2},{x,y}] {{x0. +1.27202 ,y-1.61803}, {x0. -1.27202 ,y-1.61803}, {x-0.786151,y0.618034}, {x0.786151,y0.618034}}

Lic. Matoso Elizabet Alejandra

24

Software Mathematica: Su aplicacin en los Mtodos Numricos

CAPITULO 6: REPRESENTACION GRAFICA


Una de las grandes virtudes de Mathematica es el tratamiento de los grficos para funciones de una y dos variables. Es posible dibujar a la vez varias funciones y personalizar el resultado en cuanto a escalas, color, etc. Tambin se pueden representar funciones en coordenadas paramtricas e incluso se pueden realizar animaciones. COMANDO PLOT Para representar grficamente una funcin de una variable, el comando que se utiliza es Plot. La sintaxis es la siguiente: Plot[ funcion, {x, xmin , xmax }, opciones ] x : es la variable independiente. xmin : Extremo inferior del intervalo del dominio de la funcin que se desea representar. xmax : Extremo superior del intervalo del dominio de la funcin que se desea representar. NOTA: Mathematica decide automticamente cual es la escala ms apropiada para que la grfica se vea lo mejor posible. Ejemplo 1: Sea la funcin f ( x) = x 2 + 5 x , representar grficamente con el comando Plot en el intervalo [-7, 7]. Su representacin mediante Mathematica es: Plot[x^2+5x,{x,-7,7}]
50 40 30 20 10

-6

-4

-2

Graphics

Lic. Matoso Elizabet Alejandra

25

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 2: Representar grficamente la funcin g ( x) = x 3 7 x 2 + 6 x + 4 en el intervalo [-10, 14] Su representacin mediante Mathematica es: g[x_]:=x^3-7^2+6x+4; Plot[g[x],{x,-10,14}]
2000

1000

-10

-5 -1000

10

Graphics NOTA: Se puede escribir directamente la funcin a representar dentro del comando o definir primero la funcin y llamar la misma dentro de la sintaxis de Plot. Para evitar que aparezca el mensaje Graphics- en la salida, colocar un punto y coma al final del comando Plot. Existe la posibilidad de dibujar varias grficas a la vez, con la siguiente sintaxis: Plot[{ f 1, f 2,..., fn}, {x, xmin , xmax }, opciones ] Esta sintaxis, dibuja las n funciones conjuntamente para valores de x comprendidos entre xmin y xmax . Ejemplo 3: Representar en una misma grafica las funciones f y g. Su representacin mediante Mathematica es f[x_]:=x^2+5x; Plot[{f[x],g[x]},{x,-10,14}];
400

200

-10

-5 -200

10

Lic. Matoso Elizabet Alejandra

26

Software Mathematica: Su aplicacin en los Mtodos Numricos OPCIONES DE PLOT Cuando Mathematica realiza un grfico, se debe elegir cmo realizar la representacin grfica (escalas, ejes, origen, color, grosor de lnea, etc.). En muchas ocasiones, Mathematica probablemente har una buena eleccin. No obstante, si se desea cambiar algunas de estas opciones se pueden utilizar distintas rdenes. Como ltimo argumento del comando, se puede incluir una secuencia de rdenes del tipo nombre->valor, para especificar el valor de las opciones. A cada opcin que no asignemos un valor explcito, Mathematica le asignar un valor por defecto. AspectRatio > nmero: Determina la proporcin entre los ejes de abscisas y ordenadas. Si especificamos el valor 1 los dos ejes tendrn el mismo tamao. Ejemplo 4: Agregar al grafico de la funcin f la opcin AspectRatio. Plot[f[x],{x,0-7,7},AspectRatio1.5]

50 40 30 20 10 -6 -4 -2 2 4 6

PlotRange > {nmero1, nmero2}: Cuando Mathematica realiza un grfico, fija una escalas para x e y con el objetivo de incluir solo las partes ms interesantes de la grfica. Si la funcin crece rpidamente, o tiene singularidades, las partes de la grfica demasiado largas son cortadas. Con la orden PlotRange se controla el rango de variacin para la x y la y. Los posibles valores para esta opcin son: * Automatic: grafica una gran parte de la grfica incluyendo la parte " ms interesante que aparecera por defecto. * All: grafica todos los puntos (si es posible). * { ymin , ymax } : grafica un rango especfico para los valores de y. * {xrange , yrange } : grafica un rango especfico para los valores de x e y.

Lic. Matoso Elizabet Alejandra

27

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 5: Agregar al grafico de la funcin f la opcin PlotRange. Plot[f[x],{x,0-7,7},PlotRange{-20,20}] 20

15 10 5 -6 -4 -2 -5 -10 -15 -20


PlotStyle > {opciones}: indica el estilo de la lnea o puntos de la grfica, como ser color, grosor, brillo, y fondo. Cuando se crea un objeto grfico en Mathematica, normalmente se aade una lista de opciones grficas. En esta lista se puede aadir directivas grficas que especifican cmo se deben reproducir los elementos del grfico. Mathematica dispone de varias opciones grficas. Una de las ms importantes es aqulla que especifica el color de los elementos del grfico. Incluso si el grfico es en blanco y negro, se puede especificar la intensidad de color dentro de la escala de los grises. Tambin se puede utilizar en grficos a color las intensidades del gris. OPCIONES 1. RGBColor[nmero1,nmero2,nmero3]: Permite escoger un color en funcin de la cantidad de rojo (nmero1), verde (nmero2) y azul (nmero3), donde los nmeros pueden tomar cualquier valor entre 0 y 1. Ejemplo 6: Representar las funciones f, g y h utilizando la opcin RGBColor. Plot[{f[x],g[x],h[x]},{x,07,7},PlotStyle{{RGBColor[1,0,0]},{RGBColor[0,1,0]},{RGB Color[0,0,1]}}] 30

20 10 -6 -4 -2 -10 -20 -30


Graphics

Lic. Matoso Elizabet Alejandra

28

Software Mathematica: Su aplicacin en los Mtodos Numricos 2. GrayLevel[ i ]: indica la intensidad del gris, entre 0 (negro) y 1 (blanco). Ejemplo 7: Representar la funcin f utilizando la opcin GrayLevel. Plot[f[x],{x,0-7,7},PlotStyle{GrayLevel[0.14]}] 50
40 30 20 10 -6 -4 -2 Graphics 2 4 6

3. Hue[ h ]: proporciona otra manera de especificar el color usando un nico parmetro. Cuando h vara de 0 a 1, Hue[h] se mueve cclicamente entre el rojo, amarillo, verde, cian, azul, magenta, negro y rojo de nuevo. Ejemplo 8: Representar la funcin f utilizando la opcin Hue. Plot[f[x],{x,0-7,7},PlotStyle{Hue[0.1]}]
50 40 30 20 10 -6 -4 -2 2 4 6

4. Hue[h,s,b]: especifica no solo el tono del color sino la saturacin o contraste y el brillo. Si la saturacin igual a 1 se obtiene un color ms profundo; en cambio si este valor decrece a 0 el color es ms claro. Ejemplo 9: Representar la funcin f utilizando la opcin Hue con tres parmetros. Plot[f[x],{x,0-7,7},PlotStyle{Hue[0,1,1]}]
50 40 30 20 10 -6 -4 -2 2 4 6

Lic. Matoso Elizabet Alejandra

29

Software Mathematica: Su aplicacin en los Mtodos Numricos 5. PointSize[d]: sirve para que todos los puntos del grfico los represente como un crculo de dimetro d. Con PointSize, el dimetro d est medido en proporcin al ancho de todo el grfico. Ejemplo 10: Representar una lista con el comando ListPlot y la opcin PointSize. lista={{1,2},{2,3},{3,5},{4,7}} {{1,2},{2,3},{3,5},{4,7}} ListPlot[lista,PlotStylePointSize[0.15]]
7 6 5 4 3 1.5 2 2.5 3 3.5 4

Mathematica tambin permite la opcin AbsolutePointSize[d], que especifica el dimetro absoluto de los puntos, medidos en unidades fijas. Ejemplo 11: Representar una lista con el comando ListPlot y AbsolutePointSize. ListPlot[lista,PlotStyleAbsolutePointSize[5]]
7 6 5 4 3 1.5 2 2.5 3 3.5 4

la opcin

AxesLabel > {etiqueta ejex, etiqueta ejey}: incluye etiquetas para los ejes x e y. La leyenda debe estar entre comillas. Ejemplo 12: Etiquetar el grafico de la funcin f con la opcin AxesLabel. Plot[f[x],{x,0-7,7},AxesLabel{"eje de las x", "eje de las y"}]
eje de las y 50 40 30 20 10 eje de las x -6 -4 -2 2 4 6

Lic. Matoso Elizabet Alejandra

30

Software Mathematica: Su aplicacin en los Mtodos Numricos Frame > valor: enmarca el grfico segn el valor dado. True, enmarca y False, no enmarca. Ejemplo 13: Enmarcar el grfico con la opcin Frame. Plot[f[x],{x,0-7,7},FrameTrue]
50 40 30 20 10 0 -6 -4 -2 0 2 4 6

GridLines > valor: muestra una malla para cada valor de la regla del marco. El valor Automatic, incluye las lneas para la mayora de las marcas y el valor None, no muestra la malla. Ejemplo 14: Representar el grfico con una malla, utilizar la opcin GridLines. Plot[f[x],{x,0-7,7},GridLinesAutomatic]
50 40 30 20 10

-6

-4

-2

PlotLabel > {etiqueta}: incluye una etiqueta para el grfico, el texto debe ir entre comillas. Ejemplo 15: Etiquetar el grafico con la opcin PlotLabel. Plot[f[x],{x,0-7,7},GridLinesNone,PlotLabel->{"Grfico sin malla"}]
8Gr fico sin malla <

50 40 30 20 10

-6

-4

-2

Lic. Matoso Elizabet Alejandra

31

Software Mathematica: Su aplicacin en los Mtodos Numricos COMANDO LISTPLOT En muchas ocasiones es necesario mostrar grficamente datos obtenidos, por ejemplo, de una experiencia o experimento. Las coordenadas obtenidas pueden no responder a una expresin analtica, pero puede interesarnos ver cmo se disponen esos puntos en una grfica (tambin denominada nube de puntos). Para ello, se debe generar grficas a partir de listas de datos correspondientes a dos variables cuantitativas. Ejemplo 16: Representar una lista con el comando ListPlot y agregar las opciones PointSize y PlotJoined. lista={{1,8},{2,5.5},{3,7},{4,3},{5,8.1},{6,1}} {{1,8},{2,5.5},{3,7},{4,3},{5,8.1},{6,1}} ListPlot[lista,PlotStyle->PointSize[0.02]]
8 7 6 5 4 3 2 2 3 4 5 6

ListPlot[lista,PlotJoinedTrue]
8 7 6 5 4 3 2 2 3 4 5 6

Graphics NOTA: Para mostrar todos los puntos unidos por un segmento, se utiliza la opcin PlotJoined, y el valor True.

Lic. Matoso Elizabet Alejandra

32

Software Mathematica: Su aplicacin en los Mtodos Numricos COMANDO SHOW Existe otra manera de superponer grficas; consiste en asignarle a cada una un nombre y usar el comando Show[ ] como se muestra en el siguiente ejemplo: Ejemplo 17: Definir tres funciones y representarlas en un mismo grfico. f ( x) = cos x g ( x) = senx + 3 h( x) = x 2 + 3 Grafico1=Plot[Cos[x],{x,-Pi,Pi}]; grafico2=Plot[Sin[x],{x,-2Pi,2Pi}]; grafico3=Plot[x^2+3,{x,-Pi,Pi}]; Show[grafico1,grafico2,grafico3]

12 10 8 6 4 2 -6 -4 -2 2 4 6

NOTA: Mathematica primero, hace las grficas individuales y luego la superposicin. Se pueden mostrar los grficos en diferentes posiciones mediante el comando GraphicsArray[ ]. * Grficos en fila. Show[GraphicsArray[{grafico1,grafico2,grafico3}]] 1 1 12 10 0.5 0.5 8 -3-2-1 1 2 3 -6-4-2 2 4 6 6 -0.5 -0.5 -1 -1 -3-2-1 1 2 3

Lic. Matoso Elizabet Alejandra

33

Software Mathematica: Su aplicacin en los Mtodos Numricos * Grficos en columna. Show[GraphicsArray[{{grafico1},{grafico2},{grafico3}}]] 1

0.5 -3 -2 -1 -0.5 -1 1 0.5 -6 -4 -2 -0.5 -1 12 10 8 6 -3 -2 -1 1 2 3 2 4 6 1 2 3

GraphicsArray COMANDO PLOT3D Representa grficamente funciones de dos variables. La principal aplicacin de representacin grfica ser dar una idea aproximada de la variacin de dicha funcin, especialmente til para buscar extremos. La sintaxis es la siguiente: Plot 3D[ funcionx, y{x, xmin , xmax }, { y, ymin , ymax }] Ejemplo 18: Representar la funcin f ( x, y ) = sen( x * y ) con el comando Plot3D. Su resolucin mediante Mathematica es: f[x_,y_]:=Sin[x*y]; Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi}]

1 0.5 0 -0.5 -1 0 -2 0 2 -2

SurfaceGraphics

Lic. Matoso Elizabet Alejandra

34

Software Mathematica: Su aplicacin en los Mtodos Numricos OPCIONES DEL COMANDO PLOT3D Mesh->True/False: Dibuja (True) o no (False) la retcula o malla sobre la que se construye la grfica. Ejemplo 19: Graficar la funcin f utilizando la opcin Mesh. Su resolucin mediante Mathematica es: Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi},MeshFalse]

1 0.5 0 -0.5 -1 0 -2 0 2 -2

Shading->True/False: Colorea (True) o no (False) la malla anterior. Si unimos las opciones Mesh->False y Shading->False, no aparecer grfico alguno. Ejemplo 20: Graficar la funcin f utilizando la opcin Shading. Su resolucin mediante Mathematica es: Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi},ShadingFalse]

1 0.5 0 -0.5 -1 -2 0 2 -2 0

PlotPoints->nmero de puntos: Representa el nmero de puntos que usar Mathematica para dibujar la grfica. Un nmero muy alto producir un grfico ms suave, pero aumentar considerablemente el tiempo empleado por Mathematica para realizarlo.

Lic. Matoso Elizabet Alejandra

35

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 21: Graficar la funcin f utilizando la opcin PlotPoints. Su resolucin mediante Mathematica es: Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi},PlotPoints->5]

1 0.5 0 -0.5 -1 0 -2 0 2 -2

SurfaceGraphics ViewPoint: Establece el punto de vista desde el que se dibujar la grfica. La forma de usar esta opcin ser pegarlo desde una ventana que automatiza el proceso. A dicha ventana se accede a travs del men Input, submen 3D ViewPoint Selector. ViewPoint {1.3, -2.4, 2} {0, -2, 0} {0, 0, 2} {-2, -2, 0} {2, -2, 0} {0, -2, 2} Posicin Visin que da el programa Visin de frente Visin por encima Visin desde la esquina izquierda Visin desde la esquina derecha Visin frontal superior

Ejemplo 22: Mostrar el grafico con el comando ViewPoint utilizando la visin del programa. Su resolucin mediante Mathematica es: Show[grafico,ViewPoint{1.3,-2.4,2}]

1 0.5 0 -0.5 -1 0 -2 0 2 -2

SurfaceGraphics

Lic. Matoso Elizabet Alejandra

36

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 23: Mostrar el grafico con el comando ViewPoint utilizando la visin de frente. Su resolucin mediante Mathematica es: Show[grafico,ViewPoint{0,-2,0}] 1 0.5 -2 0 2 0 -0.5 -1 -2 0 2 SurfaceGraphics Ejemplo 24: Mostrar el grafico con el comando ViewPoint utilizando la visin por encima. Su resolucin mediante Mathematica es: Show[grafico,ViewPoint{0,0,2}]
1 0.5 0 -0.5 -1 2

-2 -2 0 2

SurfaceGraphics Ejemplo 25: Mostrar el grafico con el comando ViewPoint utilizando la visin desde la esquina izquierda. Su resolucin mediante Mathematica es: Show[grafico,ViewPoint{-2,-2,0}] 1 0.5 0 -0.5 -1 2 2 0 0 -2 -2 SurfaceGraphics

Lic. Matoso Elizabet Alejandra

37

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 26: Mostrar el grafico con el comando ViewPoint utilizando la visin desde la esquina derecha. Su resolucin mediante Mathematica es: Show[grafico,ViewPoint{2,-2,0}] 1 0.5 0 -0.5 -1 -2 2 0 0 2 -2 SurfaceGraphics Ejemplo 27: Mostrar el grafico con el comando ViewPoint utilizando la visin frontal superior. Su resolucin mediante Mathematica es: Show[grafico,ViewPoint{0,-2,2}]
2 0 -2 1 0.5 0 -0.5 -1 -2 0 2

SurfaceGraphics

Lic. Matoso Elizabet Alejandra

38

Software Mathematica: Su aplicacin en los Mtodos Numricos CAPITULO 7: DERIVACIN E INTEGRACIN Las formulas de derivacin numrica, son especialmente interesantes a la hora de desarrollar algoritmos para la resolucin de ecuaciones diferenciales ordinarias y en derivadas parciales.

DERIVACIN Para calcular la derivada de una funcin, se debe utilizar los smbolos de derivadas parciales que aparecen en la paleta BasicInput o ingresar alguna de las siguientes rdenes segn sea el caso:
D[ f [ x], x] D[ f [ x],{x, n}] D[ f [ x1 , x2 ],{x1 , x2 }] Derivada (o derivada parcial) de f con respecto a x. Derivada parcial n-sima de f con respecto a x. Derivada parcial de f con respecto a x1, x2,,xn

NOTA: La ltima sintaxis es vlida para funciones de varias variables. Ejemplo 1: Definir una funcin f y derivar utilizando la orden D.

Clear [ f ] f [ x _] := x 2 3 x + 4 D[ f [ x], x ] 3 + 2x Ejemplo 2: Derivar la funcin anterior utilizando el smbolo f'[x]. f '[ x] - 3 + 2x

INTEGRACIN El clculo integral, tiene una importancia en todas las disciplinas cientficastcnicas. Son innumerables los problemas cuya descripcin y resolucin pasa por el calculo de una integral. El comando Integrate de Mathematica, es el encargado del clculo tanto de primitivas como de integrales definidas, propias e impropias, e una o varias variables. La sintaxis es la misma, pero en cada caso varia el nmero de campos que se debe introducir en el comando.

Lic. Matoso Elizabet Alejandra

39

Software Mathematica: Su aplicacin en los Mtodos Numricos INTEGRALES INDEFINIDAS E INTEGRALES DEFINIDAS Mathematica permite calcular integrales mediante las instrucciones: El comando Integrate, calcula la integral indefinida de la expresin dada con respecto a la variable indicada. La sintaxis es:
Integrate[exp resion, var iable] El comando Integrate, calcula la integral definida de la expresin dada con respecto a la variable indicada en el intervalo [a,b]. la sintaxis es: Integrate[exp resion, {var iable, a, b}] Ejemplo 3: Calcular la integral de la funcin f(x)= x 2 + 3 x 1 , utilizando el comando Integrate y el smbolo de integracin. Su resolucin en Mathematica es: Integrate[x^2+3x-1,x] 3 x2 x3

x +

(x^2+3x-1) x

3 x2 x3 x + + 2 3
INTEGRALES IMPROPIAS Las denominadas integrales impropias, son una clase especial de integrales definidas (integrales de Riemann) en las que el intervalo de integracin o la funcin en el integrando o ambos presentan ciertas particularidades. La integral es impropia si se presenta uno de los siguientes casos:

a = o b = , o, a = y b =

f (x) no es acotada en alguno de los puntos de [a, b] , dichos puntos se llaman singularidades de f (x) . Mathematica, calcula directamente integrales impropias en el caso de que se trate de integrales convergentes y nos presenta un mensaje en aquellos casos en los que la integral no sea convergente.

Lic. Matoso Elizabet Alejandra

40

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 4: Calcular las siguientes integrales impropias A) e x en el intervalo [0 , ] 1 B) en el intervalo [0 , 1] 1 x2 1 C) en el intervalo [0 , 2] x2
Su resolucin en Mathematica es:

Ejemplo 4 - A Integrate[Exp[-x] ,{x,0,}] 1 Ejemplo 4 - B

1 IntegrateA !!!!!!!!!!! , 8x, 0, 1<E 1 x2

2
Ejemplo 4 - C

IntegrateA

1 x 2

, 8x, 0, 2<E
on 80, 2<. More

Integrate ::idiv : 1 Integral of does not converge 2 + x

2 0

1 2 + x

VALOR APROXIMADO DE UNA INTEGRAL El programa Mathematica tiene, sus limitaciones a la hora de calcular ciertas integrales. Cuando no puede dar un valor exacto de una integral, proporciona un resultado expresado en trminos de ciertas funciones especiales que el programa tiene definidas. En esta situacin se puede obtener un valor aproximado de la integral.
Ejemplo 5: calcular la integral

e x

en [-1, 1]

Integrate[Exp[-x^2],{x,-1,1}]

!!!! Erf@1D

Lic. Matoso Elizabet Alejandra

41

Software Mathematica: Su aplicacin en los Mtodos Numricos En este ejemplo, Mathematica devuelve el valor exacto de la integral en trminos de la funcin Erf (que se denomina funcin error). Para obtener un valor aproximado se utiliza el comando N. N[%] 1.49365 N[Integrate[Exp[-x^2],{x,-1,1}]] 1.49365 COMANDO NINTEGRATE El comando NIntegrate, calcula el valor aproximado de la integral de la expresin dada con respecto a la variable indicada en el intervalo [a, b ]. La sintaxis es: NIntegrate[exp resion, {var iable, a, b}]
Ejemplo 6: Calcular la integral del ejemplo 5 con el comando NIntegrate

N[Integrate[Exp[-x^2],{x,-1,1}]] 1.49365
Aunque el resultado obtenido sea el mismo, se debe indicar que la forma de operar es distinta entre N y NIntegrate. N: fuerza al programa a calcular el valor exacto de la integral y a continuacin muestra un valor aproximado. NIntegrate: aplica frmulas de integracin numrica para calcular directamente un valor aproximado de la integral. NOTA: las frmulas de integracin numrica que utiliza Mathematica al aplicar la instruccin NIntegrate funcionan bien cuando se trata de calcular valores aproximados de integrales definidas en intervalos acotados. Por el contrario, si se aplica para calcular integrales impropias definidas en intervalos no acotados. Ejemplo 7: resolver la integral impropia con N y NIntegrate sen( x) en [1, ] x Su resolucin en Mathematica es:
Integrate[(Sin[x]/x),{x,1,}]

1 H 2 SinIntegral@1DL 2
N[%] 0.624713 NIntegrate[(Sin[x]/x),{x,1,}]

NIntegrate ::ncvb : NIntegrate failed to converge to prescribed after 7 recursive bisections in x near x = 1.9939919252733317`*^19 . More
1.39383

accuracy

Lic. Matoso Elizabet Alejandra

42

Software Mathematica: Su aplicacin en los Mtodos Numricos En la ltima expresin, el programa avisa que el resultado mostrado no es demasiado fiable y es distinto al resultado real.

APLICACINES DE LA INTEGRAL Calculo de rea de recintos planos Mathematica permite visualizar el rea limitada por dos curvas y=f(x) e y=g(x) en el intervalo [a, b], mediante la instruccin FilledPlot, cuya sintaxis es la siguiente:
FilledPlot[{ f [ x], g[x]}, {x, a, b}] Visualiza el rea limitada por las curvas y=f(x) e y=g(x) en el intervalo [a, b]. FilledPlot[ f [ x], {x, a, b}] Visualiza el rea limitada por las curvas y=f(x) y el eje X en el intervalo [a, b]. Para utilizar la instruccin FilledPlot hay que cargar el paquete Graphics`FilledPlot` la sintaxis es la siguiente: << Graphics`FilledPlot` Ejemplo 8: Calcular el rea limitada por la parbola y=x2-3x y el eje X en el intervalo [-1, 1]. El rea viene dada por:

A = x 2 3x dx
1

<< Graphics`FilledPlot` f[x_]:=x^2-3x FilledPlot[f[x],{x,-1,4}]


4 3 2 1

-1 -1 -2

Solve[f[x] 0] {{x0},{x3}}

AbsA f@xD xE + AbsA f@xD xE + AbsA f@xD xE


0 3 4

area1 = Abs@f@xDD x
4

49 6

49 6

Lic. Matoso Elizabet Alejandra

43

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 9: Calcular el rea limitadas por las parbolas y = x 2 2 x e y = 2 x x 2 en el intervalo [-1, 3]. f[x_]:=x^2-2x g[x_]:=2x-x^2 FilledPlot[{f[x],g[x]},{x,-1,3}]
3 2 1

-1 -1 -2 -3

Graphics Solve[f[x] 0] {{x0},{x2}} 0 2 a = AbsA Hf@xD g@xDL xE + AbsA Hf@xD g@xDL xE +


1

AbsA Hf@xD g@xDL xE


3 2

area = Abs@f@xD g@xDD x


3
1

8 Ejemplo 10: Calcular la longitud del arco de curva y=sen x en el intervalo [0,2 ] . Longitud de un arco de curva: si f es una funcin en el intervalo [a, b], entonces la longitud del arco de curva y=f(x) en el intervalo [a, b] viene dada por:
b

L = 1 + ( f ' ( x)) 2 dx
a

f[x_]:=Sin[x];Plot[Sin[x],{x,0,2Pi}]
1

0.5

1 -0.5

-1

2 !!!!!!!!!!!!!!!!!!!!!!!!!! !

!!!!

1 + Hf'@xDL ^2 x
1 F 2

2 EllipticEB

N[%] 7.6404

Lic. Matoso Elizabet Alejandra

44

Software Mathematica: Su aplicacin en los Mtodos Numricos CAPITULO 8: CONCEPTOS DE PROGRAMACIN Muchos mtodos numricos se basan en la iteracin o repeticin de unos determinados clculos, con el objeto de aproximarse a la solucin de un problema que no se pede resolver de forma exacta. Tambin es necesario, imponer condiciones a dichos clculos, como criterios de parada, distincin de posibles casos en funcin de los cuales se realizan las diferentes operaciones. Por ello, se debe conocer algunas formas de utilizar estas iteraciones o condiciones, que son muy comunes en los distintos lenguajes de programacin. LISTAS Una lista es una cadena de expresiones de la forma: {expresin 1, expresin 2,, expresin n} Son de gran utilidad en los programas como medio de almacenamiento de datos. VARIABLES Son los elementos fundamentales de la programacin. Por medio de ellos, se asignan y cambian los valores que intervienen en los programas y se almacenan datos. Los lenguajes de programacin, tienen definidos ciertos tipos generales de variables, en las que han de encuadrarse cada una de las variables que integran un programa. En general Mathematica reconoce como variable toda expresin que no sea un nmero, una palabra reservada del lenguaje o un comando. Mathematica incorpora unos comandos especiales para simplificar el proceso de asignacin en algunos casos especficos. Cuando se desee que una variable cambie su contenido en una unidad, se podr utilizar el operador incremento ++ el operador decremento - - Existen dos opciones al utilizar estos operadores: Utilizarlos como pre-incrementales: la variable cambia su contenido antes de ser utilizada. Utilizarlos como post-incrementales: la variable cambia su contenido despus de ser utilizada. X- X ++ --x ++x

Lic. Matoso Elizabet Alejandra

45

Software Mathematica: Su aplicacin en los Mtodos Numricos Ejemplo 1: Sumar 2 con la variable x, pre-incrementar y post-incrementar la variable en distintas posiciones. x=1;Print[2+x++];Print[x]; 3 2 x=1;Print[2+ ++x];Print[x]; 4 2 x=2;Print[2+ x--];Print[x]; 4 1 x=2;Print[2+ --x];Print[x]; 3 1 OPERADORES BASICOS ! no && y || o Tabla 1: Funciones lgicas == != <= < >= > Igual No igual Menor o igual Menor Mayor o igual Mayor

+var --var Varr++ Var-Var+=d Var-=d Var*=d Var/=d

Tabla 2: Signos de igualdad y desigualdad Var aumenta en 1 y devuelve el nevo valor Var disminuye en 1 y devuelve el nuevo valor Devuelve var, y luego aumenta en 1 Devuelve var, y luego disminuye en 1 Var aumenta en d y devuelve el nuevo valor Var disminuye en d y devuelve el nuevo valor Multiplica var por d y devuelve el nuevo valor Divide por d y devuelve el nuevo valor Tabla 3: Smbolos para modificar valores

Lic. Matoso Elizabet Alejandra

46

Software Mathematica: Su aplicacin en los Mtodos Numricos BUCLES Un bucle es un proceso repetitivo que se realiza un cierto nmero de veces. Mathematica dispone de una gran cantidad de posibilidades que abarcan distintas situaciones que puedan plantearse. DO WHILE FOR 1. DO Sintaxis 1:
Do[exp resion, {n}] Evala n veces la expresin. Expresin: puede ser un solo comando, o una cadena de comandos, que se unen con el operador ;. Cuando se evala una expresin que contiene el operador ;, se evala cada uno de los comandos que forman la cadena, pero slo se muestran en pantalla el resultado del ltimo, as en la sintaxis anterior, la expresin no se limita a un solo comando sino que puede tener la complejidad y la cantidad de ellos que sea requerida. Sintaxis 2: Do[exp resion, {i, imin , imax , di}] Evala repetidamente la expresin para cada uno de los valores de i comenzando por imin hasta imax incrementndose sucesivamente en el valor de di . NOTA: en este comando pueden no especificarse las opciones di o imin , en cuyo caso se toma por defecto el valor 1. Si no se especifica el valor inicial, este toma el valor 1. Ejemplo 2: Usar la variable n para acumular una suma, utilizar el bucle Do, para repetir 5 veces. n=1; Do[n+=1, {5}]; Print ["n = ",n]; n= 6 Ejemplo 3: Calcular y mostrar el cuadrado, de los 4 primeros nmeros naturales iniciadas en 1, generar el bucle con Do.

Do APrint An2E, 8n, 4<E;


1 4 9 16

Lic. Matoso Elizabet Alejandra

47

Software Mathematica: Su aplicacin en los Mtodos Numricos 2. WHILE Es un comando para repetir procesos controlados por una cierta condicin. Sintaxis: While[condicion, exp resion] Evala expresin mientras la condicin es cierta.
Ejemplo 4: Ejecutar un bucle While, mientras un acumulador denominado suma sea menor o igual al valor 100, el acumulador se debe construir con el cubo de una serie de valores, que inician en 1 y se incrementan con pasos 1. Mostrar los valores del acumulador en cada iteracin.
n = 1; suma = 0; While Asuma < 100, suma += n3; n++; Print@"valor de n: ", n, " ", "suma= ", sumaDE

valor valor valor valor

de de de de

n: n: n: n:

2 3 4 5

suma= suma= suma= suma=

1 9 36 100

3. COMANDO FOR Permite programar tareas, en las que se necesita la repeticin de un cierto proceso, con la evaluacin paralela de ciertos procesos de control hasta que se verifique una condicin determinada. La sintaxis de la orden es la siguiente:
For[exp resioninicial , condicion, incremento, exp resion] exp resioninicial : Condicin de comienzo del bucle. condicion : Es el momento de parada, para detener el proceso. incremento : Determinar el aumento de la condicin inicial. exp resion : Operacin que se debe realizar en cada paso; la expresin puede estar compuesta de varias sentencias separadas mediante punto y coma. Ejemplo 5: Realizar un bucle con For, con la expresin inicial de i igual a 1, condicin de parada cuando i sea menor o igual a 5, y realizar incremento del paso igual 2, para resolver la expresin i^3.
ForAi = 1, i 5, i += 2, PrintA"Valor nuevo de i: ", i, " ", i3EE

Valor nuevo de i: Valor nuevo de i: Valor nuevo de i:

1 3 5

----

1 27 125

Lic. Matoso Elizabet Alejandra

48

Software Mathematica: Su aplicacin en los Mtodos Numricos FUNCIONES CONDICIONALES: SENTENCIA IF Esta sentencia comprueba si se verifica una condicin, despus, si la condicin es verdadera Mathematica ejecutar una expresin1, y si es falsa ejecutar otra expresin2. Su sintaxis es la siguiente: If [condicion, exp resion1 , exp resion2 ] La expresiones 1 y 2 pueden estar formadas por varias rdenes separadas por punto y coma. Cuando se habla de condicin, se est hablando de una expresin booleana, es decir que puede evaluarse como cierta o coma falsa. Ejemplo 6: Ingresar una lista de tres elementos, sea m con valores 1,2,3 y verificar que el primer elemento sea mayor o igual que la suma de los dos elementos restantes. m={1,2,3}; If[Part[m,1]Part[m,2]+Part[m,3],Print["se cumple la condicion, el valor es: ",Part[m,1]],Print["no cumple la condicion, el valor es: ",Part[m,1]] ] no cumple la condicion, el valor es: 1

Ejemplo 7: Ingresar una lista de tres elementos, sea m con valores 6,2,3 y verificar que el primer elemento sea mayor o igual que la suma de los dos elementos restantes. m={6,2,3}; If[Part[m,1]Part[m,2]+Part[m,3],Print["se cumple la condicion, el valor es: ",Part[m,1]],Print["no cumple la condicion, el valor es:",Part[m,1]] ] se cumple la condicion, el valor es: 6

Lic. Matoso Elizabet Alejandra

49

Software Mathematica: Su aplicacin en los Mtodos Numricos ORDEN BREAK[] La finalidad de esta orden es, interrumpir un bucle en el momento que se ejecuta y no terminar todos los pasos que faltan hasta la condicin final del bucle. Ejemplo 8: Dentro de un bucle For, evaluar si el logaritmo hallado de un valor i es mayor que 2, en tal caso parar la iteracin con la orden Break, en caso contrario seguir calculando los logaritmos. For[i=1,i<=30,i=i+1, If[N[Log[i]]<=2,Print[N[Log[i]]], Print["El logaritmo de ", i, " es mayor que 2"]; Break[] ]] 0. 0.693147 1.09861 1.38629 1.60944 1.79176 1.94591 El logaritmo de 8 es mayor que 2 COMANDO WHICH Controla el programa a travs de varias condiciones. Su sintaxis es la siguiente: Which[condicion1 , exp resion1 , exp resion2 ,........, exp resionn ] Evala consecutivamente las condiciones 1,2, hasta que encuentra una cierta y devuelve el valor de la expresin asociada. Colocando True como ltima condicin, se consigue evaluar la ltima expresin si ninguna de las condiciones anteriores ha resultado cierta. Ejemplo 9: Controlar las siguientes condiciones utilizando el comando Which. f ( x) = 2 / x 2 > x <= 1 f ( x) = 2 > x <= 1

f ( x) = 2 / x 2 > x <= 2 f ( x) = Sen(5 Pi / 6 + Pi ( x 2)) > x > 2

Clear@g, xD; g@x_D := WhichAx 1,2x2,x 1, 2,x 2,2x2,x> 2, Sin@5 Pi6+ PiHx 2LDE; 2 Plot@g@xD, 8x, 2, 4<D;
1.5 1 0.5

-2

-1 -0.5 -1

Lic. Matoso Elizabet Alejandra

50

Software Mathematica: Su aplicacin en los Mtodos Numricos CAPITULO 9: APLICACIN DE MTODOS RAICES DE ECUACIONES En este captulo se exponen dos de los mtodos destinados para la resolucin de races de ecuaciones, construidos a partir de la utilizacin del lenguaje de programacin provisto por el Matemtica y que se han expuesto en los distintos captulos anteriores. A continuacin se exponen dos mtodos: METODO DEL INTERVALO MEDIO METODO DE NEWTON RAPHSON

Mtodo del Intervalo Medio Ejemplo 1: Sea la ecuacin f ( x) = x 6 + x 5 en el intervalo [0, 2] y con un error de 10^-6. Definir en primer lugar la funcin, el intervalo y la exactitud. Luego calcular el nmero P de iteraciones (o pasos) necesarias, para a continuacin llevar a cabo el clculo de dichas aproximaciones, que se irn visualizando a medida que se van realizando los sucesivos clculos. La resolucin en Mathematica es: Clear[f,x]; f[x_]=x^6+x-5; a=0; b=2; ex=10^(-6); n=Floor[N[(Log[b-a]-Log[ex])/Log[2]]]; For[i=1,in,i=i+1,c=(a+b)/2; If[f[c] 0,Print["Sol.Exacta:",N[c,10],"hallada en",i,"pasos"]; Break[] ]; If[f[c]f[a]<0,b=c,a=c]; Print[i,"-aprox:", N[c,10],"(error<",N[b-a],")"] ] 1 -aprox: 1.000000000 (error< 1. ) 2 -aprox: 1.500000000 (error< 0.5 ) 3 -aprox: 1.250000000 (error< 0.25 ) 4 -aprox: 1.125000000 (error< 0.125 ) 5 -aprox: 1.187500000 (error< 0.0625 ) 6 -aprox: 1.218750000 (error< 0.03125 ) 7 -aprox: 1.234375000 (error< 0.015625 ) 8 -aprox: 1.242187500 (error< 0.0078125 ) 9 -aprox: 1.246093750 (error< 0.00390625 ) 10 -aprox: 1.248046875 (error< 0.00195313 ) 11 -aprox: 1.247070313 (error< 0.000976563 ) 12 -aprox: 1.246582031 (error< 0.000488281 ) 13 -aprox: 1.246826172 (error< 0.000244141 )

Lic. Matoso Elizabet Alejandra

51

Software Mathematica: Su aplicacin en los Mtodos Numricos 14 15 16 17 -aprox: -aprox: -aprox: -aprox: 1.246704102 1.246643066 1.246612549 1.246627808 (error< (error< (error< (error< 0.00012207 ) 0.0000610352 ) 0.0000305176 ) 0.0000152588 ) 6

18aprox:1.246635437Herror<7.62939 10 L 19aprox:1.246631622Herror<3.8147 106L 20aprox:1.246629715Herror<1.90735 106L

Mtodo de Newton Raphson Ejemplo 2: Sea la funcin f ( x) = x 3 5 en el intervalo [1, 3]. Primero comprobar a travs de los grficos de f (x) , f ' ( x) y f ' ' ( x) en el intervalo [1, 3], que cumple las condiciones bajo las cuales el Teorema de Newton-Raphson asegura convergencia.
La resolucin en Mathematica es:
f[x_]:=x^3+5 Plot[f[x],{x,1,3}] a=D[f[x],x] b=D[f[x],{x,2}] Print["Primera derivada es igual a :"," ",a] Print["Segunda Derivada es igual a :", "",b]
30 25 20 15 10 1.5 2 2.5 3

Primera derivada es igual a : 3 x2


Segunda Derivada es igual a: 6 x

A continuacin, se generan los trminos de la sucesin de aproximaciones mediante el siguiente algoritmo. Comenzar con la definicin de la funcin f, y el valor de la primera aproximacin. Inmediatamente despus se define el algoritmo del mtodo de NewtonRaphson, el cual brindar sucesivas aproximaciones. Se debe ingresar un lmite iteraciones, en este ejemplo de 10 iteraciones.

Lic. Matoso Elizabet Alejandra

52

Software Mathematica: Su aplicacin en los Mtodos Numricos f[x_]:=x^3-5; x=2; y=f'[x]; For[i=1,i<=10,i=i+1, y1=N[(x-f[x]/y),20]; Print [ i,"" "aprox:",y1]; x=y1] 1 aprox: 1.7500000000000000000 2 aprox: 1.7200520833333333333 3 aprox: 1.7126428946668719068 4 aprox: 1.7106903016799032111 5 aprox: 1.710167886822841994 6 aprox: 1.710027561974937545 7 aprox: 1.709989829824118045 8 aprox: 1.709979681099391521 9 aprox: 1.70997695121387952 10 aprox: 1.70997621689231304 NOTA: Observar al ejecutar este grupo de comandos que ya en la sexta iteracin se han estabilizado veinte cifras decimales de la solucin. INTEGRACION DE ECUACIONES DIFERENCIALES - METODOS QUE COMIENZAN POR SI MISMOS Aunque un problema de valores iniciales, tenga una solucin no siempre es posible obtener la funcin solucin de forma explicita. Por lo tanto se debe recurrir a tcnicas numricas que nos brinde una solucin aproximada. A continuacin se exponen dos mtodos: METODOS DE EULER METODO DE RUNGE KUTTA Mtodo de Euler Ejemplo 3: Utilizar el mtodo de Euler, para resolver y ' =
un intervalo [0,1], con pasos h=0.1 La resolucin en Mathematica es:

x* y , siendo y (0) = 1 , en 2

Lic. Matoso Elizabet Alejandra

53

Software Mathematica: Su aplicacin en los Mtodos Numricos


Clear@f, x, a, b, dx, dyD y@0D = 1; f@x_, y_D := x y 2; g@x_D := 4 plot1 = Plot@g@xD, 8x, 0, 1<, AspectRatio Automatic, DisplayFunction IdentityD; s@0D = 0; t@0D = 1; pt@0D = Graphics@8PointSize@.04D, Point@8s@0D, t@0D<D<D; h = 0.1; For@i = 1, i 10, i++,
8
x2

u = Table@pt@jD, 8j, 0, 10<D; Print@"N", " x ", " aprox. ", "exacta ", "error "D For@k = 1, k 10, k++,
8

<D

s@iD = s@i 1D + h; t@iD = f@s@i 1D, t@i 1DD h + t@i 1D; pt@iD = Graphics@8PointSize@.04D, Point@8s@iD, t@iD<D<D;

Show@8 plot1, u<, AxesOrigin 80, 0<, PlotRange 880, 1<, 80, 1.5<<, DisplayFunction $DisplayFunction, AspectRatio AutomaticD;

<D

Print@k, " ", s@kD, " ", t@kD, " ", N@g@k 10D, 4D, " ", HN@g@k 10D, 4D t@kDL N@g@k 10D, 4D 100, "%"D

N 1 2 3 4 5 6 7 8 9 10
1.4 1.2 1 0.8 0.6 0.4 0.2

x 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.

aprox. 1 1.005 1.01505 1.03028 1.05088 1.07715 1.10947 1.1483 1.19423 1.24797

exacta 1.003 1.010 1.023 1.041 1.064 1.094 1.130 1.174 1.224 1.284

error 0.2 % 0.499992 % 0.753361 % 1.01219 % 1.27884 % 1.5556 % 1.84472 % 2.14839 % 2.46875 % 2.80787 %

0.2

0.4

0.6

0.8

Lic. Matoso Elizabet Alejandra

54

Software Mathematica: Su aplicacin en los Mtodos Numricos NOTA: el grafico muestra los puntos estimados por el Mtodo d Euler. Para obtener mejores estimaciones, se debe decrementar h, la distancia entre dos valores sucesivos de x. Mtodo de Runge Kutta Ejemplo 4: Utilizar el mtodo de Runge Kutta, para resolver el ejemplo 3 y ' =
bajo las mismas condiciones. La resolucin en Mathematica es:
Clear@x, y, f, i, hD; f@x_, y_D := x y 2;
x2

x* y , 2

g@x_D := 4 ; plot2 = Plot@g@xD, 8x, 0, 1<, AspectRatio Automatic, DisplayFunction IdentityD; numpts = 10; h = 1 numpts; k1 = h f@x, yD; k2 = h f@x + h 2, y + k1 2D; k3 = h f@x + h 2, y + k2 2D; k4 = h f@x + h, y + k3D; y = 1; i = 0; Print@"N", " x ", " aprox. ", "exacta ", "error "D; ForAx = 0, x 1.0, x = x + 0.1,
9

s@iD = x; t@iD = y; pt@iD = Graphics@8PointSize@.04D, Point@8s@iD, t@iD<D<D; i++; ", PrintAx, " ", N@ yD, "
{ y = y + Hk1 + 2 k2 + 2 k3 + k4L 6;
x2 4

,"

j ", AbsAj y j j k

x2 y 4 zE z z z

x2 4

100, "%"E;

u = Table@ pt@jD, 8j, 0, 10<D Show@8 plot2, u<, AxesOrigin 80, 0<, PlotRange 880, 1<, 80, 1.5<<, DisplayFunction $DisplayFunction, AspectRatio AutomaticD;

=E

Lic. Matoso Elizabet Alejandra

55

Software Mathematica: Su aplicacin en los Mtodos Numricos x 0 aprox. exacta 1. 1


1.0025 1.01005 1.02276 1.04081 1.06449 1.09417 1.13032 1.17351 1.22446 1.28403

error 0 %

0.1 1.0025 0.2 1.01005 0.3 1.02276 0.4 1.04081 0.5 1.06449 0.6 1.09417 0.7 1.13032 0.8 1.17351 0.9 1.22446 1. 1.28403

1.62441 1010% 1.63597 109% 5.90613 109% 1.5091 108% 3.26974 108% 6.46668 108% 1.20703 107% 2.15873 107% 3.72483 107% 6.22204 107%
1.4

1.2

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

NOTA: Al observar los resultados obtenidos, se puede apreciar que la solucin exacta y la aproximada, coinciden exactamente en 5 lugares decimales.

Lic. Matoso Elizabet Alejandra

56

Software Mathematica: Su aplicacin en los Mtodos Numricos CAPITULO 10: CONCLUSION

A modo de conclusin preliminar, se considera que la utilizacin de la herramienta de software propuesta para el aprendizaje y desarrollo de los algoritmos contribuir en el conocimiento y la prctica de los alumnos. Este caso experimental, se orienta al sector de los alumnos de carreras no relacionados con informtica, como lo son la Ingeniera Elctrica y en Electrnica, el Profesorado y Licenciatura en Matemtica. Con la implementacin de este material didctico se obtuvieron los siguientes resultados: El grupo de alumnos, asimilo los conceptos de manera efectiva. Se familiarizo a los estudiantes con el uso de herramientas informticas. Se logr aplicar los conceptos ya adquiridos en el aula, mediante un paquete de software durante las clases de laboratorio. Demostr la facilidad y potencia que se puede obtener en los clculos utilizando una herramienta. Se demostr la capacidad de implementacin en ordenadores de algoritmos. Se trabajo con races de ecuaciones, pero en avances posteriores se abarcarn problemas relacionados con la interpolacin de funciones, la derivacin e integracin numrica y la resolucin de sistemas de ecuaciones lineales y no lineales.

A futuro se continuara con el desarrollo del presente material, agregando nuevos mtodos y problemas de la vida real, que requieren de los mismos para su solucin.

Lic. Matoso Elizabet Alejandra

57

Software Mathematica: Su aplicacin en los Mtodos Numricos

CAPITULO 11: BIBLIOGRAFIA

Anlisis Numrico. Burden y Faires. 7ma. Edicin-.- Cencage Learning Editores. 2009. Curso avanzado de Mtodos Numricos.- A. Iglesias- Corrientes. 1998. Mtodos Numricos G. Pace Editorial EUDENE -1997. Gua rpida para el nuevo usuario de Mathematica 5.0. Fedriani Martel E. y Garca Hernndez Alfredo. Mayo 2.004. En http://www.eumed.net/cursecon/libreria/2004/ae-guia-math5.pdf. Mtodos Numricos con Mathematica. Garcia Raffil, Perez Pealver M.J., Sanchez Prez E. y Figueres Moreno M. Septiembre 2005. Alfaomega grupo editor S.A. Mxico. ISBN: 970-15-0977-3. Mtodos Numricos con MATLAB.- Mathews y Fink. Ed. Prentice Hall. 2000. Mtodos Numricos para Ingenieros.- Chapra y Canale. Ed. McGraw Hill Interamericana. 2007. Problemas resueltos de Mtodos Numricos. Cordero Berbero, A. y otros. 2006. Paraninfo S.A. Madrid. Espaa. ISBN: 84-9732-409-9.

Lic. Matoso Elizabet Alejandra

58

You might also like