clase_01

Anuncio
Análisis Numérico
para Ingeniería
Clase Nro. 1
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
2
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
3
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
4
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
5
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
6
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
7
Software para la asignatura
GEANY *
GFORTRAN *
Entorno Integrado de Desarrollo
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
8
GEANY
Ing. Francisco A. Lizarralde
Integrated Development Environment
Facultad de Ingeniería - UNMDP - 2016
9
GFORTRAN
Compilador y Bibliotecas
GFORTRAN
Compilador
FORTRAN
GNU FORTRAN
LAPACK
Bibliotecas de
Funciones
Especializadas
Linear Algebra Package
BLAS
Basic Linear Algebra Subprograms
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
10
GNUPLOT
Ing. Francisco A. Lizarralde
Visualización de Resultados
Facultad de Ingeniería - UNMDP - 2016
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
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
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 - 2016
13
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
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 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
15
Qué es un Error de Modelado ?
Plataforma petrolífera Sleipner A
Modelado de Elementos Finitos
de los tanques de flotación
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
16
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
17
Aplicación del Modelado Numérico
El 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
18
Diferencia entre Precisión y Exactitud
Precisión
Un valor es preciso cuando su dispersión con
respecto a otros valores similares que
representan dicho valor es baja.
Exactitud
Un 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
19
Diferencia entre Precisión y Exactitud
Preciso y Exacto
Preciso pero no Exacto
Exacto pero no Preciso
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
Ni Preciso ni Exacto
20
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
21
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:
Cota
Cotade
deError
ErrorAbsoluto
Absoluto
  X =∣x− X∣≤ X
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
22
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.
Cota
Cotade
deError
ErrorRelativo
Relativo
∣x− X∣
δ ( X )=
≤δ X
∣x∣
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
23
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...
Valor truncado en el 7mo. decimal
 T7 =3,1415926
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
24
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...
Valor redondeado en el 7mo. decimal
 R7 =3,1415927
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
25
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
26
Ejemplo de Cifras Significativas
Dígito menos significativo
Dígito más significativo
0,00724100
Cifras no significativas
Ing. Francisco A. Lizarralde
Cifras significativas
Facultad de Ingeniería - UNMDP - 2016
27
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:
−k
∣X− x∣ < 5⋅10 ⋅∣x∣
También se dice que X posee k dígitos
significativos exactos.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
28
Dígitos Significativos Exactos
La exactitud de los dígitos significativos puede
expresarse en función de su error relativo.
∣X− x∣
−k
< 5⋅10
∣x∣
O escrito de otra forma:
−k
δ (x) < 5⋅10
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
29
Dígitos Significativos Exactos
Ejemplo: ¿Cuántos dígitos significativos exactos
tiene el nro. aproximado 2.7183 con respecto al
valor exacto 2.71828182845904 ?
∣2,71828182845904−2,7183∣
−6
δ (x)=
=6,7536⋅10
2,71828182845904
Por lo tanto, podemos ver que :
−6
δ (x) = 6,7536⋅10
Ing. Francisco A. Lizarralde
−5
< 5⋅10
Facultad de Ingeniería - UNMDP - 2016
30
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
31
Error de Representación
Representación de los Números Reales
­∞
+∞
0
Representación Numérica en Computadora
Mínimo
Negativo
Mínimo
Positivo
0
Máximo
Negativo
Ing. Francisco A. Lizarralde
Valores
Representados
Facultad de Ingeniería - UNMDP - 2016
Máximo
Positivo
32
Error de Representación
Una variable de tipo REAL de 4 bytes (32 bits),
posee los siguientes rangos:
Máximo Positivo: 3.4028235E+38
Máximo Negativo: -3.4028235E+38
Mínimo Positivo:
Mínimo Negativo:
Ing. Francisco A. Lizarralde
1.1754944E-38
-1.1754944E-38
Facultad de Ingeniería - UNMDP - 2016
33
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
34
Números en Punto Flotante
Un número de máquina consta de 3 partes:
SIGNO
EXPONENTE
MANTISA
SIGNO EXPONENTE
Ing. Francisco A. Lizarralde
MANTISA
Facultad de Ingeniería - UNMDP - 2016
35
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
36
Conversión de Decimal a Binario
Conversión de un número decimal con |x| < 1
al sistema binario. Ejemplo: x = 0.125
0.125
x2
0.25
x2
0.5
x2
1.0
(0.001)2 = 0x2-1 + 0x2-2 + 1x2-3 =
= 0 + 0 + 0.125 = (0.125)10
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
37
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
x2
0.2
x2
0.4
x2
0.8
X2
1.6
Continúo con la
parte fraccionaria
Continúo con la
parte fraccionaria
0.6
x2
1.2
(0.1)10 = (0.000110011001100......)2
Ing. Francisco A. Lizarralde
0.2
x2
0.4
x2
0.8
x2
1.6
Número Binario Periódico
Facultad de Ingeniería - UNMDP - 2016
38
Error de Representación Numérica
El 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
39
Representación Normalizada IEEE-754
Representación del valor 0.15625, según el IEEE-754 Floating Point Numbers Standard
(−1)
SIGNO
( EXPONENTE−127)
∗(1.MANTISA)2∗2
0
124−127
−1 ∗1.012∗2
−3
1∗1.2510∗2
SIGNO EXPONENTE
Ing. Francisco A. Lizarralde
1.25
=
=0.15625
8
MANTISA
Facultad de Ingeniería - UNMDP - 2016
40
Representación Normalizada IEEE-754
Representación del valor -118.625, según el IEEE-754 Floating Point Numbers Standard
−1
SIGNO
 EXPONENTE−127 
