mathematica 2011

58
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

Upload: kilber-garcia

Post on 31-Dec-2014

68 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Mathematica 2011

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

Page 2: Mathematica 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

Page 3: Mathematica 2011

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

Page 4: Mathematica 2011

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.

Page 5: Mathematica 2011

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

Page 6: Mathematica 2011

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.

Page 7: Mathematica 2011

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.

Page 8: Mathematica 2011

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).

Page 9: Mathematica 2011

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.

Page 10: Mathematica 2011

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

Page 11: Mathematica 2011

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

Page 12: Mathematica 2011

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

Page 13: Mathematica 2011

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}

Page 14: Mathematica 2011

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}}

Page 15: Mathematica 2011

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

Page 16: Mathematica 2011

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

Page 17: Mathematica 2011

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

Page 18: Mathematica 2011

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

Page 19: Mathematica 2011

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

Page 20: Mathematica 2011

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

Page 21: Mathematica 2011

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

Page 22: Mathematica 2011

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}

Page 23: Mathematica 2011

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.}}

Page 24: Mathematica 2011

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}

Page 25: Mathematica 2011

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 �

Page 26: Mathematica 2011

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

Page 27: Mathematica 2011

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

Page 28: Mathematica 2011

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 �

Page 29: Mathematica 2011

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

Page 30: Mathematica 2011

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

Page 31: Mathematica 2011

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 <

Page 32: Mathematica 2011

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 �

Page 33: Mathematica 2011

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

Page 34: Mathematica 2011

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 �

Page 35: Mathematica 2011

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

Page 36: Mathematica 2011

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 �

Page 37: Mathematica 2011

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 �

Page 38: Mathematica 2011

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 �

Page 39: Mathematica 2011

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.

Page 40: Mathematica 2011

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

Page 41: Mathematica 2011

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

Page 42: Mathematica 2011

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

Page 43: Mathematica 2011

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

Page 44: Mathematica 2011

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

Page 45: Mathematica 2011

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

Page 46: Mathematica 2011

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

Page 47: Mathematica 2011

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

Page 48: Mathematica 2011

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

Page 49: Mathematica 2011

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

Page 50: Mathematica 2011

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

Page 51: Mathematica 2011

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 )

Page 52: Mathematica 2011

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

Page 53: Mathematica 2011

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

Page 54: Mathematica 2011

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

Page 55: Mathematica 2011

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;

Page 56: Mathematica 2011

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.

Page 57: Mathematica 2011

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.

Page 58: Mathematica 2011

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.