análisis numérico para ingeniería
TRANSCRIPT
Análisis Numérico para Ingeniería
Clase Nro. 1
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 2
Integrantes de la Cátedra
Francisco A. Lizarralde - Profesor Adjunto
Carla Mana - J.T.P.
Francisco Alvarez - J.T.P.
Ezequiel Ayarzábal - Ayte. Graduado
Lucas Sánchez Fellay - Ayte. Graduado
Belén Posadas - Ayte. Alumno
Ignacio Hegoburu - Ayte. Alumno
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 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 de 3 integrantes.
El trabajo final, al igual que los parciales, sólo serán
válidos durante la correspondiente cursada.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 4
Por qué utilizar Software Libre ?
Nuestra cátedra se encuentra fuertemente comprometida con 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.
Entre otras razones, porque tanto la copia como la distribución de Software Libre es totalmente legal.
Los productos del Software Libre, no pertenecen a una empresa en particular, sino a toda una comunidad de desarrolladores y usuarios, en la que todos podemos participar.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 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 - 2016 6
Sistemas Operativos Libres
Existe una amplia variedad de Sistemas Operativos Libres
GNU/Linux. (Se denominan Distribuciones)
Si desean una instalación completa y sencilla, Ubuntu es una
excelente opción,
Si su computadora no es muy potente pueden optar por una
distribución más liviana como Ubuntu MATE.
Una vez instalado, le pueden cargar los programas que
usamos en la asignatura, Geany, GFortran, GnuPlot, etc.
Si no desean instalar nada, pueden usar la distribución SLAX.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 7
Sistema Operativo SLAX
SLAX es un Sistema Operativo Libre, derivado de Slackware.
Existen dos versiones, una Live-CD y otra USB, por lo que no requiere instalación.
Tenemos una versión adaptada con todos los programas necesarios para el estudio de nuestra asignatura.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 8
Software para la asignatura
GEANY * Entorno Integrado de Desarrollo
GFORTRAN * Lenguaje FORTRAN (95/08)
BLAS * y LAPACK * Librerías Especializadas
GNUPLOT * Gráficos y Visualización de Datos
(*) Software Libre.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 9
GEANY Integrated Development Environment
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 10
GFORTRAN Compilador y Bibliotecas
BLASBasic Linear Algebra Subprograms
LAPACKLinear Algebra Package
GFORTRAN
GNU FORTRAN
Compilador FORTRAN
Bibliotecas de Funciones Especializadas
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 11
GNUPLOT Visualización de Resultados
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 12
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
Todas las consultas sobre temas de la asignatura se realizarán
en esta lista, por lo que no se responderán por otro medio.
Existe una página de FAQs. (Preguntas muy frecuentes)
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 13
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 - 2016 14
Cuál es el objetivo del Análisis Numérico ?
El principal objeto de estudio del Análisis Numérico, consiste en el análisis del funcionamiento interno de los métodos numéricos, con el objetivo de saber elegir el más adecuado para resolver cada problema en particular, y así lograr una solución con la exactitud requerida.
Los métodos numéricos nos permiten abordar aquellos problemas que son extremadamente complicados, cuando no imposibles de resolver en forma analítica.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 15
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 modelado, de representación, ó 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 - 2016 16
Qué es un Error de Modelado ?
Modelado de Elementos Finitos de los tanques de flotación
Plataforma petrolífera Sleipner A
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 17
Qué es un Error de Modelado ?El 23 de agosto de 1991, la plataforma petrolífera Sleipner A propiedad de la empresa noruega Statoil, que se encontraba situada en el mar del Norte a 82 metros de profundidad, se hundió. La causa del error fue un modelado numérico de elementos finitos incorrecto de la plataforma. Esto produjo una fuga de agua en una de las paredes de uno de los 24 tanques de aire de 12 metros de diámetro que permitía la flotación de la plataforma de 57000 toneladas de peso, que además, soportaba a más de 200 personas y el equipamiento de extracción con un peso adicional de unas 40000 toneladas. Las bombas de extracción de agua no fueron capaces de evacuar toda el agua. La falla representó un costo total de 700 millones de euros.Para el modelado de los tanques de la plataforma se utilizó el programa de elementos finitos NASTRAN y una aproximación mediante un modelo elástico lineal. Esta aproximación no era correcta, lo que produjo una subestimación de un 47% de los esfuerzos que debían soportar las paredes de los tanques. Por esta razón, ciertas paredes fueron diseñadas con un grosor insuficiente. Un análisis posterior al accidente, utilizando un modelado numérico correcto, demostró que el diseño de la plataforma provocaría fugas en algunos de los tanques cuando ésta estuviese sobre agua, a 62 metros de profundidad.La fuga real se produjo cuando la plataforma estaba sobre agua, a 65 metros de profundidad, lo cual explica perfectamente la causa de la falla.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 18
Aplicación del Modelado NuméricoEl 12 de junio de 2000 se cerró el paso de personas por el famoso puente Millenium Bridge) en Londres, sólo dos días después de su inauguración. El Millenium Bridge es un puente de acero de 325 m. construido para permitir el paso de peatones sobre el río Támesis. La causa de la clausura: Una vibración lateral mucho mayor que la esperado debido a un fenómeno denominado excitación lateral síncrona.
Luego de realizar un modelado numérico y experimentar con diversos escenarios, se ensayaron diferentes soluciones hasta determinar la más adecuada para corregir el problema.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 19
Diferencia entre Precisión y Exactitud
PrecisiónUn valor es preciso cuando su dispersión con respecto a otros valores similares que representan dicho valor es baja.
ExactitudUn valor es exacto cuando su diferencia con el valor teórico es prácticamente nula.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 20
Diferencia entre Precisión y Exactitud
Preciso y Exacto Preciso pero no Exacto
Exacto pero no Preciso Ni Preciso ni Exacto
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 21
Tipos de Error
Error de representación numérica.
Error de redondeo o truncamiento.
Error de formulación del Modelo Matemático.
Error inherente al algoritmo.
Error de las operaciones.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 22
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
Cota de Error AbsolutoCota de Error Absoluto
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 23
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
Cota de Error RelativoCota de Error Relativo
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 24
Truncamiento
Truncar un número decimal x en el dígito correspondiente a 10(-d) de su representación decimal consiste en reemplazar todos los dígitos a la derecha de ese dígito, por ceros.
π=3,14159265358979323846...
T7=3,1415926
Valor truncado en el 7mo. decimal
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 25
Redondeo
Redondear un número x>0 en el dígito 10(-d) consiste en truncar el valor ( x + 0.5 10(-d) ).
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 - 2016 26
Cifras Significativas
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 - 2016 27
Ejemplo de Cifras Significativas
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 - 2016 28
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∣ < 5⋅10−k⋅∣x∣
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 29
Dígitos Significativos Exactos
La exactitud de los dígitos significativos puede expresarse en función de su error relativo.
δ(x) < 5⋅10−k
O escrito de otra forma:
∣X−x∣∣x∣
< 5⋅10−k
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 30
Dígitos Significativos Exactos
Ejemplo: ¿Cuántos dígitos significativos exactos tiene el nro. aproximado 2.7183 con respecto al valor exacto 2.71828182845904 ?
δ(x) = 6,7536⋅10−6 < 5⋅10−5
Por lo tanto, podemos ver que :
δ(x)=∣2,71828182845904−2,7183∣
2,71828182845904=6,7536⋅10−6
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 31
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 - 2016 32
Error de Representación
Representación de los Nú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 - 2016 33
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 - 2016 34
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 - 2016 35
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 - 2016 36
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 - 2016 37
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 - 2016 38
(0.1)10
= (0.000110011001100......)2
Número Binario Periódico
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
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 39
Error de Representación NuméricaEl 25 de febrero de 1991, durante la guerra del Golfo, una batería de misiles Patriot norteamericanos en Dharan (Arabia Saudita) no logró interceptar un misil Scud iraquí. Como consecuencia murieron 28 soldados norteamericanos. La causa: La acumulación de errores numéricos relacionados con la representación numérica del tiempo transcurrido.
Como la batería llevaba más de 100 horas en actividad, este error acumulado produjo una diferencia de 0.34seg, en la determinación del tiempo, lo que a la velocidad de 6000 km/h que viaja el misil representa una diferencia de medio kilómetro con respecto a la posición del objetivo.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 40
Representación Normalizada IEEE-754
Representació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 - 2016 41
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
Representación Normalizada IEEE-754
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 42
Representación de ±∞ y NaN
Un valor ±∞ se representa con el máximo exponente y todos los bits de la mantisa iguales a cero.
Un valor NaN (Not a Number) se representa con el máximo exponente y al menos un bit de la mantisa distinto de cero.
Ciertas operaciones pueden producirresultados particulares:
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 43
NaN - Not a Number
Operaciones en las que al menos un operando es un NaN.
Indeterminaciones
Operaciones con números reales que dan como resultado un valor complejo.
Existen tres casos de operaciones que generan NaN:
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 44
NaN - Indeterminaciones
Las divisiones 0/0 y ±∞/±∞Las multiplicaciones 0×±∞ y ±∞×0Las sumas ∞ + (−∞), (−∞) + ∞ y las restas equivalentes.El standard, posee además funciones alternativas para el cálculo de potencias:La función pow standard y el exponente entero pown definen 00, 1∞, and ∞0 as 1.La función powr define a las tres formas indeterminadas anteriores como operaciones inválidas y por lo tanto retorna NaN.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 45
NaN - Operaciones con Reales
La raíz cuadrada de un número negativo.
El logaritmo de un número negativo.
La inversa del seno ó coseno de un número que es menor que −1 ó mayor que +1.
Operaciones con Reales que dan como resultado un valor complejo:
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 46
Errores en Adiciones y Sustracciones
Para sumar (o restar) números en punto flotante, se igualan los exponentes, se suman (o restan) las mantisas, y finalmente, se normaliza el resultado (se representa nuevamente como número en punto flotante).
Si se suman dos números en punto flotante, cuyas magnitudes son muy diferentes, el menor de ellos, prácticamente no es tenido en cuenta.
Si se restan dos números en punto flotante, cuyas magnitudes son muy similares, la representación del resultado es prácticamente cero.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 47
Error en la Adición
Ejemplo:Sumar los números 17396 y 0,473 y expresar el resultado en el mismo formato. Para simplificar, utilizaremos un formato decimal, en punto flotante normalizado con mantisa de 5 dígitos.
fl(x+ y) = fl(x)+fl ( y)=
= 0.17396x105+ 0,00000473 x105=
= 0.17396x105
Adición Insignificante
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 48
Error en la Sustracción
Ejemplo:Restar los números 32,17197 y 32,17110 y expresar el resultado en el mismo formato. Para simplificar, utilizaremos un formato decimal, en punto flotante normalizado con mantisa de 5 dígitos.
fl(x− y) = fl (x)−fl( y)=
= 0.32171x102− 0.32171x102= = 0.00000x102
= 0
Sustracción Catastrófica
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 49
Errores en la Multiplicación y el Cociente
Para multiplicar (o dividir) números en punto flotante, se multiplican (o dividen) las mantisas, se suman (o restan )los exponentes, y finalmente, se normaliza el resultado (se representa nuevamente como número en punto flotante).
La multiplicación de un número por otro de gran magnitud produce una amplificación del error existente en el primero.
El cociente de un número por otro muy pequeño también produce una amplificación del error. En ambos casos el error de representación aumenta considerablemente.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 50
Consideraciones sobre las OperacionesCuando se realizan operaciones con números en punto flotante, es importante siempre tener en cuenta que:
fl(x) ≠ x fl(x+ y) ≠ x+ y fl (x− y) ≠ x− y fl(x∗y) ≠ x∗y fl(x / y) ≠ x / y
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 51
Error producido al calcular una Función
Se dice que el cálculo del valor de una función f(x) está bien condicionado (o es numéricamente estable), si la exactitud hallada en el valor calculado f(x) es aproximadamente igual a la de x.
En 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 - 2016 52
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 - 2016 53
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 - 2016 54
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 - 2016 55
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 - 2016 56
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 - 2016 57
Por qué usar FORTRAN ?
A diferencia de una aplicación como MATLAB™, MATHCAD™, MATHEMATICA™, etc., un lenguaje de programación como FORTRAN no depende de un solo fabricante, sino que existen muchas versiones disponibles.
Posee una sintaxis muy similar a otros lenguajes conocidos como PASCAL o C, pero está especialmente diseñado para realizar cálculos numéricos intensivos con gran precisión.
Existe una amplia variedad de bibliotecas de funciones que resuelven diversas problemáticas de Ingeniería.
Está disponible en diversas plataformas (Sistemas Operativos), y se puede usar tanto en computadoras de escritorio como en Mainframes con procesamiento paralelo.
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 58
Tipos de Datos en FORTRAN
INTEGER
REAL
COMPLEX
LOGICAL
CHARACTER
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 59
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 - 2016 60
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 - 2016 61
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 - 2016 62
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 - 2016 63
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 - 2016 64
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 - 2016 65
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 - 2016 67
IF
IF (a < b ) THEN aux = a a = b b = auxEND IF
Ejemplo:
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 68
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 - 2016 69
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 - 2016 70
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 - 2016 71
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 - 2016 72
DO WHILE
Ejemplo:
DO WHILE (sigue /= 'n') WRITE (*, 'Desea continuar ?') READ(*,''), sigueEND DO
Ejemplo:
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 73
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 1.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.
¿ Por qué la representación de números en punto flotante normalizado es discreta ?
Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2016 74
PREGUNTAS ...