63
Análisis Numérico para Ingeniería Clase Nro. 1

Análisis Numérico para Ingeniería - fi.mdp.edu.ar · El trabajo final, al igual que los parciales, ... suscribirse en para enviar consultas sobre temas de la …

Embed Size (px)

Citation preview

Análisis Numérico para Ingeniería

Clase Nro. 1

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 2

Integrantes de la Cátedra

Constanza R. Huapaya - Prof. Titular

Francisco A. Lizarralde - Prof. Adjunto

Francisco Alvarez - J.T.P.

Carla Mana - Ayte.Graduado

Silvana Echeverría - Ayte. Alumno

Ezequiel Ayarzábal - Ayte. Alumno

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 3

Evaluación y Régimen de Promoción

Se tomarán 2 (dos) exámenes parciales.

Los exámenes parciales serán teórico-prácticos.

En la parte práctica se evaluará la habilidad para

resolver problemas concretos en computadora.

Se deberá presentar un trabajo final integrador por

grupo, preferentemente de 3 integrantes.

El trabajo final, al igual que los parciales, son válidos

sólo durante la correspondiente cursada.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 4

Software para la asignatura

Entorno Integrado de Desarrollo GEANY *

Lenguaje FORTRAN (95/08) GFORTRAN *

Librerías especializadas BLAS * y LAPACK *

Gráficos y visualización de datos GNUPLOT *

(*) Software Libre.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 5

Qué significa Software Libre ?

NOT

FREE AS IN

Un Software es Libre, si respeta las 4 Libertades

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 6

Cómo obtengo dichas herramientas ?

Un CD auto-arrancable (LIVE CD) basado en la distribución SLAX, se encuentra a disposición de los alumnos, así como una versión para USB (consultar en la clase práctica cómo obtener las mismas). Es de destacar que la copia y distribución de Software Libre es totalmente legal.

Esta cátedra se encuentra fuertemente comprometida en el proceso de utilización, difusión y distribución de Software Libre, sobre todo en lo referente a las herramientas necesarias para la resolución de problemas en sus clases prácticas.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 7

Distribución SLAX

SLAX es una distribución

Libre basada en Slackware.

No requiere instalación.

Adaptada para nuestros

requerimientos.

Posee todos los programas

necesarios para el estudio

de nuestra asignatura.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 8

GEANY Integrated Development Environment

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 9

GFORTRAN Compilador y Bibliotecas

BLASBasic Linear Algebra Subprograms

LAPACKLinear Algebra Package

GFORTRAN

GNU FORTRAN

Compilador FORTRAN

Subrutinas especializadas

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 10

GNUPLOT Visualización de Resultados

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 11

Otras fuentes de información

En la página de la asignatura http://www3.fi.mdp.edu.ar/analisis

encontrarán enlaces con información sobre algunos temas,

bibliografía y novedades sobre fechas y horarios de consultas,

exámenes, etc.

Existe una lista de correo electrónico a la que pueden

suscribirse en http://www3.fi.mdp.edu.ar/analisis/lista/lista.htm para

enviar consultas sobre temas de la asignatura.

Consulten la página de FAQs. (Preguntas muy frecuentes)

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 12

Temas a tratar

Introducción al Análisis Numérico.

Errores Numéricos.

Representación de Números en Punto Flotante.

Errores en las Operaciones.

Introducción a FORTRAN.

Estructuras de Decisión y Repetición.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 13

Para qué sirve el Análisis Numérico ?

El Análisis Numérico nos permite abordar aquellos problemas que son extremadamente complicados, cuando no imposibles de resolver en forma analítica.

El principal objeto de estudio consiste en analizar diferentes métodos de resolución, para elegir el más adecuado para resolver cada problema en particular, y así lograr la exactitud necesaria de la solución.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 14

Que se estudia en Análisis Numérico ?

En el Análisis Numérico es muy importante el estudio de los errores, ya sean estos, de representación, de modelado ó inherentes a los métodos aplicados.

La elección del algoritmo y del modelo matemático, tienen gran influencia en el proceso de cálculo y el modo en que debemos interpretar los resultados obtenidos.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 15

Qué son las Soluciones Numéricas ?

A diferencia de las soluciones analíticas, no se espera que las soluciones numéricas sean exactas. Sino que podemos elegir la grado de aproximación de la solución, en función de nuestros requerimientos.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 16

Tipos de Error

Error de formulación del Modelo Matemático.

Error inherente al algoritmo. (Error sistemático)

Error de redondeo o truncamiento.

Error de representación numérica.

Error de las operaciones. (Error de

propagación)

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 17

Error Absoluto

Dado un número exacto x y un número aproximado X, el cual difiere ligeramente de x, llamamos error absoluto Δ(X) a:

X =∣x−X∣≤ X

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 18

