UNIVERSIDAD
~~ NACIONAL
DE COLOMBIA
Sede Bogotá
colección textos
HÉCTOR MANUEL MORA ESCOBAR
es Matemático e Ingeniero Civil de la Universidad
Nacional de Colombia. En la Université de Nancy en '
Francia obtuvo el DEA, Diplóme d'Études Approfondies, y
el Doctorat de 3eme Cycle en Matemáticas Aplicadas.
Desde 1975 es docente de la Universidad Nacional de
Colombia, actualmente se desempeña como Profesor
Titular del Departamento de Matemáticas. Ha publicado
varios libros y artículos sobre optimización, métodos
numéricos y prospectiva. Es miembro de las siguientes
sociedades: Sociedad Colombiana de Matemáticas, Society
for Industrial and Applied Mathematics, Societé de
Mathématiques Appliquées et Industrielles, Mathematical
Progamming Society y Sociedad Colombiana de
Investigación de Operaciones.
Introducción a e
y a métodos numéricos
Héctor Manuel Mora Escobar
Profesor del Departamento de Matemáticas
Facultad de Ciencias, Universidad Nacional de Colombia
Introducción a e
y a métodos numéricos
Universidad Nacional de Colombia
FACULTAD DE CIENCIAS
BOGOTÁ
© Universidad Nacional de Colombia
Facultad de Ciencias
Departamento de Matemáticas y Estadística
© Héctor Manuel Mora Escobar
Primera edición, 2004
Bogotá, Colombia, 2004
UNIBIBLOS
Director general
Ramón Fayad Naffah
Coordinaci6n editorial
Dora Inés Perilla Castillo
Revisi6n editorial
Osear Torres
Preparaci6n editorial e impresi6n
Universidad Nacional de Colombia, Unibiblos
[email protected]
Carátula
Camilo Umaña
ISBN 958-701-363-8
ISBN 958-701-138-4
(obra completa)
Catalogación en la publicación Universidad Nacional de Colombia
Mora Escobar, Héctor Manuel, 1953-
Introducción a C y a métodos numéricos 1 Héctor Manuel Mora Escobar -
Bogotá: Universidad Nacional de Colombia. Facultad de Ciencias, 2004
408 p.
ISBN: 958-701-363-8
1. Análisis numérico 2.C (Lenguaje de programación para computadores)
3. Matemáticas aplicadas
CDD-21 519.41 M827in 1 2004
A Hélfme, Nicolás y Sylvie
A Hélfme, Nicolás y Sylvie
A Hélfme, Nicolás y Sylvie
,
Indice general
Prólogo
1. Introducción
2. Generalidades
2.1. El primer programa
2.2. Editar, compilar, ejecutar
2.2.1. g++ . . . . .
2.2.2. bcc32 ... .
2.2.3. Thrbo C++ .
2.2.4. Visual C++ .
2.2.5. Dev-C++
2.3. Comentarios. .
2.4. Identificadores
2.5. Tipos de datos
2.6. Operador de asignación
2.7. Operadores aritméticos.
2.8. Prioridad de los operadores aritméticos .
2.9. Abreviaciones usuales
2.10. Funciones matemáticas
2.11. Entrada de datos y salida de resultados
2.12. Conversiones de tipo en expresiones mixtas
2.13. Moldes . . . . . . . . . .
. . . . . . .
III
IX
1
5
6
9
10
10
11
12
14
15
16
19
21
22
24
26
27
30
35
36
ÍNDICE GENERAL
3. Estructuras de control
3.1. if . . . . . . . . . .
3.2. Operadores relacionales y lógicos
3.3. for ..
3.4. while
3.5. do while
3.6. switch.
3.7. break
3.8. continue
3.9. goto y exi t
4. Funciones
4.1. Generalidades
4.2. Funciones recurrentes
4.3. Parámetros por valor y por referencia
4.4. Parámetros por defecto . . . . . . .
4.5. Variables locales y variables globales
4.6. Sobrecarga de funciones
4.7. Biblioteca estándar
5. Arreglos
5.1. Arreglos unidimensionales
5.2. Arreglos multidimensionales
5.3. Cadenas . . . . . . . . .
5.4. Inicialización de arreglos
6. Apuntadores
6.1. Apuntadores y arreglos unidimensionales .
6.2. Apuntadores a apuntadores
. . . . . . .
6.3. Apuntadores y arreglos bidimensionales
6.4. Matrices y arreglos unidimensionales
6.5. Arreglos aleatorios . . . . . . . .
6.6. Asignación dinámica de memoria
IV
41
41
45
48
51
54
57
58
60
61
67
67
75
76
81
82
83
85
87
87
94
98
· 103
109
· 111
· 116
· 116
· 117
· 129
· 131
ÍNDICE GENERAL
6.7. Matrices y apuntadores dobles
6.8. Arreglos a partir de 1. . . . .
7. Lectura y escritura en archivos
7.1. fopen, fscanf, fclose, fprintf
7.2. feof
7.3. Algunos ejemplos
8. Temas varios
8.1. sizeof.
8.2. const
8.3. typedef
8.4.
include
8.5. define.
8.6. Apuntadores a funciones
8.7. Funciones en línea
8.8. Argumentos de la función main
9. Estructuras
9.1. Un ejemplo con complejos
9.2. Un ejemplo típico. . . . .
10. Algunas funciones elementales
10.1. Código de algunas funciones.
10.2. Versiones con saltos
10.3. Método burbuja. . .
11. Solución de sistemas lineales
11.1. Notación. . . . . .
11.2. Métodos ingenuos.
11.3. Sistema diagonal
.
11.4. Sistema triangular superior
11.4.1. Número de operaciones
11.4.2. Implementación en C
v
· 135
· 139
143
· 144
· 148
· 150
157
157
159
· 159
· 161
164
165
169
171
175
175
181
183
184
190
194
199
· 199
.200
.202
.202
.203
.204
ÍNDICE GENERAL
11.5. Sistema triangular inferior. . .
11.6. Método de Gauss . . . . . . . .
11.6.1. Número de operaciones
11.6.2. Implementación en C
11.7. Factorización LU . . . . . . .
11.8. Método de Gauss con pivoteo parcial.
11.9. Factorización LU=PA . . . . . . . .
11.10. Método de Cholesky . . . . . . . .
11.10.1. Matrices definidas positivas
11.10.2. Factorización de Cholesky
.
11.10.3. Número de operaciones de la factorización
11.10.4. Solución del sistema ...
11.11. Método de Gauss-Seidel . . . . .
11.12. Solución por mínimos cuadrados.
11.12.1. Derivadas parciales .
11.12.2. Ecuaciones normales
12. Solución de ecuaciones
12.1. Método de Newton ..
12.1.1. Orden de convergencia.
12.2. Método de la secante . .
12.3. Método de la bisección . . . . .
12.4. Método de Regula Falsi
. . . .
12.5. Modificación del método de Regula Falsi
12.6. Método de punto fijo . . . . . . . . . . .
12.6.1. Método de punto fijo y método de Newton
12.7. Método de Newton en lRn
.
12.7.1. Matriz jacobiana . . . . . .
12.7.2. Fórmula de Newton en lRn .
.
.
.
.
13. Interpolación y aproximación
13.1. Interpolación
. . . . . . .
13.2. Interpolación de Lagrange
VI
. 206
. 206
. 211
. 213
. 215
. 217
. 223
. 227
. 227
. 229
. 235
. 237
. 239
. 245
. 246
. 247
255
.257
. 262
. 263
. 267
. 268
. 270
. 272
. 278
. 279
. 280
. 280
285
. 287
. 289
ÍNDICE GENERAL
13.2.1. Algunos resultados previos
13.2.2. Polinomios de Lagrange . .
13.2.3. Existencia, unicidad y error
13.3. Diferencias divididas de Newton. .
13.3.1. Tabla de diferencias divididas
13.3.2. Cálculo del valor interpolado
13.4. Diferencias finitas. . . . . . . . . . .
.
13.4.1. Tabla de diferencias finitas
13.4.2. Cálculo del valor interpolado
13.5. Aproximación por mínimos cuadrados
14. Integración y diferenciación
14.1. Integración numérica. . . .
14.2. Fórmula del trapecio . . . .
14.2.1. Errores local y global
14.3. Fórmula de Simpson . . . . .
14.3.1. Errores local y global
14.4. Otras fórmulas de Newton-Cotes
14.4.1. Fórmulas de Newton-Cotes abiertas
14.5. Cuadratura de Gauss. . . . . .
14.5.1. Polinomios de Legendre
14.6. Derivación numérica
. .
15. Ecuaciones diferenciales
. . . .
15.1. Método de Euler
15.2. Método de Heun
. . . .
15.3. Método del punto medio
15.4. Método de Runge-Kutta .
15.5. Deducción de RK2
. . . .
15.6. Control del paso
. . . . .
15.7. Orden del método y orden del error.
15.7.1. Verificación numérica del orden del error.
. . . . . . . . . . .
15.8. Métodos multipaso explícitos
VII
. 289
. 290
. 291
. 293
. 296
. 298
. 302
. 302
. 304
. 306
313
. 313
. 314
. 317
. 319
. 320
. 325
. 325
. 326
. 331
. 332
337
. 338
. 341
. 344
. 347
. 350
. 353
. 359
. 360
. 362
ÍNDICE GENERAL
15.9. Métodos multipaso implícitos
. . . . . . . .
15.10. Sistemas de ecuaciones diferenciales. . . .
15.11. Ecuaciones diferenciales de orden superior
15.12. Ecuaciones diferenciales con condiciones de frontera
15.13. Ecuaciones lineales con condiciones de frontera. ..
A. Estilo en e
A.1. Generalidades .
A.2. Ejemplo . . . .
A.3. Estructuras de control
. 366
. 371
. 373
. 376
. 379
389
. 389
. 393
. 395
VIII
ÍNDICE GENERAL
15.9. Métodos multipaso implícitos
. . . . . . . .
15.10. Sistemas de ecuaciones diferenciales. . . .
15.11. Ecuaciones diferenciales de orden superior
15.12. Ecuaciones diferenciales con condiciones de frontera
15.13. Ecuaciones lineales con condiciones de frontera. ..
A. Estilo en e
A.1. Generalidades .
A.2. Ejemplo . . . .
A.3. Estructuras de control
. 366
. 371
. 373
. 376
. 379
389
. 389
. 393
. 395
VIII
ÍNDICE GENERAL
15.9. Métodos multipaso implícitos
. . . . . . . .
15.10. Sistemas de ecuaciones diferenciales. . . .
15.11. Ecuaciones diferenciales de orden superior
15.12. Ecuaciones diferenciales con condiciones de frontera
15.13. Ecuaciones lineales con condiciones de frontera. ..
A. Estilo en e
A.1. Generalidades .
A.2. Ejemplo . . . .
A.3. Estructuras de control
. 366
. 371
. 373
. 376
. 379
389
. 389
. 393
. 395
VIII
Prólogo
El propósito de este libro es presentar los conceptos más importantes
del lenguaje C y varios temas de métodos numéricos. También están
algunos temas sencillos y muy útiles de C++.
Está dirigido principalmente, pero no de modo exclusivo, para el cur
so Programación y Métodos Numéricos que deben tomar los estudiantes
de las carreras de Matemáticas y de Estadística en la Universidad
Comentarios de: Introducción a C y a métodos numéricos (1)