Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 1
Software Mathematica: “Su aplicación en los Métodos Numéricos”
� 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
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 2
INDICE
Índice 2 Capitulo 1: Introducción 4 Capítulo 2: Introducción a Mathematica 5 El espacio de trabajo 5 Notebook y núcleo 6 Entradas y salidas 6 Celdas 6 Paletas 6 Operadores 7 Constantes incorporadas 7 Funciones 8 Comandos Algebraicos 8 El comando N 8 Capítulo 3: Funciones y listas 10 Variables 10 Funciones 10 Listas 12 Construcción y manipulación de listas 12 Comandos 12 Capítulo 4: Vectores y matrices 15 Operaciones 15 Matrices 16 Operaciones 17 Capítulo 5: Resolución de ecuaciones y sistemas de ecuaciones 22 Comando LinearSolve 22 Comando Solve 22 Comando Findroot 23 Comando NSolve 24 Capítulo 6: Representación gráfica 25 Comando Plot 25 Opciones de Plot 27 Comando ListPlot 32 Comando Show 33 Comando Plot3D 34 Opciones comando Plot3D 35 Capítulo 7: Derivación e Integración 39 Derivación 39 Integración 39 Integrales indefinidas e integrales definidas 40 Integrales impropias 40 Valor aproximado de una integral 41 Comando NIntegrate 42 Aplicaciones de la integral 43 Capitulo 8: Conceptos de programación 45 Listas 45
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 3
Variables
45
Bucles 47 Funciones condicionales: sentencia IF 49 Orden Break 50 Comando Which 50 Capítulo 9: Aplicaciones de Métodos 51 Raíces de ecuaciones 51 Integración de ecuaciones diferenciales 53 Capitulo 10: Conclusión 57 Capitulo 11: Bibliografía 58
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 4
CAPITULO 1: INTRODUCCIÓN
Este material didáctico, constituirá un aporte para el desarrollo de la
asignatura “Métodos Numéricos” y de otras materias afines dictadas en la FACENA
(Facultad de Ciencias Exactas Naturales y Agrimensura).
El objetivo es introducir al estudiante de ciencias básicas, tanto de las
Ingenierías como de las Matemáticas, en el manejo de una herramienta de software,
potente, versátil y contribuir mediante su utilización al estudio y comprensión de los
“Métodos Numéricos” y las técnicas de cálculo aproximado y del análisis de los
errores cometidos.
En el aula, se aprende el manejo y la aplicación de algoritmos matemáticos
para alcanzar resultados o resolver problemas que los métodos provistos por la
Matemática pura no pueden alcanzar, y en el laboratorio se enseña el uso y
aplicación de una herramienta de software que soporte lo incorporado en el aula.
De un abanico de herramientas, se ha seleccionado Mathematica por tener
características amigables, pensadas para el perfil de estos alumnos que no tienen
profundos conocimientos de programación.
La propuesta del equipo docente, es continuar con la mejora y optimización
de este recurso didáctico, introduciendo nuevos métodos y problemas del campo
científico. Además 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.
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 5
CAPITULO 2: INTRODUCCIÓN A MATHEMATICA
Mathematica es un programa utilizado en áreas científicas, de ingeniería, matemáticas y áreas computacionales. Originalmente fue concebido por Stephen Wolfram quien continúa siendo el líder del grupo de matemáticos y programadores que desarrollan el producto. Comúnmente considerado como un sistema de álgebra computacional, Mathematica es también un poderoso lenguaje de programación de propósito general.
EL ESPACIO DE TRABAJO
El espacio de trabajo de la herramienta Mathematica, está compuesto por las siguientes partes:
� Notebook y Núcleo � Entradas y salidas � Celdas � Paletas
Figura 1: El espacio de trabajo
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 6
NOTEBOOK Y NUCLEO
En el programa Mathematica se pueden distinguir dos grandes partes: � Una de ellas, llamada núcleo (Kernel), es la encargada de ejecutar todos los
comandos y realizar los cálculos 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 gráficos y textos y en el que se incluirán todos los comandos a evaluar por el núcleo; a ese tipo de documentos se los denomina Notebooks.
ENTRADAS Y SALIDAS
Para que el núcleo evalúe todas las entradas (inputs) ingresadas, se debe pulsar las teclas Shift y Enter simultáneamente.
Por cada entrada dada por el usuario, Mathematica devolverá una salida (output) que numerará (ambos con el mismo número) secuencialmente a lo largo de una sesión 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 pequeñas ventanas, que se pueden activar (o desactivar) y que contienen algunas de las operaciones, órdenes e instrucciones más usuales que se necesitan durante una sesión de trabajo. Inicialmente son siete paletas que contienen todo tipo de operaciones, desde las más básicas hasta otras más complejas de Cálculo Algebraico, Cálculo Integral o de Cálculo 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 mayúsculas y minúsculas. Mathematica distingue unos caracteres de otros. Todas las funciones, opciones, variables y constantes incorporadas al programa empiezan con mayúscula, por lo tanto se recomienda utilizar minúscula para aquellas definidas por el usuario.
� Los espacios. Un espacio entre dos variables se interpreta como un signo de multiplicación. Por esto, nunca se debe dejar un espacio entre caracteres cuando se define el nombre de una constante, variable o función.
� Los paréntesis, corchetes y llaves. Los paréntesis 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 paréntesis. Las llaves se utilizan para definir listas (vectores y matrices, por ejemplo) de elementos.
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 7
OPERADORES Mathematica reconoce los operadores habituales de suma, diferencia, producto, cociente y potenciación: Operación Notación en Mathematica suma X + Y resta X – Y producto X * Y o X Y (un espacio) cociente X/Y potenciación X ^ Y Otras operaciones numéricas usuales son las siguientes: Operación Notación en Mathematica Valor absoluto de x Abs[x] Raíz cuadrada de x Sqrt[x] Parte entera de x Floor[x] Factorial de x X! o Factorial[x] Número aleatorio real entre 0 y 1 Random[x] Máximo y mínimo de una lista de vectores
Max[x1,x2,…..], Min[x1,x2,…..]
Descomposición en factores primos de x FactorInteger[x] NOTA:
� Todas las funciones comienzan con mayúsculas (incluso cuando el nombre está formado por varias palabras).
� Los argumentos de las distintas funciones siempre van entre corchetes. � La mayoría de las operaciones se encuentran también en varias de las paletas. � Con respecto a la precisión en el cálculo, Mathematica tiene precisión
infinita; es decir que las operaciones son realizadas en forma exacta o bien con la precisión que le indique el operador. La única limitación es la memoria disponible de la PC.
CONSTANTES INCORPORADAS
Mathematica tiene un gran número de constantes usuales predefinidas, algunas de ellas son: Operación Notación en Mathematica π Pi E E ι I ∞ Infinity
Si bien "infinito" no es una constante, ya que no es un valor numérico, Mathematica la incluye como constante predefinida.
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 8
FUNCIONES
Algunas funciones usuales y la sintaxis correspondiente en Mathematica:
Operación Notación en Mathematica x Sqrt[x]
xe E^x o Exp[x] )ln(x Log[x]
)(log xa Log[a,x]
)(xsen Sin [x] )cos(x Cos[x]
)(xtg Tan[x] )(cot xg Cot[x]
)sec(x Sec[x] )(cos xec Csc[x] )(xarcsen Arcsen[x]
)(xarcsh ArcSinh[x] COMANDOS ALGEBRAICOS
Mediante el comando Expand[] podemos obtener el desarrollo de las expresiones introducidas (por ejemplo, la aplicación de la propiedad distributiva, el desarrollo del cuadrado del binomio…).
Operación Notación en Matemática Expand[x] Forma expandida (efectúa sumas, productos, potencias) Factor[x] Factoriza x (escribe x como producto de factores mínimos) Together[x] Escribe todos los términos de x con un denominador común Apart[x] Separa x en términos con denominadores lo más simples
posible. Cancel[x] Cancela factores comunes que posean numerador y
denominador Simplify[x] Simplifica x siguiendo reglas algebraicas estándar FullSimplify[x] Simplifica x usando reglas algebraicas más potentes TrigExpand[x] Expande expresiones trigonométrica en suma de términos TrigFactor[x] Factoriza expresiones trigonométricas en producto de
términos EL COMANDO “N”
Para aproximar expresiones racionales periódicas o expresiones irracionales, se debe utilizar el comando N[expresión, número de cifras], donde el primero de los argumentos (expresión) corresponde a la cantidad numérica que se desea aproximar y el segundo de los argumentos (número de cifras) a la cantidad de cifras con la que se requiere el resultado (parte entera+decimales).
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 9
123/99
41
33 123./99 1.24242
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 raíz cuadrada de 3 con 20 cifras exactas. N[Sqrt[3],20] 1.7320508075688772935
También se puede calcular aproximaciones numéricas indicando a la herramienta que alguno de los números es real y no entero; para ello se coloca el punto de los decimales y Mathematica devolverá el resultado con una precisión por defecto. Ejemplo 3: Probar la salida de las entradas; 123/99 y 123./99. Observar la diferencia reflejada.
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 10
CAPITULO 3: FUNCIONES Y LISTAS
VARIABLES
En programación, las variables son estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador.
La asignación 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 cálculo 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, más x, menos el valor 3
� x ^ 2 + x – 3 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 núcleo o se empiece una nueva sesión de Mathematica. Para liberar a las variables bastará con el Comando Clear. Ejemplo 4: Liberar la variable x. FUNCIONES
La definición de funciones se puede realizar de dos maneras diferentes: � Asignación inmediata (“=”) � Asignación diferida (“:=”) Diferencia: cuando se utiliza la asignación diferida, ésta se produce cada vez que
se llama a la función, por lo tanto esta se ve afectada por todas las modificaciones que puedan efectuarse.
Cuando se define una función en Mathematica, se debe especificar el nombre de la misma y su variable independiente.
Clear[x] Print[x] x
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 11
Ejemplo 5: Definir la función f(x)= x^2+5x, utilizando la asignación Diferida.
Ejemplo 6: Definir la función anterior, utilizando asignación Inmediata.
En la asignación 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 añadir los dos puntos equivale a un pequeño programa que se ejecutará cada vez que lo llamemos.
En cambio, si no se añade los dos puntos, Mathematica ejecutará la función inmediatamente.
NOTA: � La variable x lleva un guión 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 función sin el guión bajo "_", sucedería lo siguiente:
Ejemplo 7: Definir la función f(x)= x ^ 2, sin utilizar el guión 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]
x=4 4 f[x_]:=x^2+5x f[x] 36 f[5] 50
y=2 2 g[y_]=y^2+5y 14 g[y] 14 g[8] 14
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 12
LISTAS
Son colecciones de objetos que son tratados como una entidad y constituyen una de las estructuras más importantes de Mathematica.
En particular tienen utilidad para la construcción de vectores y matrices. CONSTRUCCIÓN Y MANIPULACIÓN 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 números, fracciones, otras listas, etc.
Otras formas de construir listas consisten en utilizar los comandos. -Table -Array
Con las listas se pueden efectuar las operaciones aritméticas básicas, 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 número de elementos de la lista � Rest[lista]: devuelve la lista sin su primer elemento � Drop[lista,nºelemento]: elimina un número 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 añadir nuevos elementos al final de
la lista. � Prepend[lista, elemento nuevo]: sirve para añadir 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
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 13
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]: evalúa cuantas veces tiene lugar suceso en la lista. � Position[lista,suceso]: evalúa las posiciones en las que tiene lugar suceso en
lista. � Insert[lista,elemento,{i,j,…}]: inserta en la posesión {i,j,…} de lista elemento. � Delete[lista,{i,j,…}]: elimina de la lista el elemento de la posición {i,j,…}. � Flatten[lista]: convierte una matriz o una lista con sublistas en una lista única o
vector. � Partition[lista,nºelementos,paso]: agrupa elementos de una lista en grupos de
tamaño nºelementos 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 unión
conjuntista de los elementos de lista1, lista2, …, listan. � Intersection[lista1,lista2,…listan]: crea una nueva lista realizando una
intersección 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}
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 14
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}}
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 15
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 corresponderán a las filas de la matriz. También 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)
OPERACIONES Las operaciones que se pueden realizar son las siguientes:
� El producto escalar, utilizando el comando Dot o el punto (.)
� La multiplicación elemento a elemento
� 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:
Una segunda forma de generar vectores, es a través de la orden Table[ ], cuya definición 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.
v1={1,2,3} v2={2,6,-3} {1,2,3} {2,6,-3}
v1.v2 5 Dot[v1,v2] 5
v1*v2 {2,12,-9}
Part[v1,2] 2
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 16
Ejemplo 2: Construir vectores, utilizando el comando Table.
Una tercera forma de definir vectores, es mediante el comando Array:
� Array[a,n]: permite construir un vector simbólico de n componentes.
MATRICES Una matriz siempre está delimitada por un par de llaves y, separadas por
comas, se escriben las filas agrupadas también con llaves. Ejemplo 3: Definir las siguientes matrices;
Mathematica no muestra el resultado en la forma habitual que se conoce. Para conseguir este formato, se utiliza la orden MatrixForm[matriz].
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.}
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
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}}
MatrixForm[a]
ikjjjjj
1 2 5−2 5 71 0 3
y{zzzzz
MatrixForm[b]
ikjjjjj
1 1 16 3 21 −3 0
y{zzzzz
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 17
Una matriz también se puede definir con el comando Table y Array de la siguiente manera:
� Table[expresión, { i, imin, imax, incrementoi}, {j, jmin, jmax, incrementoj}, …]: se construye una lista cuyos componentes serán los distintos valores de expresión, para cada uno de los índices i, j variando entre mínimo y máximo con el incremento especificado en cada paso. Los incrementos y los valores mínimos son optativos, por defecto toman el valor 1.
� Array[a, {m,n}]: se construye una matriz simbólica 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.
OPERACIONES
� SUMA: Para sumar matrices, si los órdenes lo permiten, se utiliza el signo +.
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
MatrixForm[a]
ikjjjjj
1 2 5−2 5 71 0 3
y{zzzzz
MatrixForm[b]
ikjjjjj
1 1 16 3 21 −3 0
y{zzzzz
a+b {{2,3,6},{4,8,9},{2,-3,3}} MatrixForm[a+b]
ikjjjjj
2 3 64 8 92 −3 3
y{zzzzz
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 18
� PRODUCTO:
El producto se realiza utilizando el punto y para obtener un formato matricial, utilizar MatrixForm:
Producto entre una Matriz y un vector:
Producto entre una matriz y un escalar:
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
]],[[ jAllA
a.b {{18,-8,5},{35,-8,8},{4,-8,1}} MatrixForm[a.b]
ikjjjjj
18 −8 535 −8 84 −8 1
y{zzzzz
MatrixForm[a.v1]
ikjjjjj
202910
y{zzzzz
MatrixForm[2a]
ikjjjjj
2 4 10−4 10 142 0 6
y{zzzzz
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 19
Ejemplo 5: Definir una matriz A, con los siguientes elementos; Ejemplo 6: Obtener el elemento (2,3) de la matriz A definida anteriormente. Ejemplo 7: Obtener la segunda fila de la matriz A.
Ejemplo 8: Construir una submatriz de A que contenga las filas (1,2) y las columnas (2,3). Ejemplo 9: Obtener la tercera columna de la matriz A y mostrar el resultado en forma convencional. Tabla de alguna de las operaciones matriciales más usuales:
Operación Notación en mathematica
Inversa Inverse[a] Determinante Det[a] Valores propios Eigenvalues[a] Vectores propios Eigenvectors[a] Polinomio característico CharacteristicPolynomial[a,x] Rango MatrixRank[a] Traspuesta Transpose[a] Traza Tr[a] Matriz Diagonal DiagonalMatrix[{a11,a22,…}] Matriz Identidad IdentityMatrix[n]
A[[2,3]] 6
A[[2]] {4,5,6}
A[[{1,2},{2,3}]] {{2,3},{5,6}}
A[[All,3]] {3,6,9} MatrixForm[%]
ikjjjjj
369
y{zzzzz
ikjjjjj
1 2 34 5 61 3 2
y{zzzzz
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 20
Ejemplo 10: Definir una matriz cuadrada ‘mat’
Ejemplo 11: Calcular el determinante de ‘mat’ para comprobar que no sea nulo, y poder calcular la inversa. Ejemplo 12: Calcular la matriz inversa de ‘mat’. Ejemplo 13: Realizar el producto matricial, para comprobar que ‘inv’ es la inversa de ‘mat’, ya que el resultado obtenido es la matriz identidad.
Ejemplo 14: Definir la matriz ‘g’.
Ejemplo 15: Calcular la traspuesta de ‘g’.
mat={{1,3,4},{-1,0,1},{1,3,-1}} {{1,3,4},{-1,0,1},{1,3,-1}} MatrixForm[%]
ikjjjjj
1 3 4−1 0 11 3 −1
y{zzzzz
Det[mat] -15
inv=Inverse[mat]
:: 1
5, −1, −
1
5>, :0,
1
3,
1
3>, : 1
5, 0, −
1
5>>
iden=mat.inv {{1,0,0},{0,1,0},{0,0,1}} MatrixForm[%]
ikjjjjj
1 0 00 1 00 0 1
y{zzzzz
g={{1,2,7},{1,3,5}} {{1,2,7},{1,3,5}} MatrixForm[g]
J1 2 7
1 3 5N
MatrixForm[Transpose[g]]
ikjjjjj
1 12 37 5
y{zzzzz
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 21
Ejemplo 16: Definir la matriz ‘h’.
Ejemplo 17: Calcular los autovalores de la matriz ‘h’.
Ejemplo 18: Calcular los autovectores de 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[%]
i
k
jjjjjjjjj
0 1 5 92 1 6 80 0 0 30 0 1 −2
y
{
zzzzzzzzz
valores=Eigenvalues[h] {-3,2,-1,1} MatrixForm[%]
i
k
jjjjjjjjj
−32
−11
y
{
zzzzzzzzz
vectores=Eigenvectors[h] {{-7,1,-5,5},{1,2,0,0},{-1,1,0,0},{-13,-37,3,1}} MatrixForm[%]
i
k
jjjjjjjjj
−7 1 −5 51 2 0 0
−1 1 0 0−13 −37 3 1
y
{
zzzzzzzzz
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 22
TEMA 5: RESOLUCIÓN DE ECUACIONES Y SISTEMAS DE
ECUACIONES
Mathematica puede resolver los tipos más 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 solución aproximada.
En cambio si el polinomio es de grado bajo, se utilizan comandos como Solve, que obtienen la solución exacta expresada mediante radicales.
COMANDO LINEARSOLVE
El comando LinearSolve, devuelve un vector, el cual cumplirá la ecuación matricial ‘matriz. x = b’, siendo matriz una matriz y b un vector.
La sintaxis del comando es: ],[ bmatrizeLinearSolv
Ejemplo 1: Ingresar el siguiente sistema de ecuaciones y calcular con el comando LinearSolve.
22
132
12
−=+−=++
=−+
zy
zyx
zyx
Su resolución mediante Mathematica es:
Se realizó la definición de una matriz de coeficientes y un vector de términos
independientes para un sistema de ecuaciones lineales. Como respuesta se obtuvo la solución del sistema planteado.
En el caso de los sistemas indeterminados, este comando solo calcula una de las soluciones.
COMANDO SOLVE
Cuando la función sea polinómica o tenga una forma sencilla de expresión se utiliza el comando Solve. Devuelve el valor exacto de las raíces de la función. 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 método algebraico sencillo, es decir que se puedan resolver mediante operaciones elementales.
La sintaxis del comando es: ]var,[ iablesecuacionSolve
mat={{1,2,-1},{2,3,1},{0,-2,1}}; vec={1,1,-2}; LinearSolve [mat,vec] {-1,1,0}
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 23
Ejemplo 2: Ingresar el siguiente sistema y calcular utilizando el comando Solve.
02
12
1
=+=−
=+
zx
zy
yx
Su resolución mediante Mathematica es:
En este caso se observa, que se trata de un sistema compatible indeterminado y por lo tanto la solución obtenida es en función de Z.
Sobre la solución de la ecuación se puede aplicar cualquier transformación. Se considera alguna de las incógnitas como un parámetro y se obtiene
resultados particulares para ciertos valores del mismo. En el ejemplo, se obtienen las soluciones de la ecuación con z=2. El operador % : hace referencia a la última salida. El operador /. : indica que sobre la expresión considerada se aplica la regla
2>−z .
NOTA: � El doble signo igual (==) entre la función y el valor cero indica que es una
ecuación. � La x que figura después de la coma identifica la variable o incógnita a
despejar. COMANDO FINDROOT
El comando FindRoot, se utiliza en el caso de que la función sea más compleja, se pueden calcular aproximaciones de las raíces utilizando métodos numéricos para su resolución.
Como este comando usa métodos aproximados iterativos, es posible que si se ingresan valores muy alejados para los puntos iniciales, Mathematica no pueda encontrar una solución.
Los valores que comienzan para las variables de FindRoot son elegidos típicamente usando estimaciones de las soluciones previstas, por ensayo y error, o haciendo gráficos. Es decir, es conveniente hacer primero una gráfica de la función para “ver” dónde se anula la función.
La sintaxis del comando es: � }],{,[ 0xxecuacionFindRoot : que utiliza el Método de Newton (o método de
la tangente) tomando como punto inicial 0xx =
� }],{},,{,[ 00 yyxxecuacionFindRoot : que utiliza una variante del Método de
la secante tomando como puntos iniciales 0xx = , 0yy = .
Solve[{x+y �1,y-2z �1,x+2z �0},{x,y,z}] {{x →-2 z,y →1+2 z}} %/.z →2 {{x →-4.,y →5.}}
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 24
* El primer argumento, es la ecuación. * El segundo argumento, es una lista },{ 0xx 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 ecuación en el intervalo [0; 2], para determinar un punto de inicio y calcular todas las raíces con el comando FindRoot.
xex 3−
Su resolución mediante Mathematica es:
COMANDO NSOLVE
El comando NSolve, calcula todas las soluciones de una ecuación o de un sistema de ecuaciones polinómicas y no polinómicas.
Los valores obtenidos, son raíces aproximadas y puede aplicarse para cualquier grado.
La sintaxis del comando es:
]var,[ iablesecuacionNSolve Ejemplo 4: Resolver el siguiente sistema de ecuaciones, utilizando el comando NSolve:
2
22 1
xy
yx
==+
Su resolución mediante Mathematica es:
NSolve[{x^2+y^2 �1,y �x^2},{x,y}] {{x →0. +1.27202 �,y →-1.61803}, {x →0. -1.27202 �,y →-1.61803}, {x →-0.786151,y →0.618034}, {x →0.786151,y →0.618034}}
Plot[Exp[x]-3 x,{x,0,2}]
0.5 1 1.5 2-0.25
0.25
0.5
0.75
1
1.25
FindRoot[Exp[x]-3x �0,{x,0}] {x →0.619061} FindRoot[Exp[x]-3x �0,{x,1.5}] {x →1.51213}
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 25
CAPITULO 6: REPRESENTACION GRAFICA
Una de las grandes virtudes de Mathematica es el tratamiento de los gráficos
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. También se pueden representar funciones en coordenadas paramétricas e incluso se pueden realizar animaciones. COMANDO PLOT
Para representar gráficamente una función de una variable, el comando que se utiliza es Plot.
La sintaxis es la siguiente: ]},,,{,[ maxmin opcionesxxxfuncionPlot
x : es la variable independiente.
minx : Extremo inferior del intervalo del dominio de la función que se desea representar.
maxx : Extremo superior del intervalo del dominio de la función que se desea
representar. NOTA:
Mathematica decide automáticamente cual es la escala más apropiada para que la gráfica se vea lo mejor posible. Ejemplo 1: Sea la función xxxf 5)( 2 += , representar gráficamente con el comando Plot en el intervalo [-7, 7]. Su representación mediante Mathematica es:
Plot[x^2+5x,{x,-7,7}]
-6 -4 -2 2 4 6
10
20
30
40
50
�Graphics �
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 26
Ejemplo 2: Representar gráficamente la función 467)( 23 ++−= xxxxg en el intervalo [-10, 14] Su representación mediante Mathematica es: NOTA:
� Se puede escribir directamente la función a representar “dentro” del comando o definir primero la función 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 gráficas a la vez, con la siguiente
sintaxis: ]},,,{},,...,2,1[{ maxmin opcionesxxxfnffPlot
Esta sintaxis, dibuja las n funciones conjuntamente para valores de x comprendidos entre minx y maxx .
Ejemplo 3: Representar en una misma grafica las funciones f y g. Su representación mediante Mathematica es
g[x_]:=x^3-7^2+6x+4; Plot[g[x],{x,-10,14}]
-10 -5 5 10
-1000
1000
2000
�Graphics �
f[x_]:=x^2+5x; Plot[{f[x],g[x]},{x,-10,14}];
-10 -5 5 10
-200
200
400
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 27
OPCIONES DE PLOT
Cuando Mathematica realiza un gráfico, se debe elegir cómo realizar la representación gráfica (escalas, ejes, origen, color, grosor de línea, etc.). En muchas ocasiones, Mathematica probablemente hará una buena elección. 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 opción que no asignemos un valor explícito, Mathematica le asignará un valor por defecto.
� AspectRatio >− número: Determina la proporción entre los ejes de
abscisas y ordenadas. Si especificamos el valor 1 los dos ejes tendrán el mismo tamaño.
Ejemplo 4: Agregar al grafico de la función f la opción AspectRatio.
� PlotRange >− {número1, número2}: Cuando Mathematica realiza un gráfico, fija una escalas para x e y con el objetivo de incluir solo las partes más interesantes de la gráfica. Si la función crece rápidamente, o tiene singularidades, las partes de la gráfica demasiado largas son cortadas. Con la orden PlotRange se controla el rango de variación para la x y la y. Los posibles valores para esta opción son:
* Automatic: grafica una gran parte de la gráfica incluyendo la parte " más interesante que aparecería por defecto”. * All : grafica todos los puntos (si es posible). * },{ maxmin yy : grafica un rango específico para los valores de y.
* },{ rangerange yx : grafica un rango específico para los valores de x e y.
Plot[f[x],{x,0-7,7},AspectRatio →1.5]
-6 -4 -2 2 4 6
10
20
30
40
50
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 28
Ejemplo 5: Agregar al grafico de la función f la opción PlotRange.
� PlotStyle >− {opciones}: indica el estilo de la línea o puntos de la gráfica,
como ser color, grosor, brillo, y fondo. Cuando se crea un objeto gráfico en Mathematica, normalmente se añade una lista de opciones gráficas. En esta lista se puede añadir directivas gráficas que especifican cómo se deben reproducir los elementos del gráfico. Mathematica dispone de varias opciones gráficas. Una de las más importantes
es aquélla que especifica el color de los elementos del gráfico. Incluso si el gráfico es en blanco y negro, se puede especificar la intensidad de color dentro de la escala de los grises. También se puede utilizar en gráficos a color las intensidades del gris.
OPCIONES 1. RGBColor[número1,número2,número3]: Permite escoger un color en función de la cantidad de rojo (número1), verde (número2) y azul (número3), donde los números pueden tomar cualquier valor entre 0 y 1. Ejemplo 6: Representar las funciones f, g y h utilizando la opción RGBColor.
Plot[f[x],{x,0-7,7},PlotRange →{-20,20}]
-6 -4 -2 2 4 6
-20
-15
-10
-5
5
10
15
20
Plot[{f[x],g[x],h[x]},{x,0-7,7},PlotStyle →{{RGBColor[1,0,0]},{RGBColor[0,1,0]},{RGBColor[0,0,1]}}]
-6 -4 -2 2 4 6
-30
-20
-10
10
20
30
�Graphics �
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 29
2. GrayLevel[ i ]: indica la intensidad del gris, entre 0 (negro) y 1 (blanco). Ejemplo 7: Representar la función f utilizando la opción GrayLevel. 3. Hue[ h ]: proporciona otra manera de especificar el color usando un único parámetro. Cuando h varía de 0 a 1, Hue[h] se mueve cíclicamente entre el rojo, amarillo, verde, cian, azul, magenta, negro y rojo de nuevo. Ejemplo 8: Representar la función f utilizando la opción Hue. 4. Hue[h,s,b]: especifica no solo el tono del color sino la “saturación” o contraste y el brillo. Si la saturación igual a 1 se obtiene un color más profundo; en cambio si este valor decrece a 0 el color es más claro. Ejemplo 9: Representar la función f utilizando la opción Hue con tres parámetros.
Plot[f[x],{x,0-7,7},PlotStyle →{GrayLevel[0.14]}]
-6 -4 -2 2 4 6
10
20
30
40
50
�Graphics �
Plot[f[x],{x,0-7,7},PlotStyle →{Hue[0.1]}]
-6 -4 -2 2 4 6
10
20
30
40
50
Plot[f[x],{x,0-7,7},PlotStyle →{Hue[0,1,1]}]
-6 -4 -2 2 4 6
10
20
30
40
50
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 30
5. PointSize[d]: sirve para que todos los puntos del gráfico los represente como un círculo de diámetro d. Con PointSize, el diámetro d está medido en proporción al ancho de todo el gráfico. Ejemplo 10: Representar una lista con el comando ListPlot y la opción PointSize.
� � 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 función f con la opción AxesLabel.
Plot[f[x],{x,0-7,7},AxesLabel →{"eje de las x", "eje de las y"}]
-6 -4 -2 2 4 6eje de las x
10
20
30
40
50
eje de las y
lista={{1,2},{2,3},{3,5},{4,7}} {{1,2},{2,3},{3,5},{4,7}} ListPlot[lista,PlotStyle →PointSize[0.15]]
1.5 2 2.5 3 3.5 4
3
4
5
6
7
Mathematica también permite la opción AbsolutePointSize[d], que especifica el diámetro “absoluto” de los puntos, medidos en unidades fijas. Ejemplo 11: Representar una lista con el comando ListPlot y la opción AbsolutePointSize. ListPlot[lista,PlotStyle →AbsolutePointSize[5]]
1.5 2 2.5 3 3.5 4
3
4
5
6
7
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 31
� Frame >− valor: enmarca el gráfico según el valor dado. True, enmarca y
False, no enmarca. Ejemplo 13: Enmarcar el gráfico con la opción Frame.
� GridLines >− valor: muestra una malla para cada valor de la regla del marco. El valor Automatic, incluye las líneas para la mayoría de las marcas y el valor None, no muestra la malla.
Ejemplo 14: Representar el gráfico con una malla, utilizar la opción GridLines. � PlotLabel >− {“etiqueta”}: incluye una etiqueta para el gráfico, el texto
debe ir entre comillas. Ejemplo 15: Etiquetar el grafico con la opción PlotLabel.
Plot[f[x],{x,0-7,7},Frame →True]
-6 -4 -2 0 2 4 6
0
10
20
30
40
50
Plot[f[x],{x,0-7,7},GridLines →Automatic]
-6 -4 -2 2 4 6
10
20
30
40
50
Plot[f[x],{x,0-7,7},GridLines →None,PlotLabel->{"Gráfico sin malla"}]
-6 -4 -2 2 4 6
10
20
30
40
508Grá fico sin malla <
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 32
COMANDO LISTPLOT
En muchas ocasiones es necesario mostrar gráficamente datos obtenidos, por ejemplo, de una experiencia o experimento. Las coordenadas obtenidas pueden no responder a una expresión analítica, pero puede interesarnos “ver” cómo se disponen esos puntos en una gráfica (también denominada nube de puntos). Para ello, se debe generar gráficas 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. NOTA:
Para mostrar todos los puntos unidos por un segmento, se utiliza la opción PlotJoined, y el valor True.
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]]
2 3 4 5 6
2
3
4
5
6
7
8
ListPlot[lista,PlotJoined →True]
2 3 4 5 6
2
3
4
5
6
7
8
�Graphics �
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 33
COMANDO SHOW
Existe otra manera de superponer gráficas; 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 gráfico.
3)(
3)(
cos)(
2 +=+=
=
xxh
senxxg
xxf
NOTA: Mathematica primero, hace las gráficas individuales y luego la superposición. Se pueden mostrar los gráficos en diferentes posiciones mediante el comando GraphicsArray[ ]. * Gráficos en fila.
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]
-6 -4 -2 2 4 6
2
4
6
8
10
12
Show[GraphicsArray[{grafico1,grafico2,grafico3}]]
-3 -2 -1 1 2 3-1
-0.5
0.51
-6 -4 -2 2 4 6-1
-0.5
0.51
-3 -2 -1 1 2 3
68
1012
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 34
* Gráficos en columna.
COMANDO PLOT3D
Representa gráficamente funciones de dos variables. La principal aplicación de representación gráfica será dar una idea aproximada de la variación de dicha función, especialmente útil para buscar extremos. La sintaxis es la siguiente:
}],,{},,,{,[3 maxminmaxmin yyyxxxyfuncionxDPlot Ejemplo 18: Representar la función )*(),( yxsenyxf = con el comando Plot3D. Su resolución mediante Mathematica es:
Show[GraphicsArray[{{grafico1},{grafico2},{grafico3 }}]]
-3 -2 -1 1 2 3
6
81012
-6 -4 -2 2 4 6
-1
-0.5
0.5
1
-3 -2 -1 1 2 3
-1
-0.5
0.5
1
�GraphicsArray �
f[x_,y_]:=Sin[x*y]; Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi}]
-2
0
2-2
0
2-1
-0.50
0.51
-2
0
2
�SurfaceGraphics �
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 35
OPCIONES DEL COMANDO PLOT3D
� Mesh->True/False: Dibuja (True) o no (False) la retícula o malla sobre la que se construye la gráfica.
Ejemplo 19: Graficar la función f utilizando la opción Mesh. Su resolución mediante Mathematica es:
� Shading->True/False: Colorea (True) o no (False) la malla anterior. Si
unimos las opciones Mesh->False y Shading->False, no aparecerá gráfico alguno.
Ejemplo 20: Graficar la función f utilizando la opción Shading. Su resolución mediante Mathematica es:
� PlotPoints->número de puntos: Representa el número de puntos que usará
Mathematica para dibujar la gráfica. Un número muy alto producirá un gráfico más “suave”, pero aumentará considerablemente el tiempo empleado por Mathematica para realizarlo.
Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi},Mesh →False]
-20
2-2
0
2-1
-0.50
0.51
-20
2
Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi},Shading →False]
-20
2-2
0
2-1
-0.50
0.51
-20
2
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 36
Ejemplo 21: Graficar la función f utilizando la opción PlotPoints. Su resolución mediante Mathematica es:
� ViewPoint: Establece el punto de vista desde el que se dibujará la gráfica. La
forma de usar esta opción será “pegarlo” desde una ventana que automatiza el proceso. A dicha ventana se accede a través del menú Input, submenú 3D ViewPoint Selector.
ViewPoint Posición
{1.3, -2.4, 2} Visión que da el programa {0, -2, 0} Visión de frente {0, 0, 2} Visión por encima {-2, -2, 0} Visión desde la esquina izquierda {2, -2, 0} Visión desde la esquina derecha {0, -2, 2} Visión frontal superior
Ejemplo 22: Mostrar el grafico con el comando ViewPoint utilizando la visión del programa. Su resolución mediante Mathematica es:
Plot3D[f[x,y],{x,-Pi,Pi},{y,-Pi,Pi},PlotPoints->5]
-2
0
2-2
0
2-1
-0.50
0.51
-2
0
2
�SurfaceGraphics �
Show[grafico,ViewPoint →{1.3,-2.4,2}]
-2
02
-2
0
2-1
-0.50
0.51
-2
02
�SurfaceGraphics �
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 37
Ejemplo 23: Mostrar el grafico con el comando ViewPoint utilizando la visión de frente. Su resolución mediante Mathematica es:
Show[grafico,ViewPoint →{0,-2,0}]
-2 0 2
-2 0 2
-1
-0.5
0
0.5
1
�SurfaceGraphics �
Ejemplo 24: Mostrar el grafico con el comando ViewPoint utilizando la visión por encima. Su resolución mediante Mathematica es:
Show[grafico,ViewPoint →{0,0,2}]
-2 0 2
-2
0
2-1-0.500.51
�SurfaceGraphics � Ejemplo 25: Mostrar el grafico con el comando ViewPoint utilizando la visión desde la esquina izquierda. Su resolución mediante Mathematica es:
Show[grafico,ViewPoint →{-2,-2,0}]
-2 0 2-202
-1-0.5
00.5
1
0 2
�SurfaceGraphics �
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 38
Ejemplo 26: Mostrar el grafico con el comando ViewPoint utilizando la visión desde la esquina derecha. Su resolución mediante Mathematica es:
Show[grafico,ViewPoint →{2,-2,0}]
-2 0 2 -2 0 2-1
-0.50
0.51
-2 0 �SurfaceGraphics � Ejemplo 27: Mostrar el grafico con el comando ViewPoint utilizando la visión frontal superior. Su resolución mediante Mathematica es: Show[grafico,ViewPoint →{0,-2,2}]
-2 0 2
-2
0
2
-1-0.5
00.5
1
-2
0
2
�SurfaceGraphics �
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 39
CAPITULO 7: DERIVACIÓN E INTEGRACIÓN
Las formulas de derivación numérica, son especialmente interesantes a la hora de desarrollar algoritmos para la resolución de ecuaciones diferenciales ordinarias y en derivadas parciales. DERIVACIÓN
Para calcular la derivada de una función, se debe utilizar los símbolos de derivadas parciales que aparecen en la paleta BasicInput o ingresar alguna de las siguientes órdenes según sea el caso:
]],[[ xxfD Derivada (o derivada parcial) de f con respecto a x. }],{],[[ nxxfD Derivada parcial n-ésima de f con respecto a x.
}],{],,[[ 2121 xxxxfD Derivada parcial de f con respecto a x1, x2,…,xn NOTA: La última sintaxis es válida para funciones de varias variables. Ejemplo 1: Definir una función f y derivar utilizando la orden D.
x
xfD
xxxf
fClear
23
] x],[[
43:_][
][ 2
+−
+−=
Ejemplo 2: Derivar la función anterior utilizando el símbolo f'[x] .
2x3-
]['
+xf
INTEGRACIÓN El cálculo integral, tiene una importancia en todas las disciplinas científicas-técnicas. Son innumerables los problemas cuya descripción y resolución pasa por el calculo de una integral. El comando Integrate de Mathematica, es el encargado del cálculo 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 número de campos que se debe introducir en el comando.
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 40
INTEGRALES INDEFINIDAS E INTEGRALES DEFINIDAS Mathematica permite calcular integrales mediante las instrucciones:
� El comando Integrate, calcula la integral indefinida de la expresión dada con respecto a la variable indicada. La sintaxis es:
]var,[exp iableresionIntegrate
� El comando Integrate, calcula la integral definida de la expresión dada con
respecto a la variable indicada en el intervalo [a,b]. la sintaxis es:
}],,{var,[exp baiableresionIntegrate Ejemplo 3: Calcular la integral de la función f(x)= 132 −+ xx , utilizando el comando Integrate y el símbolo de integración. Su resolución en Mathematica es: INTEGRALES IMPROPIAS
Las denominadas integrales impropias, son una clase especial de integrales definidas (integrales de Riemann) en las que el intervalo de integración o la función en el integrando o ambos presentan ciertas particularidades.
La integral es impropia si se presenta uno de los siguientes casos:
� o ∞=b , o, y ∞=b � )(xf no es acotada en alguno de los puntos de ],[ ba , dichos puntos se
llaman singularidades de )(xf .
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.
Integrate[x^2+3x-1,x]
−x +
3 x2
2+
x3
3
Ÿ(x^2+3x-1) �x
−x +
3 x2
2+
x3
3
−∞=a −∞=a
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 41
Ejemplo 4: Calcular las siguientes integrales impropias
� A) xe− en el intervalo [0 , ∞ ]
� B) 21
1
x− en el intervalo [0 , 1]
� C) 2
1
−x en el intervalo [0 , 2]
Su resolución en Mathematica es: 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 términos de ciertas funciones especiales que el programa tiene definidas. En esta situación se puede obtener un valor aproximado de la integral.
Ejemplo 5: calcular la integral 2xe−
en [-1, 1]
Ejemplo 4 - A Integrate[Exp[-x] ,{x,0, ∞}] 1 Ejemplo 4 - B
Integrate A 1è!!!!!!!!!!!
1 − x2, 8x, 0, 1 <E
π
2 Ejemplo 4 - C
Integrate A 1
x − 2, 8x, 0, 2 <E
Integrate ::idiv :
Integral of1
−2 + xdoes not converge on 80, 2 <. More…
‡
0
2 1
−2 + x � x
Integrate[Exp[-x^2],{x,-1,1}]
è!!!!
π Erf @1D
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 42
En este ejemplo, Mathematica devuelve el valor exacto de la integral en
términos de la función Erf (que se denomina función error). Para obtener un valor aproximado se utiliza el comando N. COMANDO NINTEGRATE
El comando NIntegrate, calcula el valor aproximado de la integral de la expresión dada con respecto a la variable indicada en el intervalo [a, b ]. La sintaxis es:
}],,{var,[exp baiableresionNIntegrate Ejemplo 6: Calcular la integral del ejemplo 5 con el comando NIntegrate
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 continuación muestra un valor aproximado.
� NIntegrate: aplica fórmulas de integración numérica para calcular directamente un valor aproximado de la integral.
NOTA: las fórmulas de integración numérica que utiliza Mathematica al aplicar la instrucción 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
� x
xsen )( en ],1[ ∞
Su resolución en Mathematica es:
N[%] 1.49365 N[Integrate[Exp[-x^2],{x,-1,1}]] 1.49365
N[Integrate[Exp[-x^2],{x,-1,1}]] 1.49365
Integrate[(Sin[x]/x),{x,1, ∞}]
1
2Hπ − 2 SinIntegral @1DL
N[%] 0.624713 NIntegrate[(Sin[x]/x),{x,1, ∞}]
NIntegrate ::ncvb :
NIntegrate failed to converge to prescribed accuracy
after 7 recursive bisections in x
near x = 1.9939919252733317̀*̂ 19 . More… 1.39383
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 43
En la última expresión, el programa avisa que el resultado mostrado no es demasiado fiable y es distinto al resultado real. APLICACIÓNES 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 instrucción FilledPlot, cuya sintaxis es la siguiente:
}] , ,{ },[x] ],[[{ baxgxfFilledPlot Visualiza el área limitada por las curvas y=f(x) e y=g(x) en el intervalo [a, b].
}] , ,{ ],[[ baxxfFilledPlot Visualiza el área limitada por las curvas y=f(x) y el eje X en el intervalo [a, b]. Para utilizar la instrucción FilledPlot hay que cargar el paquete Graphics`FilledPlot` la sintaxis es la siguiente:
<< Graphics`FilledPlot` Ejemplo 8: Calcular el área limitada por la parábola y=x2-3x y el eje X en el intervalo [-1, 1]. El área viene dada por:
∫− −=1
1
2 3 dxxxA
<< Graphics`FilledPlot ̀ f[x_]:=x^2-3x FilledPlot[f[x],{x,-1,4}]
-1 1 2 3 4
-2
-1
1
2
3
4
-1 1 2 3 4
-2
-1
1
2
3
4
Solve[f[x] �0] {{x →0},{x →3}}
AbsA‡
−1
0f @xD �xE + AbsA‡
0
3f @xD �xE + AbsA‡
3
4f @xD �xE
49
6
area1 = ‡
−1
4Abs@f @xDD �x
49
6
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 44
Ejemplo 9: Calcular el área limitadas por las parábolas xxy 22 −= e 22 xxy −= en el intervalo [-1, 3]. Ejemplo 10: Calcular la longitud del arco de curva y=sen x en el intervalo ]2,0[ π . Longitud de un arco de curva: si f es una función en el intervalo [a, b], entonces la longitud del arco de curva y=f(x) en el intervalo [a, b] viene dada por:
∫ +=b
a
dxxfL 2))('(1
f[x_]:=Sin[x];Plot[Sin[x],{x,0,2Pi}]
1 2 3 4 5 6
-1
-0.5
0.5
1
‡
0
2 πè!!!!!!!!!!!!!!!!!!!!!!!!!!!1 + Hf' @xDL^2 �x
4è!!!!
2 EllipticE B 1
2F
N[%] 7.6404
f[x_]:=x^2-2x g[x_]:=2x-x^2 FilledPlot[{f[x],g[x]},{x,-1,3}]
-1 1 2 3
-3
-2
-1
1
2
3
-1 1 2 3
-3
-2
-1
1
2
3
�Graphics � Solve[f[x] �0] {{x →0},{x →2}}
a = AbsA‡−1
0Hf @xD − g@xDL �xE + AbsA‡
0
2Hf @xD − g@xDL �xE +
AbsA‡2
3Hf @xD − g@xDL �xE
8
area = ‡
−1
3Abs@f @xD − g@xDD �x
8
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 45
CAPITULO 8: CONCEPTOS DE PROGRAMACIÓN
Muchos métodos numéricos se basan en la iteración o repetición de unos determinados cálculos, con el objeto de aproximarse a la solución de un problema que no se pede resolver de forma exacta.
También es necesario, imponer condiciones a dichos cálculos, como criterios de parada, distinción de posibles casos en función 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 programación. LISTAS Una lista es una cadena de expresiones de la forma:
{expresión 1, expresión 2,………………, expresión n} Son de gran utilidad en los programas como medio de almacenamiento de datos. VARIABLES
Son los elementos fundamentales de la programación. Por medio de ellos, se asignan y cambian los valores que intervienen en los
programas y se almacenan datos. Los lenguajes de programación, 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 expresión que no sea un número, una palabra reservada del lenguaje o un comando.
Mathematica incorpora unos comandos especiales para simplificar el proceso de asignación en algunos casos específicos.
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 después de ser utilizada.
X- -
X ++
- - x ++x
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 46
Ejemplo 1: Sumar 2 con la variable x, pre-incrementar y post-incrementar la variable en distintas posiciones. OPERADORES BASICOS
! no
&& y
|| o Tabla 1: Funciones lógicas
Tabla 2: Signos de igualdad y desigualdad +var Var aumenta en 1 y devuelve el nevo valor
--var Var disminuye en 1 y devuelve el nuevo valor
Varr++ Devuelve var, y luego aumenta en 1
Var-- Devuelve var, y luego disminuye en 1
Var+=d Var aumenta en d y devuelve el nuevo valor
Var-=d Var disminuye en d y devuelve el nuevo valor
Var*=d Multiplica var por d y devuelve el nuevo valor
Var/=d Divide por d y devuelve el nuevo valor
Tabla 3: Símbolos para modificar valores
== Igual
!= No igual
<= Menor o igual
< Menor
>= Mayor o igual
> Mayor
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
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 47
DoAPrint An2E, 8n, 4 <E;
BUCLES
Un “bucle” es un proceso repetitivo que se realiza un cierto número de veces. Mathematica dispone de una gran cantidad de posibilidades que abarcan distintas situaciones que puedan plantearse.
� DO � WHILE � FOR
1. DO Sintaxis 1:
}]{,[exp nresionDo
Evalúa n veces la expresión.
Expresión: puede ser un solo comando, o una cadena de comandos, que se unen con el operador “;”. Cuando se evalúa una expresión que contiene el operador “;”, se evalúa cada uno de los comandos que forman la cadena, pero sólo se muestran en pantalla el resultado del último, así en la sintaxis anterior, la expresión no se limita a un solo comando sino que puede tener la complejidad y la cantidad de ellos que sea requerida. Sintaxis 2:
}],,,{,[exp maxmin diiiiresionDo
Evalúa repetidamente la expresión para cada uno de los valores de i comenzando por mini hasta maxi incrementándose sucesivamente en el valor de di . NOTA: en este comando pueden no especificarse las opciones di o mini , 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 números naturales iniciadas en 1, generar el bucle con Do.
1
4
9
16
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 48
2. WHILE Es un comando para repetir procesos controlados por una cierta condición. Sintaxis:
]exp,[ resioncondicionWhile
Evalúa expresión mientras la condición 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 iteración.
n = 1; suma = 0;
While Asuma< 100, suma += n3; n ++;
Print @"valor de n: ", n, " ", "suma = ", suma DE
valor de n: 2 suma= 1 valor de n: 3 suma= 9 valor de n: 4 suma= 36 valor de n: 5 suma= 100 3. COMANDO FOR
Permite programar tareas, en las que se necesita la repetición de un cierto proceso, con la evaluación paralela de ciertos procesos de control hasta que se verifique una condición determinada. La sintaxis de la orden es la siguiente:
]exp,,,[exp resionincrementocondicionialresioninicFor
• ialresioninicexp : Condición de comienzo del bucle. • condicion: Es el momento de parada, para detener el proceso. • incremento: Determinar el aumento de la condición inicial. • resionexp : Operación que se debe realizar en cada paso; la expresión puede estar compuesta de varias sentencias separadas mediante punto y coma. Ejemplo 5: Realizar un bucle con For, con la expresión inicial de i igual a 1, condición de parada cuando i sea menor o igual a 5, y realizar incremento del paso igual 2, para resolver la expresión i^3. For Ai = 1, i ≤ 5, i += 2,
Print A"Valor nuevo de i: ", i, " −− ", i 3EE Valor nuevo de i: 1 -- 1 Valor nuevo de i: 3 -- 27 Valor nuevo de i: 5 -- 125
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 49
FUNCIONES CONDICIONALES: SENTENCIA IF
Esta sentencia comprueba si se verifica una condición, después, si la condición es verdadera Mathematica ejecutará una expresión1, y si es falsa ejecutará otra expresión2. Su sintaxis es la siguiente:
]exp,exp,[ 21 resionresioncondicionIf
La expresiones 1 y 2 pueden estar formadas por varias órdenes separadas por
punto y coma. Cuando se habla de condición, se está hablando de una expresión 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 cum ple 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 cum ple la condicion, el valor es:",Part[m,1]] ] se cumple la condicion, el valor es: 6
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 50
Clear @g, x D;g@x_D: = Which Ax≤ −1,2 êx2,x ≤1, 2,x ≤2,2 êx2,x >2, Sin @5 Pi ê6+Pi Hx−2LDE;Plot @g@xD, 8x, −2, 4 <D;
-2 -1 1 2 3 4
-1
-0.5
0.5
1
1.5
2
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 condición 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 iteración 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 través de varias condiciones. Su sintaxis es la siguiente:
]exp,........,exp,exp,[ 211 nresionresionresioncondicionWhich
Evalúa consecutivamente las condiciones 1,2,……… hasta que encuentra una cierta y devuelve el valor de la expresión asociada. Colocando True como última condición, se consigue evaluar la última expresión si ninguna de las condiciones anteriores ha resultado cierta. Ejemplo 9: Controlar las siguientes condiciones utilizando el comando Which.
2))2(6/5()(
2/2)(
12)(
1/2)(
2
2
>>−−+=<=>−=
<=>−=−<=>−=
xxPiPiSenxf
xxxf
xxf
xxxf
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 51
CAPITULO 9: APLICACIÓN DE MÉTODOS
RAICES DE ECUACIONES
En este capítulo se exponen dos de los métodos destinados para la resolución de raíces de ecuaciones, construidos a partir de la utilización del lenguaje de programación provisto por el Matemática y que se han expuesto en los distintos capítulos anteriores. A continuación se exponen dos métodos:
� METODO DEL INTERVALO MEDIO � METODO DE NEWTON RAPHSON
Método del Intervalo Medio Ejemplo 1: Sea la ecuación 5)( 6 −+= xxxf en el intervalo [0, 2] y con un error de 10^-6. Definir en primer lugar la función, el intervalo y la exactitud. Luego calcular el número “P” de iteraciones (o pasos) necesarias, para a continuación llevar a cabo el cálculo de dichas aproximaciones, que se irán visualizando a medida que se van realizando los sucesivos cálculos. La resolución 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,i ≤n,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 )
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 52
14 -aprox: 1.246704102 (error< 0.00012207 ) 15 -aprox: 1.246643066 (error< 0.0000610352 ) 16 -aprox: 1.246612549 (error< 0.0000305176 ) 17 -aprox: 1.246627808 (error< 0.0000152588 )
18−aprox:1.246635437 Herror <7.62939 × 10−6L
19−aprox:1.246631622 Herror <3.8147 × 10−6L
20−aprox:1.246629715 Herror <1.90735 × 10−6L Método de Newton Raphson Ejemplo 2: Sea la función 5)( 3 −= xxf en el intervalo [1, 3]. Primero comprobar a través de los gráficos de )(xf , )(' xf y )('' xf en el intervalo [1, 3], que cumple las condiciones bajo las cuales el Teorema de Newton-Raphson asegura convergencia. La resolución en Mathematica es:
A continuación, se generan los términos de la sucesión de aproximaciones mediante el siguiente algoritmo. Comenzar con la definición de la función f, y el valor de la primera aproximación.
Inmediatamente después se define el algoritmo del método de Newton-Raphson, el cual brindará sucesivas aproximaciones. Se debe ingresar un límite iteraciones, en este ejemplo de 10 iteraciones.
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]
1.5 2 2.5 3
10
15
20
25
30
Primera derivada es igual a : 3 x 2
Segunda Derivada es igual a: 6 x
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 53
NOTA: Observar al ejecutar este grupo de comandos que ya en la sexta iteración se han “estabilizado” veinte cifras decimales de la solución. INTEGRACION DE ECUACIONES DIFERENCIALES - METODOS QUE COMIENZAN POR SI MISMOS Aunque un problema de valores iniciales, tenga una solución no siempre es posible obtener la función solución de forma explicita. Por lo tanto se debe recurrir a técnicas numéricas que nos brinde una solución aproximada. A continuación se exponen dos métodos:
� METODOS DE EULER � METODO DE RUNGE KUTTA
Método de Euler
Ejemplo 3: Utilizar el método de Euler, para resolver 2
*'
yxy = , siendo 1)0( =y , en
un intervalo [0,1], con pasos h=0.1 La resolución en Mathematica es:
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
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 54
Clear @f, x, a, b, dx, dy D
y@0D = 1;
f @x_, y_ D : = x ∗ yê2;
g@x_D : = �x24
plot1 = Plot @g@xD, 8x, 0, 1 <, AspectRatio → Automatic, DisplayFunction → Identity D;
s@0D = 0;
t @0D = 1;
pt @0D = Graphics @8PointSize @.04 D, Point @8s@0D, t @0D<D<D;
h = 0.1;
For @i = 1, i ≤ 10, i ++,
8s@i D = s@i − 1D + h;
t @i D = f @s@i − 1D, t @i − 1DD∗h + t @i −1D;
pt @i D = Graphics @8PointSize @.04 D, Point @8s@i D, t @i D<D<D;
<Du = Table @pt @j D, 8j, 0, 10 <D;
Print @"Nº", " x ", " aprox. ", "exacta ", "error " DFor @k = 1, k ≤ 10, k ++,
8Print @k, " ", s @kD, " ", t @kD, " ",
N@g@kê10D, 4 D, " ", HN@g@kê 10D, 4 D − t @kDL ê N@g@kê10D, 4 D∗100, "%" D<D
Show@8plot1, u <, AxesOrigin → 80, 0 <, PlotRange → 880, 1 <, 80, 1.5 <<,
DisplayFunction → $DisplayFunction, AspectRatio → Automatic D;
Nº x aprox. exacta error 1 0.1 1 1.003 0.2 % 2 0.2 1.005 1.010 0.499992 % 3 0.3 1.01505 1.023 0.753361 % 4 0.4 1.03028 1.041 1.01219 % 5 0.5 1.05088 1.064 1.27884 % 6 0.6 1.07715 1.094 1.5556 % 7 0.7 1.10947 1.130 1.84472 % 8 0.8 1.1483 1.174 2.14839 % 9 0.9 1.19423 1.224 2.46875 % 10 1. 1.24797 1.284 2.80787 %
0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
1.2
1.4
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 55
NOTA: el grafico muestra los puntos estimados por el Método d Euler. Para obtener mejores estimaciones, se debe decrementar h, la distancia entre dos valores sucesivos de x.
Método de Runge Kutta
Ejemplo 4: Utilizar el método de Runge Kutta, para resolver el ejemplo 3 2
*'
yxy = ,
bajo las mismas condiciones. La resolución en Mathematica es: Clear @x, y, f, i, h D;
f @x_, y_ D : = x ∗ y ê2;
g@x_D : = �x24 ;
plot2 = Plot @g@xD, 8x, 0, 1 <, AspectRatio → Automatic, DisplayFunction → Identity D;
numpts = 10;
h = 1ênumpts;
k1 = h ∗ f @x, y D;
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;
For Ax = 0, x ≤ 1.0, x = x + 0.1,
9s@i D = x;
t @i D = y;
pt @i D = Graphics @8PointSize @.04 D, Point @8s@i D, t @i D<D<D;
i ++;
Print Ax, " ", N @yD, " ",
�x24 , " ", Abs Ai
kjjjjy − �
x24y{zzzzE ì �
x24 ∗ 100, "%" E;
y = y + Hk1 + 2 k2 + 2 k3 + k4L ê6;
=Eu = Table @pt @j D, 8j, 0, 10 <DShow@8plot2, u <, AxesOrigin → 80, 0 <, PlotRange → 880, 1 <, 80, 1.5 <<,
DisplayFunction → $DisplayFunction, AspectRatio → Automatic D;
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 56
x aprox. exacta error 0 1. 1 0 % 0.1 1.0025 1.0025 1.62441 × 10−10% 0.2 1.01005 1.01005 1.63597 × 10−9% 0.3 1.02276 1.02276 5.90613 × 10−9% 0.4 1.04081 1.04081 1.5091 × 10−8% 0.5 1.06449 1.06449 3.26974 × 10−8% 0.6 1.09417 1.09417 6.46668 × 10−8% 0.7 1.13032 1.13032 1.20703 × 10−7% 0.8 1.17351 1.17351 2.15873 × 10−7% 0.9 1.22446 1.22446 3.72483 × 10−7% 1. 1.28403 1.28403 6.22204 × 10−7%
0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
1.2
1.4
NOTA: Al observar los resultados obtenidos, se puede apreciar que la solución exacta y la aproximada, coinciden exactamente en 5 lugares decimales.
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 57
CAPITULO 10: CONCLUSION
A modo de conclusión preliminar, se considera que la utilización de la
herramienta de software propuesta para el aprendizaje y desarrollo de los algoritmos
contribuirá en el conocimiento y la práctica de los alumnos.
Este caso experimental, se orienta al sector de los alumnos de carreras no
relacionados con informática, como lo son la Ingeniería Eléctrica y en Electrónica, el
Profesorado y Licenciatura en Matemática.
Con la implementación de este material didáctico 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
informáticas.
� 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 cálculos
utilizando una herramienta.
� Se demostró la capacidad de implementación en ordenadores de
algoritmos.
� Se trabajo con raíces de ecuaciones, pero en avances posteriores se
abarcarán problemas relacionados con la interpolación de funciones,
la derivación e integración numérica y la resolución de sistemas de
ecuaciones lineales y no lineales.
A futuro se continuara con el desarrollo del presente material, agregando
nuevos métodos y problemas de la vida real, que requieren de los mismos para su
solución.
Software Mathematica: “Su aplicación en los Métodos Numéricos”
Lic. Matoso Elizabet Alejandra 58
CAPITULO 11: BIBLIOGRAFIA
� Análisis Numérico. Burden y Faires. 7ma. Edición-.- Cencage Learning Editores. 2009.
� Curso avanzado de Métodos Numéricos.- A. Iglesias- Corrientes. 1998.
Métodos Numéricos – G. Pace – Editorial EUDENE -1997.
� Guía rápida para el nuevo usuario de Mathematica 5.0. Fedriani Martel E. y García Hernández Alfredo. Mayo 2.004. En http://www.eumed.net/cursecon/libreria/2004/ae-guia-math5.pdf.
� Métodos Numéricos con Mathematica. Garcia Raffil, Perez Peñalver M.J.,
Sanchez Pérez E. y Figueres Moreno M. Septiembre 2005. Alfaomega grupo editor S.A. México. ISBN: 970-15-0977-3.
� Métodos Numéricos con MATLAB.- Mathews y Fink. Ed. Prentice Hall.
2000.
� Métodos Numéricos para Ingenieros.- Chapra y Canale. Ed. McGraw Hill Interamericana. 2007.
� Problemas resueltos de Métodos Numéricos. Cordero Berbero, A. y otros.
2006. Paraninfo S.A. Madrid. España. ISBN: 84-9732-409-9.