INDICE - Facultad de Ciencias Exactas y Naturales y ...

44
UNNE - Cátedra: Análisis Numéricos Año: 2.009 1 INDICE CAPITULO 1: INTRODUCCIÓN A MATHEMATICA ................................................ 2 CAPITULO 2: FUNCIONES Y LISTAS ........................................................................ 7 CAPITULO 3: VECTORES Y MATRICES ................................................................. 11 CAPITULO 4: RESOLUCIÓN DE ECUACIONES Y SISTEMAS DE ECUACIONES ........................................................................................................................................ 18 CAPITULO 5: REPRESENTACION GRAFICA.......................................................... 22 CAPITULO 6: DERIVACIÓN E INTEGRACIÓN....................................................... 35 CAPITULO 8: APLICACIÓN DE MÉTODOS ............................................................ 42

Transcript of INDICE - Facultad de Ciencias Exactas y Naturales y ...

Page 1: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

1

INDICE

CAPITULO 1: INTRODUCCIÓN A MATHEMATICA................................................ 2 CAPITULO 2: FUNCIONES Y LISTAS ........................................................................7 CAPITULO 3: VECTORES Y MATRICES ................................................................. 11 CAPITULO 4: RESOLUCIÓN DE ECUACIONES Y SISTEMAS DE ECUACIONES........................................................................................................................................ 18 CAPITULO 5: REPRESENTACION GRAFICA.......................................................... 22 CAPITULO 6: DERIVACIÓN E INTEGRACIÓN....................................................... 35 CAPITULO 8: APLICACIÓN DE MÉTODOS ............................................................ 42

Page 2: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

2

CAPITULO 1: 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 esta compuesta por las siguientes partes:

� Notebook y Núcleo � Entradas y salidas � Celdas � Paletas

Page 3: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

3

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 podemos 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 4: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

4

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 5: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

5

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 ArcSin[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 Mathematica 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, debemos 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).

Por ejemplo; obtener el desarrollo de 123/9990 y de la raíz cuadrada de 3 con 20 cifras exactas.

Page 6: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

6

123/99

41

33 123./99 1.24242

123/99990

41

33330 N[123/99990] 0.00123012 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.

Observar las siguientes salidas: 123/99 y 123./99

Page 7: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

7

CAPITULO 2: 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: � 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: � x + 4

11 � 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.

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.

x=7 7 x+4 11 Clear[x] Print[x] x

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 8: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

8

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 escrito f[x]:=x^2 se habría asignado el valor x^2 al objeto f[x] en vez de a la función f y no entenderá, por ejemplo, f[3] ó f[y].

LISTAS

Son colecciones de objetos que son tratados como una entidad y constituyen una de las estructuras más importantes de Matemática.

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.

Page 9: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

9

� Prepend[lista, elemento nuevo]: sirve para añadir nuevos elementos al inicio de la lista.

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

l={5,2,6,1,9,0,4} {5,2,6,1,9,0,4} Sort[l] {0,1,2,4,5,6,9} Reverse[l] {4,0,9,1,6,2,5} Length[l] 7 Rest[l] {2,6,1,9,0,4} Drop[l,1] {2,6,1,9,0,4} Take[l,2] {5,2} Append[l,11] {5,2,6,1,9,0,4,11} Prepend[l,8] {8,5,2,6,1,9,0,4}

Page 10: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

10

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} Count[h,c] 1 Position[r,{a,b}] {{1}} Insert[r,d,1] {d,{a,b},c,d}

Insert[r,d,{1,2}] {{a,d,b},c,d} Delete[p,3] {2,4,0,3} ReplacePart[p,27,5] {2,4,-1,0,27} Join[h,r] {{2,8,-5},{a,b},c,{a,b},c,d} Union[h,r] {c,d,{a,b},{2,8,-5}} Intersection[h,r] {c,{a,b}} Plus@@p 8 Times@@p 0 Flatten[h] {2,8,-5,a,b,c} Partition[p,2] {{2,4},{-1,0}}

Page 11: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

11

CAPITULO 3: 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.

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 haremos Part[v,i] . Por ejemplo, el segundo elemento de v1 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

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

Page 12: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

12

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.

Mathematica no muestra el resultado en la forma de matriz que usualmente se observa. Para conseguir este formato, se utiliza la orden MatrixForm[matriz].

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.

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]

i