Error Relativo

El error relativo de un número aproximado X, es la relación entre el error absoluto Δ(X) del número y el valor absoluto del número “exacto” x , para x ≠ 0.El error relativo permite independizar el error, de la magnitud de los valores.

δ(X )=∣x−X∣

∣x∣≤δX

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 19

Truncamiento

Truncar un número decimal x en el dígito correspondiente a 10d de su representación decimal consiste en reemplazar todos los dígitos a su derecha por ceros.

=3,14159265358979323846...

T7=3,1415926

Valor truncado en el 7mo. decimal

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 20

Redondeo

Redondear un número x>0 en el dígito 10d consiste en truncar el valor (x + 0.5 10d).

Si x<0 al redondear quedará como –|x| redondeado.

=3,14159265358979323846...

R7=3,1415927

Valor redondeado en el 7mo. decimal

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 21

Dígitos Significativos

El dígito más significativo de un número real x no nulo, es el dígito no nulo más a la izquierda de su expansión decimal.

Todos los dígitos, incluyendo los ceros a la derecha del dígito más significativo, son significativos y el último desplegado se llama dígito menos significativo.

Los ceros a la izquierda del dígito más significativo, no son significativos.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 22

Ejemplo de Dígitos Significativos

0,00724100

Cifras no significativas Cifras significativas

Dígito más significativo

Dígito menos significativo

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 23

Dígitos Significativos Exactos

Definición: Si X es un valor aproximado de un valor exacto x, se dice que X aproxima a x hasta el k-ésimo dígito significativo, si:

También se dice que X posee k dígitos significativos exactos.

∣X−x∣<12⋅10−k⋅∣x∣

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 24

Dígitos Significativos Exactos

La exactitud de los dígitos significativos puede expresarse en función de su error relativo.

δ(x)<12⋅10−k

O escrito de otra forma:

∣X−x∣∣x∣

<12⋅10−k

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 25

Dígitos Significativos Exactos

Ejemplo: ¿Cuántos dígitos significativos exactos tiene el nro. aproximado 7.649 con respecto al valor exacto 7.6483 ?

δ(x) = 0,0000915236 < 0,0005 =12⋅10−3

Por lo tanto, podemos ver que :

δ(x)=∣7.6483−7.649∣

7.6483=0,0000915236

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 26

Error de Representación

No siempre es posible almacenar en una computadora los valores exactos.

La representación aproximada de los valores exactos se suele denominar números de máquina.

La diferencia entre el valor exacto y su representación se denomina error inherente a la representación, ó simplemente error de representación.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 27

Error de RepresentaciónNúmeros Reales

0 +∞­∞

0

Máximo Positivo

MáximoNegativo

MínimoPositivo

MínimoNegativo

Representación Numérica en Computadora

ValoresRepresentados

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 28

Error de Representación

Una variable de tipo REAL de 4 bytes (32 bits), posee los siguientes rangos:

Máximo Positivo: 3.4028235E+38Máximo Negativo: -3.4028235E+38

Mínimo Positivo: 1.1754944E-38Mínimo Negativo: -1.1754944E-38

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 29

Representación Numérica

Los números reales se almacenan en la computadora en forma binaria, como números de punto flotante. ( Signo, Mantisa y Exponente )

Actualmente la mayoría de las computadoras representa los valores numéricos de acuerdo a la definición del IEEE-754 Floating Point Numbers Standard.

Un número real de simple precisión ocupa 32 bits, mientras que uno de doble precisión ocupa 64 bits de memoria.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 30

Números en Punto Flotante

Un número de máquina consta de 3 partes:

SIGNO

EXPONENTE

MANTISA

SIGNO EXPONENTE MANTISA

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 31

Conversión de Decimal a Binario

Conversión de un número decimal con |x| > 1 al sistema binario. Ejemplo: x = 23

23 2 1 11 2 1 5 2 1 2 2 0 1

(10111)2 = 1x24 + 0x23 + 1x22 + 1x21 + 1x20 =

= 16 + 0 + 4 + 2 + 1 = (23)10

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 32

Conversión de Decimal a Binario

Conversión de un número decimal con |x| < 1 al sistema binario. Ejemplo: x = 0.125

(0.001)2 = 0x2-1 + 0x2-2 + 1x2-3 =

= 0 + 0 + 0.125 = (0.125)10

0.125 x 20.25 x 20.5 x 21.0

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 33

Conversión de Decimal a Binario

No siempre un nro. decimal exacto puede convertirse en un nro. binario exacto. Ejemplo: x = 0.1

0.1 x 20.2 x 20.4 x 20.8 X 21.6

0.6 x 21.2

0.2 x 20.4 x 20.8 x 21.6

Continúo con laparte fraccionaria