∗1.MANTISA 2∗2
1
−1 ∗1.1101101012∗2
133−127
6
−1∗1.85351562510∗2 =1.853515625∗64=−118,625
SIGNO EXPONENTE
Ing. Francisco A. Lizarralde
MANTISA
Facultad de Ingeniería - UNMDP - 2016
41
Representación de ±∞ y NaN
Ciertas operaciones pueden producir
resultados particulares:
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.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
42
NaN - Not a Number
Existen tres casos de operaciones
que generan NaN:
Operaciones en las que al menos un
operando es un NaN.
Indeterminaciones
Operaciones con números reales que dan
como resultado un valor complejo.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
43
NaN - Indeterminaciones
Las divisiones 0/0 y ±∞/±∞
Las multiplicaciones 0×±∞ y ±∞×0
Las 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
44
NaN - Operaciones con Reales
Operaciones con Reales que dan como
resultado un valor complejo:
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.
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
45
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
46
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)=
5
5
= 0.17396x10 + 0,00000473 x10 =
5
= 0.17396x10
Adición Insignificante
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
47
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)=
2
2
= 0.32171x10 − 0.32171x10 =
2
= 0.00000x10 = 0
Sustracción Catastrófica
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
48
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
49
Consideraciones sobre las Operaciones
Cuando 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
50
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
51
Nro. de Condición de una Función
El error relativo de una función es proporcional al
error relativo de la variable:
∣δ f ( X )∣≈C∗∣δ X∣
Siendo el Número de Condición C:
∣X∗f '  X ∣
C=
∣f  X ∣
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
52
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
x
ex
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%
Ing. Francisco A. Lizarralde
ex+0,01x
Facultad de Ingeniería - UNMDP - 2016
δ(eX)
%
53
Nro. de Condición de una Función
Número de condición de ex (para x = 10):
X
∣X⋅f ' ( X )∣ ∣10⋅e ∣
C=
=
=10
X
∣f ( X )∣
∣e ∣
Por lo tanto:
∣δ f ( X )∣≈C⋅∣δ X∣=10⋅∣0.01∣=0.1≈10 % de X
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
54
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
55
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
56
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
57
Tipos de Datos en FORTRAN
INTEGER
REAL
COMPLEX
LOGICAL
CHARACTER
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
58
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
59
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:
-3.4028235E+38 a -1.1754944E–38
y de
1.1754944E–38 a 3.4028235E+38
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
60
LOGICAL
El tipo de datos LOGICAL
se utiliza para
almacenar valores lógicos.
Sólo
pueden
almacenarse
dos
posibles
para
realizar
valores, .TRUE. y .FALSE.
FORTRAN
está
preparado
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
61
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
62
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
63
Operadores Intrínsecos
Los operadores intrínsecos se utilizan para
operar sobre los tipos de datos intrínsecos.
ARITMETICOS:
+
-
*
/
**
SUMA RESTA PRODUCTO DIVISIÓN POTENCIA
RELACIONALES:
.EQ. .NE. .GT. .GE. .LT. .LE.
==
/=
>
>= < <=
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
64
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
programa ] ]
Ing. Francisco A. Lizarralde
[
Facultad de Ingeniería - UNMDP - 2016
nombre
de
65
IF
Ejemplo:
IF (a < b ) THEN
aux = a
a=b
b = aux
END IF
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
67
IF ELSE
Ejemplo:
IF (leftCornerX < 0) THEN
leftCornerX = 0
ELSE
aux = leftCornerX
leftCornerX = rightCornerX
rightCornerX = aux
END IF
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
68
IF ELSE IF
Ejemplo:
IF (kWatts < 50) THEN
costo = 30
ELSE IF (kWatts < 100) THEN
costo = 20+ 0.5*kWatts
ELSE IF (kWatts < 150) THEN
costo = 15+ 0.3*kWatts
ELSE IF (kWatts < 200) THEN
costo = 5+ 0.2*kWatts
ELSE
costo = 0.15*kWatts
END IF
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
69
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*kWatts
END SELECT
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
70
DO
Ejemplo:
DO fila=1,
maxFilas, 2
Ejemplo:
DO col=1, maxCols, 3
matriz(fila, col) = fila+2*col
END DO
END DO
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
71
DO WHILE
Ejemplo:
Ejemplo:
DO WHILE (sigue /= 'n')
WRITE (*, 'Desea continuar ?')
READ(*,''), sigue
END DO
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
72
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
73
PREGUNTAS ...
Ing. Francisco A. Lizarralde
Facultad de Ingeniería - UNMDP - 2016
74
Descargar