kjjjjj

1 2 5−2 5 71 0 3

y

{zzzzz

MatrixForm[b]

i

kjjjjj

1 1 16 3 21 −3 0

y

{zzzzz

Page 13: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

13

OPERACIONES

� SUMA: Para sumar matrices, si los órdenes lo permiten, se utiliza el signo +.

� PRODUCTO: El producto se realiza utilizando el punto y para obtener un formato matricial, utilizar MatrixForm:

Producto entre una Matriz y un vector:

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]

i

kjjjjj

1 2 5−2 5 71 0 3

y

{zzzzz

MatrixForm[b]

i

kjjjjj

1 1 16 3 21 −3 0

y

{zzzzz

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

i

kjjjjj

2 3 64 8 92 −3 3

y

{zzzzz

a.b {{18,-8,5},{35,-8,8},{4,-8,1}} MatrixForm[a.b]

i

kjjjjj

18 −8 535 −8 84 −8 1

y

{zzzzz

Page 14: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

14

Producto entre una matriz y un escalar:

Los siguientes comandos son los que nos permiten extraer elementos, filas, columnas y submatrices de una matriz:

� Para extraer el elemento (i,j)-ésimo de una matriz A, escribimos

� Para extraer la fila i-ésima

� Para obtener una submatriz de A el comando es:

� Para extraer la columna j-ésima

A[[All,j]] Sea la matriz A: Busquemos el elemento (2,3) de la matriz A definida anteriormente: Busquemos la fila segunda de la matriz A:

Busquemos la submatriz de A que tiene las filas (1,2) y las columnas (2,3):

MatrixForm[a.v1]

i

kjjjjj

202910

y

{zzzzz

MatrixForm[2a]

i

kjjjjj

2 4 10−4 10 142 0 6

y

{zzzzz

A[[2,3]] 6

A[[2]] {4,5,6}

i

kjjjjj

1 2 34 5 61 3 2

y

{zzzzz

Page 15: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

15

Busquemos la tercera columna de la matriz A 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] EJEMPLOS

� Definición de la matriz cuadrada ‘mat’

� Cálculo de la determinante de ‘mat’ para comprobar que no sea nulo, y poder

calcular la inversa.

A[[{1,2},{2,3}]] {{2,3},{5,6}}

A[[All,3]] {3,6,9} MatrixForm[%]

i

kjjjjj

369

y

{zzzzz

Det[mat] -15

mat={{1,3,4},{-1,0,1},{1,3,-1}} {{1,3,4},{-1,0,1},{1,3,-1}} MatrixForm[%]

i

kjjjjj

1 3 4−1 0 11 3 −1

y

{zzzzz

Page 16: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

16

� Cálculo de la matriz inversa de ‘mat’.

� Con el producto matricial, se comprueba que ‘inv’ es la inversa de ‘mat’, ya que el resultado es la matriz identidad.

� Definición de la matriz ‘g’. � Cálculo de la traspuesta de ‘g’.

� Definición de la matriz ‘h’. � Calculo de los autovalores de la matriz ‘h’.

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[%]

i

kjjjjj

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

i

kjjjjj

1 12 37 5

y

{zzzzz

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

Page 17: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

17

� Calculo de los autovectores de la matriz ‘h’.

vectores=Eigenvectors[h] {{-7,1,-5,5},{1,2,0,0},{-1,1,0,0},{-13,-37,3,1}} MatrixForm[%]

i

k

jjjjjjjjj

−7 1 −5 51 2 0 0−1 1 0 0−13 −37 3 1

y

{

zzzzzzzzz

Page 18: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

18

CAPITULO 4: RESOLUCIÓN DE ECUACIONES Y SISTEMAS DE ECUACIONES

Mathematica, puede resolver los tipos más comunes de ecuaciones y sistemas de

ecuaciones algebraicas, tanto de forma exacta (en el caso que se pueda) como de forma aproximada.

Los comando para resolver sistemas de ecuaciones son: � LinearSolve � Solve � FindRoot � NSolve

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: LinearSolve [matriz, b]

Sea el siguiente sistema de ecuaciones:

22

132

12

−=+−=++

=−+

zy

zyx

zyx

El planteamiento en 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.

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: Solve [ecuaciones, variables]

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

Page 19: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

19

Una ecuación, es el conjunto de dos expresiones relacionadas con el operador de igualdad (==). Sea el siguiente sistema:

02

12

1

=+=−

=+

zx

zy

yx

El planteamiento en 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.

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-2 z �1,x+2 z �0},{x,y,z}] {{x →-2 z,y →1+2 z}} %/.z →2 {{x →-4.,y →5.}}

Page 20: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

20

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. Sea la siguiente ecuación:

xex 3− El planteamiento en mathematica es:

Primero se realizo la gráfica, para observar los ceros de la función y determinar los puntos iniciales que necesita FindRoot para comenzar la búsqueda de las raíces. NSOLVE

El comando NSolve, resuelve 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:

NSolve[ecuación, variables]

Sea el siguiente sistema de ecuaciones:

2

22 1

xy

yx

==+

El planteamiento en mathematica es:

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]-3 x �0,{x,0}] {x →0.619061} FindRoot[Exp[x]-3 x �0,{x,1.5}] {x →1.51213}

Page 21: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

21

La cuarta solución en el resultado de NSolve, corresponde a la solución devuelta

por FindRoot.

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

FindRoot[{x^2+y^2 �1,y �x^2},{x,1},{y,1}] {x →0.786151,y →0.618034}

Page 22: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

22

CAPITULO 5: REPRESENTACION GRAFICA

Una de las grandes virtudes de Mathematica es lo fácil y completo que es su 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: Plot [ función , },,{ maxmin xxx , opciones]

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. Sean las siguientes funciones:

xxxf 5)( 2 += en el intervalo [-7, 7]

467)( 23 ++−= xxxxg en el intervalo [-10, 14] El planteamiento en Mathematica es:

Plot[x^2+5x,{x,-7,7}]

-6 -4 -2 2 4 6

10

20

30

40

50

�Graphics �

Page 23: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

23

NOTA:

� Como se puede ver, se puede escribir directamente la función a representar “dentro” del comando Plot. El inconveniente que tiene, es que cada vez que se necesita trabajar con esa función tenemos que volver a escribirla, siendo más conveniente utilizar nombres de función, por ejemplo xxxf 5)( 2 += ], y usar después el nombre (Plot[f[x],{x,0,4Pi}]).

� 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:

Plot [ {f1, f2,……,fn} , },,{ maxmin xxx , opciones]

Dibuja las n funciones conjuntamente para valores de x comprendidos entre minx

y maxx .

f[x_]:=x^2+5x; Plot[{f[x],g[x]},{x,-10,14}];

-10 -5 5 10

-200

200

400

g[x_]:=x^3-7^2+6x+4; Plot[g[x],{x,-10,14}]

-10 -5 5 10

-1000

1000

2000

�Graphics �

Page 24: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

24

OPCIONES DE PLOT

Cuando Mathematica realiza un gráfico, tiene que elegir cómo realizar la representación gráfica (escalas, ejes, origen, color, grosor de línea, etc). En muchas de las 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, por ejemplo Plot[], se puede incluir una secuencia de órdenes del tipo nombre->valor, para especificar el valor de varias de las opciones gráficas. 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.

� PlotRange >− {número1, número2}: Cuando Mathematica realiza un gráfico, trata de fijar unas escalas para x e y con la idea 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 las corta. Con la orden PlotRange podemos controlar el rango de variación para la x y la y. Los posibles valores para esta opción son:

* Automatic: muestra una gran parte de la gráfica incluyendo la parte " más interesante que aparecería por defecto”. * All : muestra todos los puntos (si es posible). * },{ maxmin yy : muestra un rango específico para los valores de y.

* },{ rangerange yx : muestra 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

�Graphics �

Page 25: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

25

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

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 26: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

26

2. GrayLevel[ i ]: indica la intensidad del gris, entre 0 (negro) y 1 (blanco). 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. 4. Hue[h,s,b]: especifica no solo el tono del color sino la “saturación” o contraste y el brillo. Tomando la saturación igual a 1 tenemos el color más profundo; haciendo decrecer este valor a 0 obtenemos progresivamente un color más "claro".

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

�Graphics �

Page 27: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

27

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. Mathematica también permite la opción AbsolutePointSize[d], que especifica el diámetro “absoluto” de los puntos, medidos en unidades fijas.

� AxesLabel >− {“etiqueta ejex”, “etiqueta ejey”}: incluye etiquetas para los

ejes x e y. La leyenda debe estar entre comillas.

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

ListPlot[lista,PlotStyle →AbsolutePointSize[5]]

1.5 2 2.5 3 3.5 4

3

4

5

6

7

Page 28: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

28

� Frame >− valor: enmarca el gráfico según el valor dado. True, enmarca y

False, no enmarca.

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

� PlotLabel >− {“etiqueta”}: incluye una etiqueta para el gráfico, el texto debe ir

entre comillas.

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 29: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

29

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. Introducimos una lista de datos de la siguiente forma: NOTA:

Para mostrar todos los puntos unidos por un segmento, se utiliza la opción PlotJoined, y el valor True.

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: Sean tres funciones:

3)(

3)(

cos)(

2 +=+=

=

xxh

senxxg

xxf

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 �

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]

0.5

1

Page 30: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

30

NOTA: Mathematica primero, hace las gráficas individuales y luego la superposición.

Page 31: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

31

Se puede mostrar los gráficos en diferentes posiciones mediante el comando GraphicsArray[]. * Muestra los gráficas en fila. * Muestra los gráficos en columna.

COMANDO PLOT3D

Representa gráficamente funciones reales de dos variables. La principal aplicación de la representación gráfica de una función de dos variables será dar una idea aproximada de la variación de dicha función, lo que será especialmente útil para buscar extremos. La sintaxis es la siguiente:

Plot3D [ función de x, y },,{ maxmin xxx , },{ maxmin yy ] Sea la siguiente función de dos variables:

)*(),( yxsenyxf = El planteamiento en mathematica es:

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

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

Page 32: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

32

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.

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

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 33: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

33

más “suave”, pero aumentará considerablemente el tiempo empleado por Mathematica para realizarlo.

� 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

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 →{0,-2,0}]

-2 0 2

-2 0 2

-1

-0.5

0

0.5

1

�SurfaceGraphics �

Show[grafico,ViewPoint →{1.3,-2.4,2}]

-2

0

2-2

0

2-1

-0.50

0.51

-2

0

2

Page 34: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

34

Page 35: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

35

CAPITULO 6: DERIVACIÓN E INTEGRACIÓN DERIVACIÓN Para calcular la derivada de una función podemos utilizar los símbolos de derivadas parciales que aparecen en la paleta BasicInput o directamente alguna de las siguientes órdenes D[f[x],x] Derivada (o derivada parcial) de f con respecto a x. D[f[x],{x,n}] Derivada parcial n-ésima de f con respecto a x. D[f[x1,x2,...],x1,x2,…] Derivada parcial de f con respecto a x1, x2, … Dt[ f] Diferencial total fd

Dt[ f,x] Derivada total fdx

d

La última de las tres funciones es válida para funciones de varias variables. Definamos una nueva función f y derivémosla:

x

xfD

xxxf

fClear

23

] x],[[

43:_][

][ 2

+−

+−=

También es posible calcular la derivada de una función con f'[x] .

2x3-

]['

+xf

Mathematica conoce las derivadas de todas las funciones matemáticas estándar.

2x1

1

x]],D[ArcTan[x

+

La tercera derivada con respecto a .

n3-

n

n x n)(-1 n)(-2

3}] {x, ,D[x+++

La función D[x^n,x] realmente da la derivada parcial, en la cual se asume que n no depende x. Mathematica tiene otra función, llamada Dt, que encuentra derivadas totales, en la cual todas las derivadas se asumen relacionadas. En notación matemática, D[f,x] es

como x

f

∂∂

, mientras Dt[f,x] es como dx

df

. Puede entenderse Dt como la “derivada total”.

Dt da una derivada total, asumiendo que n puede depender de x. Dt[n,x] representa dx

dn

.

Page 36: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

36

) Log[x] ] ,[(x

x],Dt[x

n

n

xnDtx

n +

Esto da la diferencial total )( nxd . Dt[x] es el diferencial dx .

) Log[x] ] ,[][

(x

]Dt[x

n

n

xnDtx

xDTn +

Así como trata variables simbólicamente, también puede tratar funciones simbólicamente en Mathematica. Así, por ejemplo, puede encontrar fórmulas para las derivadas de f[x], sin especificar una forma explícita para la función f. Mathematica no sabe como diferenciar f, así que le devuelve un resultado simbólico en términos de f'.

[x]'f'

x]D[f[x],

Mathematica utiliza la regla de cadena para simplificar derivadas.

]['4x]f[x 2

x]],f[xD[2x 222

2

xf+

INTEGRACIÓN 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

NOTA: la integral también se puede indicar mediante símbolos, con la paleta BasicInput. Ejemplo 1: calcular las siguientes integrales

� 132 −+ xx � )(xsen en el intervalo ],[ ππ−

Planteo en Mathematica Integrate[x^2+3x-1,x]

−x +

3 x2

2+

x3

3

Ÿ(x^2+3x-1) �x

Page 37: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

37

INTEGRALES IMPROPIAS

Para calcular integrales impropias se aplica la definición correspondiente, según se trate de integrales de 1º, 2º o 3º especie.

Mathematica, calcula directamente integrales impropias en el caso de que se trata de integrales convergentes y nos presenta un mensaje en aquellos casos en los que la integral no sea convergente. Ejemplo 2: calcular las siguientes integrales impropias

� xe− en el intervalo [0 , ∞ ]

� 21

1

x− en el intervalo [0 , 1]

� 2

1

−x en el intervalo [0 , 2]

Planteo en Mathematica VALOR APROXIMADO DE UNA INTEGRAL

Page 38: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

38

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 3: calcular la integral 2xe−

en [-1, 1] 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. NINTEGRATE

El comando NIntegrate, calcula el valor aproximado de una integral definida. Obtiene un 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 4: calcular la integral del ejemplo 3 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 acotadas. Por el contrario, si se aplica para calcular integrales impropias definidas en intervalos no acotados. Ejemplo 5: resolver la integral impropia con N y Nintegrate

� x

xsen )( en ],1[ ∞

Planteo en Mathematica

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

è!!!!

π Erf @1D

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

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

Page 39: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

39

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 intevalo [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` Ejemplo 6: 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

Ejemplo 7: Calcular el área limitadas por las parábolas xxy 22 −= e 22 xxy −= en el intervalo [-1 , 3]. Ejemplo 8: 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

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 40: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

40

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

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 41: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

41

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

1 2 3 4 5 6

-1

-0.5

0.5

1

�Graphics �

0

2 πè!!!!!!!!!!!!!!!!!!!!!!!!!!!1+ Hf' @xDL^2 �x

4è!!!!

2 EllipticE B 1

2F

N[%] 7.6404

Page 42: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

42

CAPITULO 8: APLICACIÓN DE MÉTODOS MÉTODO DEL INTERVALO MEDIO

Para obtener la “parte entera” de un número que está expresado en notación decimal, Mathematica tiene el comando Floor.

Para definir un algoritmo de cálculo de la sucesión de aproximaciones de este método mediante Mathematica , vamos a resolver como ejemplo la ecuación x^6 + x - 5 = 0 en el intervalo [0, 2].

Definir en primer lugar la función, el intervalo y la exactitud. Seguidamente 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 haciendo los sucesivos cálculos. MÉTODO DE NEWTON RAPHSON

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

Page 43: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

43

Este método nos proporciona un algoritmo para obtener una sucesión de aproximaciones.

Utilizar Mathematica para generar la sucesión de aproximaciones. Resolver de nuevo el ejemplo de x^3 - 5 = 0 en el intervalo [1, 3].

Podemos comprobar, dibujando las gráficas de f (x) = x^3 - 5, f´(x) y F”(x) en el intervalo [1, 3], que cumple las condiciones bajo las cuales el Teorema de Newton-Raphson asegura convergencia.

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; y=3; For[i=1,i ≤10,i=i+1,y1=N[y-f[y]/f'[y],20];Print[ i,"" "aprox:",y1];y=y1] 1 aprox: 2.1851851851851851852 2 aprox: 1.8058277563209096293 3 aprox: 1.714973662124987646 4 aprox: 1.709990496694423435 5 aprox: 1.709975946800500259 6 aprox: 1.709975946676696989 7 aprox: 1.70997594667669699 8 aprox: 1.70997594667669699 9 aprox: 1.70997594667669699 10 aprox: 1.7099759466766970

Page 44: INDICE - Facultad de Ciencias Exactas y Naturales y ...

UNNE - Cátedra: Análisis Numéricos Año: 2.009

44

Observar al ejecutar este grupo de comandos que ya en la sexta iteración se han “estabilizado” veinte cifras decimales de la solución.