Continúo con laparte fraccionaria

(0.1)10

= (0.000110011001100......)2

Número Binario Periódico

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 34

Representación en Punto FlotanteRepresentación del valor 0.15625, según el IEEE-754 Floating Point Numbers Standard

SIGNO EXPONENTE MANTISA

(−1)SIGNO

∗(1.MANTISA)2∗2(EXPONENTE−127)

−10∗1.012∗2124−127

1∗1.2510∗2−3=

1.258

=0.15625

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 35

Representación en Punto Flotante

SIGNO EXPONENTE MANTISA

−1SIGNO

∗1.MANTISA 2∗2EXPONENTE−127

−11∗1.1101101012∗2133−127

−1∗1.85351562510∗26=1.853515625∗64=−118,625

Representación del valor -118.625, según el IEEE-754 Floating Point Numbers Standard

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 36

Condicionamiento de una Función

Se dice que el cálculo del valor de una función f(x) está bien condicionado (ó es numéricamente estable), si la exactitud hallada en el valor calculado f(x) es aproximadamente igual a la de x.

En el caso contrario, se dice que el cálculo del valor de una función está mal condicionado, o bien que f(x) está mal condicionada.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 37

Condicionamiento de una Función

¿Qué variación porcentual en f(x) = ex resultará de un cambio del 1% en x ?

Para x = 0,1; x = 10 y x = -10

0,01x %

0,1 1,1051709 0,001 1,1062766 0,0010005 0,10%

10 22026,466 0,1 24343,009 0,1051709 10,52%

-10 4,54E-005 -0,1 4,11E-005 0,0951626 9,52%

x ex ex+0,01x δ(eX)

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 38

Nro. de Condición de una Función

∣δ f (X )∣≈C∗∣δ X∣

C=∣X∗f ' X ∣

∣f X ∣

Siendo el Número de Condición C:

El error relativo de una función es proporcional al error relativo de la variable:

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 39

Nro. de Condición de una Función

∣δ f (X )∣≈C⋅∣δ X∣=10⋅∣0.01∣=0.1≈10 %de X

C=∣X⋅f ' (X )∣

∣f (X )∣=

∣10⋅eX∣

∣eX∣

=10

Número de condición de ex (para x = 10):

Por lo tanto:

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 40

Errores en las Operaciones

Adición Insignificante.

Cancelación Sustractiva.

Amplificación del Error.

Redondeo Escondido.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 41

Errores en las Operaciones

u 122,9572 123 -0,0428

124,1498 124,1 0,0498

0,014973 0,01497 0,000003

457932 457900 32

Operando con (4s)

458056,1498 458024,1 458100

122,942227 122,98503 122,9

56852166,2136 56825390 56850000

8211,92814 8216,43287 8212

-1,1926 -1,1 -1,1926

V.Exacto V.Almacenado (4s) E.de Representación

v

w

z

R.Exacto R.Redondeado (4s)

v+z

u-w

v*z

u/w

u-v

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 42

Adición Insignificante

La adición insignificante se produce cuando se suman o restan dos números de magnitudes muy diferentes entre sí.

Esto produce que el valor resultante sea aproximadamente igual al mayor de los valores, siendo el menor valor, prácticamente despreciado.

Por ejemplo, la suma de una serie cuyos términos vayan reduciendo su valor, hará que a medida que la suma crezca, los términos más pequeños no alterarán el resultado.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 43

Cancelación Sustractiva

La cancelación sustractiva ó catastrófica, se produce cuando se restan dos valores muy similares entre sí.

Esto hace que la diferencia entre los valores exactos, sea muy diferente a la diferencia entre los valores representados, resultando en un error realmente devastador

Un ejemplo se presenta al intentar hallar los valores de las raíces de una ecuación de segundo grado.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 44

Amplificación del Error

La amplificación del error se produce cuando se multiplica un valor por un número muy grande, ó cuando se lo divide por un número muy pequeño.

En ambos casos el error inherente de representación aumenta considerablemente.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 45

Redondeo Escondido

Es el error en el k-ésimo dígito significativo de las operaciones de máquina, el mismo se produce aún cuando los valores se hallen redondeados correctamente a ks.

La acumulación de este error, en el último dígito significativo, se va produciendo lentamente.

Una estrategia para minimizar la propagación de errores es minimizar la cantidad de operaciones.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 46

Lenguaje FORTRAN

FORTRAN es un lenguaje de programación de alto nivel de propósito general, procedural e imperativo, que está especialmente adaptado para el cálculo numérico y la computación científica. Su nombre hace referencia al Mathematical Formula Translating System, desarrollado originalmente por IBM en 1957 para el equipo IBM 704. Siendo ampliamente utilizado desde entonces en aplicaciones científicas y de ingeniería.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 47

John Backus

