FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU
Views 106 Downloads 25 File size 2MB
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
PROYECTO FINAL DE SEMESTRE
NOTA
MÉTODOS NUMÉRICOS – ETN-505 ETN ALUMNO: 1650435 QUIMBERT MONTES DIEGO ENRIQUE CATEDRÁTICO: LIC. VIRGINIA ZOTA UÑO PARALELO: ETN-505 505 “A”
4o SEMESTRE
INGENIERIA ELECTRÓNICA FECHA: JUNIO 2011 La Paz - Bolivia “Así también Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecerá por segunda vez, sin relación con el pecado, para salvar a los os que le esperan” HEBREOS 9:28 Página 1
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
INDICE 1. INTRODUCCION
4
2. OBJETIVOS
5
2.1. OBJETIVO GENERAL
5
2.2. OBJETIVOS ESPECIFICOS
5
3. MARCO TEORICO
6
4. METODOS NUMERICOS EN LA PLATAFORMA C++
7
4.1. EXPONENCIAL DE CUALQUIER NÚMERO
7
4.2. RAÍZ CUADRADA DE CUALQUIER NÚMERO
8
4.3. RAIZ N-ÉSIMA DE CUALQUIER NUMERO
9
4.4. RESOLUCION NUMERICA DE ECUACIONES NO LINEALES
10
4.4.1.
M. DE LA BISECCION “B. WEIRSTRASS”
10
4.4.2.
M. DE LA FALSA POSICION “REGULA FALSI”
12
4.4.3. M. DE LA FALSA POSICION MODIFICADA
14
4.4.4.
M. DE LA SECANTE
17
4.4.5.
M. DE NEWTON – RAPHSON
18
4.4.6.
M. DE LA SECANTE MODIFICADA
19
4.5. RESOLUCION NUMERICA DE SISTEMA DE ECUACIONES LINEALES 4.5.1.
M. ITERATIVO DE JACOBI
20
4.5.2.
M. ITERATIVO DE GAUSS – SEIDEL
22
4.5.3.
M. DE LA RELAJACION “M. SOUTHWELL”
24
4.6. DIFERENCIAS FINITAS 4.6.1.
DIFERENCIAS FINITAS DE AVANCE “DELTA”
4.7. INTERPOLACION PILINOMICA
26 26 27
4.7.1.
NEWTON – GRAGORY, HACIA ADELANTE
27
4.7.2.
NEWTON – GREGORY, HACIA ATRÁS
28
4.7.3.
POLINOMIO DE GAUSS DE AVANCE
29
4.7.4.
POLINOMIO DE GAUSS DE RETROCESO
31
4.7.5.
FORMULA DE STIRLING
33
4.7.6.
FORMULA DE BESSEL
38
“Así también Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecerá por segunda vez, sin relación con el pecado, para salvar a los que le esperan” HEBREOS 9:28 Página 2
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
4.8. DIFERENCIACION NUMERICA 4.8.1.
FORMULA DE NEWTON GREGORY DE AVANCE 4.8.1.
4.8.2.
DE PRIMER ORDEN
FORMULA DE STIRLING
4.9. INTEGRACION NUMERICA 4.9.1.
CASO CONTINUO
40 40 40 41 45 45
4.9.1.
SUMA DE RECTANGULOS
45
4.9.2.
SUMA DE TRAPECIOS
46
4.9.3.
METODO DE SIMPSON
47
4.9.2.
CASO DISCRETO: FORMULA DE NEWTON – COTES 4.9.2.1.
SIMPSON 1/3
48
4.9.2.2.
SIMPSON 3/8
49
4.9.3.
CUADRATURA GAUSSIANA
51
4.9.4
METODO DE ROMBERG
51
4.10. ECUACIONES DIFERENCIALES ORDINARIAS 4.10.1. METODO DE EULER
54 54
4.10.2. METODO DE EULER MEJORADO, METODO DE HEUN 4.10.3. METODO DE TAYLOR
55
56
4.10.4. METODO DE RUNGE – KUTTA DE SEGUNDO ORDEN
57
4.10.5. METODO DE RUNGE - KUTTA DE CUARTO ORDEN
58
4.10.6. METODO PREDICTOR CORRECTOR
59
5. CONCLUSIONES
60
6. ANEXOS
61
“Así también Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecerá por segunda vez, sin relación con el pecado, para salvar a los que le esperan” HEBREOS 9:28 Página 3
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
7. INTRODUCCION
A lo largo de la historia de la matemática, se han desarrollado maneras mas automáticas o programadas para realizar cálculos, todo esto empezó con la creación de calculadoras las cuales simplificaban mucho al momento de realizar operaciones aritméticas complicadas, la tecnología fue incrementando de manera exponencial a partir de ese instante, hasta que llegamos a la era de la computación, y este trabajo justamente esta enfocado a realizar programas de distintos métodos numéricos, orientado en la plataforma de Borland C, el presente documento no es apto para instruir en la matemática al lector, por eso es recomendable que se tengan conocimientos de CALCULO I, CALCULO II, ECUACIONES DIFERENCIALES, ALGEBRA LINEAL, como materias base para poder entender los distintos programas realizados. En el CD adjunto, se encuentran todos los “ejecutables”, de los programas aquí presentados. Se tocaran temas como: Las raíces de una ecuación en un intervalo dado, diferencias finitas de un conjunto de datos, diferenciación numérica, integración numérica, ecuaciones diferenciales ordinarias, sistema de ecuaciones diferenciales ordinarias, y en la parte de anexos algunos programas de uso muy útil como es el graficador de funciones en 2D, y programas realizados en MATLAB también muy útiles al momento de analizar un análisis matemático. Esperando que el documento sea de gran ayuda para muchos estudiantes de ingeniería en general interesados en la programación y en los métodos numéricos.
Gracias… Diego Enrique Quimbert Montes Universidad Mayor de San Andrés Bolivia - La Paz – 2011
“Así también Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecerá por segunda vez, sin relación con el pecado, para salvar a los que le esperan” HEBREOS 9:28 Página 4
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
8. OBJETIVOS
8.1. OBJETIVO GENERAL •
Poder desarrollar de manera clara y ordenada los programas de distintos métodos numéricos, orientado a la plataforma Borland C.
8.2. OBJETIVOS ESPECIFICOS •
Desarrollar las sintaxis de los distintos programas presentados en el CD.
•
Hacer un uso muy rico de las distintas librerías existentes en el Compilador
“Así también Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecerá por segunda vez, sin relación con el pecado, para salvar a los que le esperan” HEBREOS 9:28 Página 5
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
9. MARCO TEORICO 1
Esquema general de un computador Un ordenador es un sistema capaz de almacenar y procesar con gran rapidez una gran cantidad de información. Además, un ordenador tiene capacidad para comunicarse con el exterior, recibiendo datos, órdenes y programas como entrada (por medio del teclado, del ratón, de un disquete, etc.), y proporcionando resultados de distinto tipo como salida (en la pantalla, por la impresora, mediante un fichero en un disquete, etc.). Los computadores modernos tienen también una gran capacidad de conectarse en red para comunicarse entre sí, intercambiando mensajes y ficheros, o compartiendo recursos tales como tiempo de CPU, impresoras, lectores de CD-ROM, escáneres, etc. En la actualidad, estas redes de ordenadores tienen cobertura realmente mundial, y pasan por encima de fronteras, de continentes, e incluso de marcas y modelos de ordenador. Los computadores que se utilizan actualmente tienen la característica común de ser sistemas digitales. Quiere esto decir que lo que hacen básicamente es trabajar a gran velocidad con una gran cantidad de unos y ceros. La memoria de un computador contiene millones de minúsculos interruptores electrónicos (transistores) que pueden estar en posición on u off. Al no tener partes mecánicas móviles, son capaces de cambiar de estado muchos millones de veces por segundo. La tecnología moderna ha permitido miniaturizar estos sistemas y producirlos en grandes cantidades por un precio verdaderamente ridículo. Actualmente, los ordenadores están presentes en casi todas partes: cualquier automóvil y gran número de electrodomésticos incorporan uno o –probablemente– varios procesadores digitales. La diferencia principal entre estos sistemas y los computadores personales –PCs– que se utilizan en las prácticas de esta asignatura, está sobre todo en el carácter especializado o de propósito general que tienen, respectivamente, ambos tipos de ordenadores. El procesador que chequea el sistema eléctrico de un automóvil está diseñado para eso y probablemente no es capaz de hacer otra cosa; por eso no necesita de muchos elementos auxiliares. Por el contrario, un PC con una configuración estándar puede dedicarse a multitud de tareas, desde contabilidad doméstica o profesional, procesamiento de textos, dibujo artístico y técnico, cálculos científicos, etc., hasta juegos (¡desde luego no en esta asignatura, al menos por el momento...!).
1
“Aprenda lenguaje Ansi C como si estuviera en primero”
ESCUELA SUPERIOR DE INGENIEROS INDUSTRIALES. UNIVERSIDAD DE NAVARRA Jalon de la Fuente, Rodriguez Garrido, Goñi Lasheras, Brazáles Guerra, Fuentes Martines, Rodriguez Tamayo “Así también Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecerá por segunda vez, sin relación con el pecado, para salvar a los que le esperan” HEBREOS 9:28 Página 6
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
10. METODOS NUMERICOS EN LA PLATAFORMA C++ 10.1. EXPONENCIAL DE CUALQUIER NÚMERO #include #include #include
#define MAXIMO 15 #define ERROR 0.0005 double expon(float x); void main() { float x; clrscr(); printf("Ingrese x:"); scanf("%f",&x); printf("e a la x es:%13.5f\n",expon(x)); getch(); } double expon(float x) { double t=1,suma=1; double factor=1,num=1; int i=1; while((iERROR)) { factor*=i; num*=x; t=num/factor; suma+=t; i++; } return suma; }
“Así también Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecerá por segunda vez, sin relación con el pecado, para salvar a los que le esperan” HEBREOS 9:28 Página 7
FACULTAD DE INGENIERIA INGENIERIA ELECTRÓNICA U.M.S.A. LA PAZ – BOLIVIA
UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TÉCNICAS NUMÉRICAS, ORIENTADO A C++
10.2. RAÍZ CUADRADA DE CUALQUIER NÚMERO #include #include #include #define ERROR 0.0001 void main() { float N,x,x1=1; clrscr(); do { clrscr(); printf("Ingrese un numero...");scanf("%f",&N); if(N=0)); do { x=x1; x1=0.5*(x+N/x); }while(!(fabs(x-x1)