John Backus (Filadelfia, 3 de diciembre de 1924 - Oregón, 17 de marzo de 2007) dirigió el proyecto de IBM que dió origen al Lenguaje FORTRAN.

En 1977 ganó el Turing Award por sus trabajos en sistemas de programación de alto nivel, en especial por su trabajo con FORTRAN.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 48

Tipos de Datos en FORTRAN

INTEGER

REAL

COMPLEX

LOGICAL

CHARACTER

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 49

INTEGER

El tipo de datos INTEGER se utiliza para almacenar valores enteros.

Su rango de valores posibles está determinado por la cantidad de bytes establecida.

Un INTEGER de 4 bytes (32 bits) puede almacenar valores dentro del rango de:

–2147483648 a 2147483647

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 50

REAL

El tipo de datos REAL se utiliza para almacenar valores reales.

Un REAL de 4 bytes (32 bits) puede almacenar valores dentro del rango de:

1.1754944E–38 a 3.4028235E+38

-3.4028235E+38 a -1.1754944E–38

y de

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 51

LOGICAL

El tipo de datos LOGICAL se utiliza para

almacenar valores lógicos.

Sólo pueden almacenarse dos posibles

valores, .TRUE. y .FALSE.

FORTRAN está preparado para realizar

operaciones lógicas con este tipo de datos,

utilizando operadores lógicos, .AND. , .OR. ,

.NOT., etc.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 52

COMPLEX

El tipo de datos COMPLEX se utiliza para

almacenar números complejos.

El mismo consiste en un par ordenado de

números reales.

FORTRAN está preparado para realizar

operaciones complejas con este tipo de

datos en forma totalmente transparente

para el programador.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 53

CHARACTER

El tipo de datos CHARACTER se utiliza por lo

general para almacenar letras ó palabras.

Si no se especifica el tamaño asume que se

trata de un sólo caracter.

Para almacenar palabras ó frases es necesario

especificar la cantidad de caracteres, para

reservar el espacio de memoria necesario.

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 54

Los operadores intrínsecos se utilizan para operar sobre los tipos de datos intrínsecos.

ARITMETICOS:

RELACIONALES:

Operadores Intrínsecos

.EQ. .NE. .GT. .GE. .LT. .LE. == /= > >= < <=

SUMA RESTA PRODUCTO DIVISIÓN POTENCIA + - * / **

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 55

Estructura de un programa FORTRAN

[ PROGRAM nombre del programa ]

[ sección de especificación]

[ sección ejecutable]

[ sección de sub-programas internos]

END [ PROGRAM [ nombre de programa ] ]

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 56

IF

IF (a < b ) THEN aux = a a = b b = auxEND IF

Ejemplo:

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 57

IF ELSE

Ejemplo:

IF (leftCornerX < 0) THEN leftCornerX = 0ELSE aux = leftCornerX leftCornerX = rightCornerX rightCornerX = auxEND IF

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 58

IF ELSE IF

IF (kWatts < 50) THEN costo = 30ELSE IF (kWatts < 100) THEN costo = 20+ 0.5*kWattsELSE IF (kWatts < 150) THEN costo = 15+ 0.3*kWattsELSE IF (kWatts < 200) THEN costo = 5+ 0.2*kWattsELSE costo = 0.15*kWattsEND IF

Ejemplo:

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 59

SELECT CASE

Ejemplo: SELECT CASE (kWatts) CASE (:49) costo = 30 CASE (50:99) costo = 20 + 0.5*kWatts CASE (100:149) costo = 15 + 0.3*kWatts CASE (150:199) costo = 5 + 0.2*kWatts ELSE costo = 0.15*kWattsEND SELECT

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 60

DO

Ejemplo:DO fila=1, maxFilas, 2 DO col=1, maxCols, 3 matriz(fila, col) = fila+2*col END DOEND DO

Ejemplo:

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 61

DO WHILE

Ejemplo:

DO WHILE (sigue /= 'n') WRITE (*, 'Desea continuar ?') READ(*,''), sigueEND DO

Ejemplo:

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 62

PREGUNTAS ...

Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2014 63

CUESTIONES PARA INVESTIGAR...

¿Cuántos dígitos significativos exactos tiene el número aproximado 0.0027 con respecto al número exacto 0.00265 ?

¿ Cuál es el número más cercano a 2.0, que puede almacenarse en una variable REAL(8) ? ¿Por qué ?

¿ Qué significan estas sentencias en FORTRAN ? CEILING, CMPLX, CONJG, DBLE, DIGITS, EPSILON, FLOOR, HUGE, INT, PRECISION, REAL, SPACING, TINY.

¿ Qué diferencias existen entre las estructuras IF-THEN-ELSE y SELECT CASE ? Escriba un ejemplo en el que noten claramente.