Está en la página 1de 63

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A.

LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

PROYECTO FINAL DE SEMESTRE

NOTA

MTODOS NUMRICOS ETN-505 ETN


ALUMNO: 1650435 QUIMBERT MONTES DIEGO ENRIQUE CATEDRTICO: LIC. VIRGINIA ZOTA UO PARALELO: ETN-505 A 505 4o SEMESTRE

INGENIERIA ELECTRNICA
FECHA: JUNIO 2011 La Paz - Bolivia
As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 os Pgina 1

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

INDICE 1. INTRODUCCION 2. OBJETIVOS 2.1. OBJETIVO GENERAL 2.2. OBJETIVOS ESPECIFICOS 3. MARCO TEORICO 4. METODOS NUMERICOS EN LA PLATAFORMA C++ 4.1. EXPONENCIAL DE CUALQUIER NMERO 4.2. RAZ CUADRADA DE CUALQUIER NMERO 4.3. RAIZ N-SIMA DE CUALQUIER NUMERO 4.4. RESOLUCION NUMERICA DE ECUACIONES NO LINEALES 4.4.1. 4.4.2. M. DE LA BISECCION B. WEIRSTRASS M. DE LA FALSA POSICION REGULA FALSI 4 5 5 5 6 7 7 8 9 10 10 12 14 17 18 19

4.4.3. M. DE LA FALSA POSICION MODIFICADA 4.4.4. 4.4.5. 4.4.6. M. DE LA SECANTE M. DE NEWTON RAPHSON M. DE LA SECANTE MODIFICADA

4.5. RESOLUCION NUMERICA DE SISTEMA DE ECUACIONES LINEALES 4.5.1. 4.5.2. 4.5.3. M. ITERATIVO DE JACOBI M. ITERATIVO DE GAUSS SEIDEL M. DE LA RELAJACION M. SOUTHWELL 20 22 24 26 26 27 27 28 29 31 33 38

4.6. DIFERENCIAS FINITAS 4.6.1. DIFERENCIAS FINITAS DE AVANCE DELTA

4.7. INTERPOLACION PILINOMICA 4.7.1. 4.7.2. 4.7.3. 4.7.4. 4.7.5. 4.7.6. NEWTON GRAGORY, HACIA ADELANTE NEWTON GREGORY, HACIA ATRS POLINOMIO DE GAUSS DE AVANCE POLINOMIO DE GAUSS DE RETROCESO FORMULA DE STIRLING FORMULA DE BESSEL

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 2

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, 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

40 40 40 41 45 45 45 46 47

FORMULA DE STIRLING

4.9. INTEGRACION NUMERICA 4.9.1. CASO CONTINUO 4.9.1. 4.9.2. 4.9.3. 4.9.2. SUMA DE RECTANGULOS SUMA DE TRAPECIOS METODO DE SIMPSON

CASO DISCRETO: FORMULA DE NEWTON COTES 4.9.2.1. 4.9.2.2. SIMPSON 1/3 SIMPSON 3/8 48 49 51 51 54 54 55

4.9.3. 4.9.4

CUADRATURA GAUSSIANA METODO DE ROMBERG

4.10. ECUACIONES DIFERENCIALES ORDINARIAS 4.10.1. METODO DE EULER

4.10.2. METODO DE EULER MEJORADO, METODO DE HEUN 4.10.3. METODO DE TAYLOR 56

4.10.4. METODO DE RUNGE KUTTA DE SEGUNDO ORDEN 4.10.5. METODO DE RUNGE - KUTTA DE CUARTO ORDEN 4.10.6. METODO PREDICTOR CORRECTOR 5. CONCLUSIONES 6. ANEXOS 60 61

57 58 59

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 3

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

7. INTRODUCCION

A lo largo de la historia de la matemtica, se han desarrollado maneras mas automticas o programadas para realizar clculos, todo esto empez con la creacin de calculadoras las cuales simplificaban mucho al momento de realizar operaciones aritmticas complicadas, la tecnologa fue incrementando de manera exponencial a partir de ese instante, hasta que llegamos a la era de la computacin, y este trabajo justamente esta enfocado a realizar programas de distintos mtodos numricos, orientado en la plataforma de Borland C, el presente documento no es apto para instruir en la matemtica 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 races de una ecuacin en un intervalo dado, diferencias finitas de un conjunto de datos, diferenciacin numrica, integracin numrica, 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 tambin muy tiles al momento de analizar un anlisis matemtico. Esperando que el documento sea de gran ayuda para muchos estudiantes de ingeniera en general interesados en la programacin y en los mtodos numricos.

Gracias Diego Enrique Quimbert Montes Universidad Mayor de San Andrs Bolivia - La Paz 2011

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 4

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

8. OBJETIVOS

8.1. OBJETIVO GENERAL

Poder desarrollar de manera clara y ordenada los programas de distintos mtodos numricos, 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 libreras existentes en el Compilador

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 5

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

9. MARCO TEORICO Esquema general de un computador Un ordenador es un sistema capaz de almacenar y procesar con gran rapidez una gran cantidad de informacin. Adems, un ordenador tiene capacidad para comunicarse con el exterior, recibiendo datos, rdenes y programas como entrada (por medio del teclado, del ratn, 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 tambin 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, escneres, 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 caracterstica comn de ser sistemas digitales. Quiere esto decir que lo que hacen bsicamente es trabajar a gran velocidad con una gran cantidad de unos y ceros. La memoria de un computador contiene millones de minsculos interruptores electrnicos (transistores) que pueden estar en posicin on u off. Al no tener partes mecnicas mviles, son capaces de cambiar de estado muchos millones de veces por segundo. La tecnologa moderna ha permitido miniaturizar estos sistemas y producirlos en grandes cantidades por un precio verdaderamente ridculo. Actualmente, los ordenadores estn presentes en casi todas partes: cualquier automvil y gran nmero de electrodomsticos incorporan uno o probablemente varios procesadores digitales. La diferencia principal entre estos sistemas y los computadores personales PCs que se utilizan en las prcticas de esta asignatura, est sobre todo en el carcter especializado o de propsito general que tienen, respectivamente, ambos tipos de ordenadores. El procesador que chequea el sistema elctrico de un automvil est diseado 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 configuracin estndar puede dedicarse a multitud de tareas, desde contabilidad domstica o profesional, procesamiento de textos, dibujo artstico y tcnico, clculos cientficos, 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, Goi Lasheras, Brazles Guerra, Fuentes Martines, Rodriguez Tamayo As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 6

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10. METODOS NUMERICOS EN LA PLATAFORMA C++ 10.1. EXPONENCIAL DE CUALQUIER NMERO


#include<conio.h> #include<stdio.h> #include<math.h>

#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((i<=MAXIMO)&&(t>ERROR)) { factor*=i; num*=x; t=num/factor; suma+=t; i++; } return suma; }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 7

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.2. RAZ CUADRADA DE CUALQUIER NMERO


#include<conio.h> #include<stdio.h> #include<math.h> #define ERROR 0.0001 void main() { float N,x,x1=1; clrscr(); do { clrscr(); printf("Ingrese un numero...");scanf("%f",&N); if(N<0) { printf("La raiz es imaginaria..!!!"); getch(); } }while(!(N>=0)); do { x=x1; x1=0.5*(x+N/x); }while(!(fabs(x-x1)<=ERROR)); printf("La raiz de sqrt(%10.4f)=%10.4f...",N,x1); getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 8

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.3. AIZ N-SIMA DE CUALQUIER NUMERO


#include<conio.h> #include<stdio.h> #include<math.h> #define ERROR 0.0000000001 float h; int u; #define f(h,n) exp((log10(h)/u)); float pot(float x1,int n); int binomio(int n,int m); void main() { float p,x,x1=1,j,s; int n,N,b; clrscr(); printf("Ingrese grado de la raiz...");scanf("%d",&n); u=n; do { clrscr(); printf("Ingrese numero...");scanf("%d",&N); if(N<0) { printf("La raiz es imaginaria..!!!"); getch(); } }while(!(N>=0)); do { x=x1; p=pot(x,n); s=N/p-1; h=1+s; j=f(h,u); x1=x*j; }while(!(fabs(x-x1)<=ERROR)); printf("La raiz de sqrt(%d)=%f...",n,x1); getch(); } float pot(float x1,int n) { float y; if(n==1) return(x1); y=pot(x1,n/2); if(n%2==1) return(x1*y*y); else return(y*y); } int binomio(int n,int m) { int i,x=1,y=1; for(i=1;i<=m;i++) { x*=(n-i+1); y*=i; } }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 9

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.4. RESOLUCION NUMERICA DE ECUACIONES NO LINEALES 10.4.1. M. DE LA BISECCION B. WEIRSTRASS


#include<stdio.h> #include<conio.h> #include<iostream.h> #include<math.h> float A, B ,i, IT, R, C, D,E,F; main() { clrscr(); gotoxy(20,1); cout<<("****METODO DE BISECCION****"); cout<<("\n\n"); gotoxy(15,3); cout<<("\n\n\n"); cout<<("introduzca la cantidad de iteraciones: "); cin>>IT; cout<<("\n"); cout<<("introduzca el valor de A: "); cin>>A; cout<<("\n"); cout<<("introduzca el valor de C: "); cin>>B; clrscr(); gotoxy(19,1); cout<<("********** TABLA DE VALORES *************"); cout<<("\n\n"); cout<<("\n\n"); gotoxy(1,3);cout<<("It"); gotoxy(4,3);cout<<(" A "); gotoxy(13,3);cout<<(" B "); gotoxy(23,3);cout<<(" C "); gotoxy(33,3);cout<<(" F(A) "); gotoxy(46,3);cout<<(" F(B) "); gotoxy(59,3);cout<<(" F(C)"); gotoxy(72,3);cout<<(" Error ");

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 10

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for (i=0;i<=IT;i++) { gotoxy(1,i+4); cout<<i; gotoxy(4,i+4); cout<<A; D= 0.5*exp(A/3)- sin(A) gotoxy(33,i+4); cout<<D; gotoxy(23,i+4); cout<<B; E= 0.5*exp(B/3)- sin(B) gotoxy(59,i+4); cout<<E; C=(A+B)/2; gotoxy(13,i+4); cout<<C;

;// ECUACION EN FUNCION DE "A"

;// ECUACION EN FUNCION DE "B"

F = 0.5*exp(C/3)- sin(C) ;// ECUACION EN FUNCION DE "C" gotoxy(46,i+4);; cout<<F; if (D>0) { if (F>0) { R= C-A; gotoxy(70,i+4); cout<<R; A=C; } else { R= C-B; gotoxy(70,i+4); cout<<R; B=C; } } else { if (F>0) { R= C-B; gotoxy(70,i+4); cout<<R; B=C; } else { R= C-A; gotoxy(70,i+4); cout<<R; A=C; } } } getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 11

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.4.2. M. DE LA FALSA POSICION REGULA FALSI


#include<stdio.h> #include<conio.h> #include<iostream.h> #include<math.h> float A, B ,i, IT, R, C, D,E,F; void main(void) { clrscr(); gotoxy(20,1); cout<<("*********METODO DE FALSA POSICION*********"); cout<<("\n\n"); gotoxy(30,3); cout<<("\n\n\n"); cout<<("introduzca la cantidad de iteraciones: "); cin>>IT; cout<<("\n"); cout<<("introduzca el valor de A: "); cin>>A; cout<<("\n"); cout<<("introduzca el valor de C: "); cin>>B; clrscr(); gotoxy(19,1); cout<<("********** TABLA DE VALORES *************"); cout<<("\n\n"); gotoxy(1,3);cout<<("It"); gotoxy(6,3);cout<<(" A "); gotoxy(16,3);cout<<(" B "); gotoxy(25,3);cout<<(" C "); gotoxy(34,3);cout<<(" F(A) "); gotoxy(44,3);cout<<(" F(B) "); gotoxy(56,3);cout<<(" F(C)"); gotoxy(69,3);cout<<(" Error "); for (i=0;i<=IT;i++) { gotoxy(1,i+5); cout<<i; gotoxy(4,i+5); cout<<A; D= 0.5*exp(A/3)- sin(A); // ECUACION EN FUNCION DE "A" gotoxy(33,i+5); cout<<D; gotoxy(23,i+5); cout<<B; E= 0.5*exp(B/3)- sin(B); // ECUACION EN FUNCION DE "B" gotoxy(55,i+5);; cout<<E; if (D>0) { As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 12

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

C=B-(((B-A)/(E-D))*E); gotoxy(13,i+5); cout<<C; F= 0.5*exp(C/4)- sin(C); // ECUACION EN FUNCION DE "C" gotoxy(42,i+5);; cout<<F; if (F>0) { R= C-A; gotoxy(68,i+5); cout<<R; A=C; } else { R= C-B; gotoxy(68,i+5); cout<<R; B=C; } } else { C=A-(((B-A)/(E-D))*D); gotoxy(13,i+5); cout<<C; F= 0.5*exp(C/3)- sin(C); // ECUACION EN FUNCION DE "C" gotoxy(42,i+5);; cout<<F; if (F>0) { R= C-B; gotoxy(68,i+5); cout<<R; B=C; } else { R= C-A; gotoxy(68,i+5); cout<<R; A=C; } } } cout<<("\n"); getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 13

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.4.3. M. DE LA FALSA POSICION MODIFICADA


#include<iostream.h> #include<math.h> #include<stdio.h> #include<conio.h> float A, B ,i, IT, R, C, D,E,F, X, H, G; void main(void) { clrscr(); gotoxy(20,1); cout<<("*********METODO DE FALSA POSICION MODIFICADA*********"); cout<<("\n\n"); gotoxy(32,3); cout<<("\n\n\n"); cout<<("introduzca la cantidad de iteraciones: "); cin>>IT; cout<<("\n"); cout<<("introduzca el valor de A: "); cin>>A; cout<<("\n"); cout<<("introduzca el valor de C: "); cin>>B; clrscr(); gotoxy(19,1); cout<<("********** TABLA DE VALORES *************"); cout<<("\n\n"); gotoxy(1,3);cout<<("It"); gotoxy(8,3);cout<<(" A "); gotoxy(16,3);cout<<(" B "); gotoxy(27,3);cout<<(" C "); gotoxy(34,3);cout<<(" F(A) "); gotoxy(46,3);cout<<(" F(B) "); gotoxy(60,3);cout<<(" F(C)"); gotoxy(72,3);cout<<(" Error "); X=0; for (i=0;i<=IT;i++) { gotoxy(1,i+5); cout<<i; if(X==0) { gotoxy(4,i+5); cout<<A; D= 0.5*exp(A/3)- sin(A) gotoxy(32,i+5); cout<<D; gotoxy(23,i+5); cout<<B; ;// ECUACION EN FUNCION DE "A"

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 14

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++ ;// ECUACION EN FUNCION DE "B"

E= 0.5*exp(B/3)- sin(B) gotoxy(57,i+5); cout<<E; C=B-(((B-A)/(E-D))*E); gotoxy(13,i+5); cout<<C;

F= 0.5*exp(C/3)- sin(C) ;// ECUACION EN FUNCION DE "C" gotoxy(44,i+5);; cout<<F; if(D>0) { if(F>0) { A=C; } else { B=C; } } else { if(F>0) { B=C; } else { A=C; } } X=X+1; } else { gotoxy(4,i+5); cout<<A; D= 0.5*exp(A/3)- sin(A) gotoxy(32,i+5); cout<<D; gotoxy(23,i+5); cout<<B; E= 0.5*exp(B/3)- sin(B) gotoxy(57,i+5); cout<<E; if (C==A) { H=E*0.5; C=A-(((B-A)/(H-D))*D); gotoxy(13,i+5); ;// ECUACION EN FUNCION DE "A"

;// ECUACION EN FUNCION DE "B"

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 15

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA cout<<C;

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

F= 0.5*exp(C/3)- sin(C) ;// ECUACION EN FUNCION DE "C" gotoxy(44,i+5);; cout<<F; R= C-A; gotoxy(70,i+5); cout<<R; } else { G=D*0.5; C=A-(((B-A)/(E-G))*G); gotoxy(13,i+5); cout<<C; F= 0.5*exp(C/3)- sin(C) ;// ECUACION EN FUNCION DE "C" gotoxy(44,i+5);; cout<<F; R= C-B; gotoxy(70,i+5); cout<<R; } if(D>0) { if(F>0) { A=C; } else { B=C; } } else { if(F>0) { B=C; } else { A=C; } } } } cout<<("\n"); getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 16

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.4.4. M. DE LA SECANTE
#include<stdio.h> #include<conio.h> #include<math.h> #include<iostream.h> float A,F,C, D, E, R, B; int IT,i; void main(void) { clrscr(); gotoxy(20,1); cout<<("********** METODO DE LA SECANTE ************"); cout<<("\n\n"); gotoxy(25,3);cout<<("\n\n\n"); cout<<("introduzca numero de iteraciones: "); cin>>IT;cout<<("\n"); cout<<("introduzca Xo: "); cin>>A;cout<<("\n"); cout<<("introduzca X1: "); cin>>B; clrscr(); gotoxy(19,1); cout<<("********** TABLA DE VALORES *************"); cout<<("\n\n"); if (IT<15) { gotoxy(3,15);cout<<("ya no hay mas iteraciones "); }else { gotoxy(3,IT+8);cout<<("ya no hay mas iteraciones "); } gotoxy(1,3);cout<<("Iter"); gotoxy(12,3);cout<<("Xn"); gotoxy(22,3);cout<<("Error"); D=0; do{ for(i=0; i<=IT; i++) {gotoxy(2,i+5); cout<<i; E= 0.5*exp(A/3) - sin(A) F= 0.5*exp(B/3) - sin(B) C=B-(F*((B-A)/(F-E))); gotoxy(10,i+5); cout<<C; R=D-C; gotoxy(20,i+5); cout<<R; D=C; B=A; A=C; }}while(R<=0); getch(); }

;// ECUACION EN FUNCION DE "A" ;// ECUACION EN FUNCION DE "B"

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 17

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.4.5. M. DE NEWTON RAPHSON


#include<stdio.h> #include<conio.h> #include<math.h> #include<iostream.h> float A, D, E, R, i, IT, C; main() { clrscr(); gotoxy(20,1); cout<<("********* METODO NEWTON - RAPHSON ************"); cout<<("\n\n"); gotoxy(32,3); cout<<("\n\n\n"); cout<<("introduzca la cantidad de iteraciones: "); cin>>IT; cout<<("\n\n"); cout<<("introduzca x inicial: "); cin>>A; clrscr(); gotoxy(19,1); cout<<("********** TABLA DE VALORES *************"); cout<<("\n\n"); gotoxy(1,3);cout<<("Iter"); gotoxy(13,3);cout<<("Xn"); gotoxy(23,3);cout<<("Error"); for(i=0; i<=IT; i++) { gotoxy(2,i+5); cout<<i; D= 0.5*exp(A/3) - sin(A) ;// ECUACION EN FUNCION DE "A" E= (0.5*exp(A/3))/3 - cos(A) ;// ECUACION DERIVADA EN FUNCION DE "A" C=A-(D/E); gotoxy(10,i+5); cout<<C; R=A-C; gotoxy(20, i+5); cout<<R; A=C; } getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 18

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.4.6. M. DE LA SECANTE MODIFICADA


#include<stdio.h> #include<conio.h> #include<math.h> #define f(x) exp(-x)-x main() { float i,x0,h,n,x1,A,B,c; clrscr(); printf("Inserte el un valor proximo a la raiz\nx0="); scanf("%f",&x0); printf("Inserte el un h pequea\nh="); scanf("%f",&h); printf("Inserte el # de iteraciones\nn= "); scanf("%f",&n); printf("\t\t i\t Xi\t Xi+1\t f(Xi+1)\n\n"); for(i=0;i<n;i++) { A=f(x0); c=x0+h*x0; B=f(c); x1=x0-(A*h*x0)/(B-A); printf("\t\t %0.0f %f %f %f ",i,x0,x1,f(x1)); printf("\n"); x0=x1; } getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 19

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.5. RESOLUCION NUMERICA DE SISTEMA DE ECUACIONES LINEALES 10.5.1. M. ITERATIVO DE JACOBI


/* Metodo de Jocobi de la forma A*X=B, ingrese una matriz diagonalmente dominante y ordenada, datos a insertar n=# de iteraciones A=la matriz de coeficientes B=matriz de coeficientes independientes */ #include<stdio.h> #include<conio.h> #include<iostream.h> main() { int n,d,i,j,k; float A[20][20],B[20],D[20][20]; float M[20][20],D1[20][20], B1[20], E[20][20], x0, y0, z0, x1, y1, z1; clrscr(); gotoxy(20,1); cout<<("********* METODO JACOBI *********"); cout<<("\n\n"); gotoxy(23,3); cout<<("\n\n\n"); x0=0; y0=0; z0=0; d=3; printf("Insertar la matriz A diagonalmente dominante ya ordenada\n"); for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { printf("A[%d][%d]=",i,j); scanf("%f",&A[i][j]); } } printf("Insertar la matriz B\n"); for(i=1;i<=d;i++) { printf("B[%d]=",i); scanf("%f",&B[i]); } printf("Inserte el # de iteraciones: "); scanf("%d",&n);

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 20

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { if(i==j) { D[i][j]=A[i][j]; D1[i][j]=1/A[i][j]; B1[i]=B[i]*D1[i][j]; M[i][j]=0; } else { M[i][j]=-A[i][j]; D[i][j]=0; D1[i][j]=0; } } } for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { E[i][j]=0; for(k=1;k<=d;k++) E[i][j]+=D1[i][k]*M[k][j]; } } printf("\n\t\ti\t x\t y\t z\n\n"); printf("\t\t1\t%0.3f\t%0.3f\t%0.3f\n",x0,y0,z0); for(i=2;i<=n;i++) { x1=E[1][2]*y0+E[1][3]*z0+B1[1]; y1=E[2][1]*x0+E[2][3]*z0+B1[2]; z1=E[3][1]*x0+E[3][2]*y0+B1[3]; printf("\t\t%d\t%0.3f\t%0.3f\t%0.3f\n",i,x1,y1,z1); x0=x1; y0=y1; z0=z1; } getch(); return 0; }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 21

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.5.2. M. ITERATIVO DE GAUSS SEIDEL


/* INGRESE LA MATRIZ A EN SU FORMA DIAGONALMENTE DOMINANTE*/ #include<stdio.h> #include<conio.h> #include<iostream.h> main() { int n,d,i,j,k; float A[20][20],B[20],D[20][20],M[20][20]; float D1[20][20],B1[20],E[20][20],x0,y0,z0,x1,y1,z1; clrscr(); gotoxy(20,1); cout<<("****** METODO DE GAUSS SEIDEL ******"); cout<<("\n\n"); gotoxy(28,3); cout<<("\n\n\n"); x0=0; y0=0; z0=0; d=3; printf("Insertar la matriz A diagonalmente dominante ya ordenada\n"); for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { printf("A[%d][%d]=",i,j); scanf("%f",&A[i][j]); } } printf("Insertar la matriz B\n"); for(i=1;i<=d;i++) { printf("B[%d]=",i); scanf("%f",&B[i]); } printf("Inserte el # de iteraciones: "); scanf("%d",&n);

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 22

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { if(i==j) { D[i][j]=A[i][j]; D1[i][j]=1/A[i][j]; B1[i]=B[i]*D1[i][j]; M[i][j]=0; } else { M[i][j]=-A[i][j]; D[i][j]=0; D1[i][j]=0; } } } for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { E[i][j]=0; for(k=1;k<=d;k++) E[i][j]+=D1[i][k]*M[k][j]; } } printf("\n\t\ti\t x\t y\t z\n\n"); printf("\t\t1\t%0.3f\t%0.3f\t%0.3f\n",x0,y0,z0); for(i=2;i<=n;i++) { x1=E[1][2]*y0+E[1][3]*z0+B1[1]; x0=x1; y1=E[2][1]*x0+E[2][3]*z0+B1[2]; y0=y1; z1=E[3][1]*x0+E[3][2]*y0+B1[3]; printf("\t\t%d\t%0.3f\t%0.3f\t%0.3f\n",i,x1,y1,z1); z0=z1; } getch(); return 0; }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 23

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.5.3. M. DE LA RELAJACION M. SOUTHWELL


/* LA MATRIZ A DEBE SER DIAGONALMENTE DOMINANTE, ORDENE!!! */ #include<stdio.h> #include<conio.h> #include<iostream.h> main() { int n,d,i,j,k,l,c,C[20],X[20],m,R[20],R1[20],s1,s2,s3; float A[20][20],B[20],B1[20],D[20][20],M[20][20],D1[20][20],E[20][20]; clrscr(); gotoxy(20,1); cout<<("****** METODO ITERATIVO RELAJACION ******"); cout<<("\n\n"); gotoxy(25,3); cout<<("\n\n\n"); X[1]=0; X[2]=0; X[3]=0; d=3; printf("Insertar la matriz A dominante ya ordenada\n"); for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { printf("A[%d][%d]=",i,j); scanf("%f",&A[i][j]); } } printf("Insertar la matriz B\n"); for(i=1;i<=d;i++) { printf("B[%d]=",i); scanf("%f",&B[i]); } printf("Inserte el # de iteraciones: "); scanf("%d",&n); for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { if(i==j) { D[i][j]=A[i][j]; D1[i][j]=1/A[i][j]; B1[i]=B[i]*D1[i][j]; M[i][j]=0; } else { M[i][j]=-A[i][j]; D[i][j]=0; D1[i][j]=0; } } } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 24

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { E[i][j]=0; for(k=1;k<=d;k++) E[i][j]+=D1[i][k]*M[k][j]; } } for(i=1;i<=d;i++) { for(j=1;j<=d;j++) { if (i==j) E[i][j]=-1; } } R[1]=B1[1]*100; R[2]=B1[2]*100; R[3]=B1[3]*100; printf("\n\tx\tR1\tC1\ty\tR2\tC2\tz\tR3\tC3\n\n"); for(j=1;j<=n;j++) { for (k=1;k<=d;k++) { if (R[k]<0) R1[k]=-R[k]; else R1[k]=R[k]; } m=R1[1]; c=1; for(i=2;i<=d;i++) { if(m<R1[i]) { m=R1[i]; c=i; } }
printf("\t%d\t%d\t \t%d\t%d\t \t%d\t%d\t \n",X[1],R[1],X[2],R[2],X[3],R[3]);

X[c]=R[c]; for(k=1;k<=d;k++) C[k]=E[k][c]*X[c]; printf("\t \t \t%d\t \t \t%d\t \t \t%d\n",C[1],C[2],C[3]); for(l=1;l<=d;l++) R[l]=R[l]+C[l]; } getch(); return 0; }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 25

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.6. DIFERENCIAS FINITAS 10.6.1. DIFERENCIAS FINITAS DE AVANCE DELTA


#include<stdio.h> #include<math.h> #include<conio.h> #include<iostream.h> void main() {int i,j,k; float y[50][50]; clrscr(); gotoxy(20,1); cout<<("****** DIFERENCIAS FINITAS ******"); cout<<("\n\n"); gotoxy(28,3); cout<<("\n\n\n"); printf("inserte # de terminos: ");scanf("%d",&k); for(i=0;i<k;i++) { printf("Y(%d)=",i);scanf("%f",&y[i][0]); } for(j=0;j<k-1;j++) { for(i=0;i<k-j;i++) { y[i][j+1]=y[i+1][j]-y[i][j]; } } clrscr(); for(i=0;i<k;i++) printf(" D %d",i); printf("\n"); for(j=0;j<k;j++) { printf("\n");printf("Y(%d) ",j); for(i=0;i<k-j;i++) { printf("%.3f ",y[j][i]); } } getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 26

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.7. INTERPOLACION PILINOMICA 10.7.1. NEWTON GRAGORY, HACIA ADELANTE

#include<stdio.h> #include<math.h> #include<conio.h> void main() { int i,j,n,u; float Y[50][50],D[50],x[50]; float xo; float R,F,P,K; char sw; clrscr(); gotoxy(22,2);cprintf("Interpolacion por newton gregori De Avance"); gotoxy(25,13);cprintf("numero de datos:");cscanf("%d",&n); clrscr(); cprintf("Entrando datos (x,y)"); gotoxy(27,9);cprintf("[ X , Y ]"); for(i=1;i<=n;i++) { gotoxy(30,10+i);cscanf("%f",&x[i]); gotoxy(40,10+i);cscanf("%f",&Y[i][1]); }clrscr(); for(j=1;j<=n-1;j++) { for(i=1;i<=n-j;i++) { Y[i][j+1]=Y[i+1][j]-Y[i][j]; } } gotoxy(25,5);cprintf("Tabla de las diferencias finitas"); for(j=1;j<=n;j++) { gotoxy(2,6+j); for(i=1;i<=(n-j+1);i++) { cprintf("%.3f ",Y[j][i]); } } do { for(i=1;i<=n;i++) D[i]=Y[1][i]; gotoxy(6,20);printf("Entre valor a interpolar"); gotoxy(10,21);scanf("%f",&xo); K=(xo-x[1])/(x[2]-x[1]); R=D[1]; for(i=2;i<n;i++) { P=1;F=1; for(u=1;u<i;u++) { P=P*(K-(u-1)); F=F*u; } R=R+(P/F*D[i]); } gotoxy(34,20);printf("El valor de la interpolacion es"); gotoxy(44,21);printf("F(%.3f) = %f",xo,R); gotoxy(4,23);printf("Presione <Esc> para salir...>"); sw=getch(); gotoxy(4,23);printf(" "); } while(sw!=27); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 27

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.7.2.

NEWTON GREGORY, HACIA ATRS

#include<stdio.h> #include<math.h> #include<conio.h> void llenar(int x1,int y1,int x2,int y2) { int i,j; for(i=x1;i<=x2;i++) { for(j=y1;j<=y2;j++) { gotoxy(i,j);cprintf("%c",219); }}} void main() { int i,j,n,u; float Y[50][50],D[50],x[50]; float xo; float R,F,P,K; char sw; clrscr(); gotoxy(22,3);cprintf("Interpolacion por newton gregori de retroceso"); gotoxy(25,13);cprintf("introducir datos:");cscanf("%d",&n); clrscr(); gotoxy(27,7);cprintf("Entrando datos (x,y)"); gotoxy(27,9);cprintf("[ X , Y ]"); for(i=1;i<=n;i++) { gotoxy(30,10+i);cscanf("%f",&x[i]); gotoxy(40,10+i);cscanf("%f",&Y[i][1]); } for(j=1;j<=n-1;j++) { for(i=1;i<=n-j;i++) { Y[i][j+1]=Y[i+1][j]-Y[i][j]; }} gotoxy(25,5);cprintf("Tabla de las diferencias finitas"); for(j=1;j<=n;j++) { gotoxy(2,6+j); for(i=1;i<=(n-j+1);i++) { cprintf("%.3f ",Y[j][i]); }} do { for(i=1;i<=n;i++) D[i]=Y[n+1-i][i]; gotoxy(6,20);printf("Entre valor a interpolar"); gotoxy(10,21);scanf("%f",&xo); K=(xo-x[n])/(x[2]-x[1]);R=D[1]; for(i=2;i<=n;i++) { P=1;F=1; for(u=1;u<i;u++) { P=P*(K+(u-1)); F=F*u; } R=R+(P/F*D[i]); } gotoxy(34,20);printf("El valor de la interpolacion es"); gotoxy(44,21);printf("F(%.3f) = %f",xo,R); gotoxy(4,23);printf("Presione <Esc> para salir...>"); sw=getch(); gotoxy(4,23);printf(" "); } while(sw!=27); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 28

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.7.3.

POLINOMIO DE GAUSS DE AVANCE

#include<stdio.h> #include<math.h> #include<conio.h> void llenar(int x1,int y1,int x2,int y2) { int i,j; for(i=x1;i<=x2;i++) { for(j=y1;j<=y2;j++) { gotoxy(i,j);cprintf("%c",219); } } } void cuadro(int x1,int y1,int x2,int y2) { int i; for(i=x1;i<x2;i++) { gotoxy(i,y1);cprintf("%c",196); gotoxy(i,y2);cprintf("%c",196); } for(i=y1;i<y2;i++) { gotoxy(x1,i);cprintf("%c",179); gotoxy(x2,i);cprintf("%c",179); } gotoxy(x1,y1);cprintf("%c",218); gotoxy(x1,y2);cprintf("%c",192); gotoxy(x2,y1);cprintf("%c",191); gotoxy(x2,y2);cprintf("%c",217); } void color(int x,int y) { textcolor(x); textbackground(y); } void main() { int i,j,n,u,sw; float Y[50][50],D[50],x[50]; float xo,c; float R,F,P,K; color(7,0); clrscr(); gotoxy(24,3);printf("INTERPOLACION POR GAUSS DE AVANCE"); gotoxy(25,11);cprintf("Introducir datos:"); cscanf("%d",&n); clrscr(); gotoxy(27,7);cprintf("Entrando datos (x,y)"); gotoxy(27,9);cprintf("[ X , Y ]");color(7,0);

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 29

FACULTAD DE INGENIERIA UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE INGENIERIA ELECTRNICA RU: 1650435 CI: 5919711 CBBA U.M.S.A. TCNICAS NUMRICAS, ORIENTADO A C++ LA PAZ BOLIVIA for(i=1;i<=n;i++) { gotoxy(30,10+i);scanf("%f",&x[i]); gotoxy(40,10+i);scanf("%f",&Y[i][1]); } for(j=1;j<=n-1;j++) { for(i=1;i<=n-j;i++) { Y[i][j+1]=Y[i+1][j]-Y[i][j]; } } gotoxy(25,5);cprintf("LA TABLA SERA:"); for(j=1;j<=n;j++) { gotoxy(2,6+j); for(i=1;i<=(n-j+1);i++) { cprintf("%.3f",Y[j][i]); } } do { c=1; for(i=1;i<=n;i++) { if ((i%2)==0) c++; D[n+1-i]=Y[c][n+1-i]; } gotoxy(6,20);printf("Entre valor a interpolar"); gotoxy(10,21);scanf("%f",&xo); K=(xo-x[c])/(x[2]-x[1]); sw=0; R=D[1]; for(i=2;i<=n;i++) { P=1;F=1; for(u=1;u<i;u++) { F=F*u; if (sw<=2) { P=P*(K-(u-1)); sw++; } else P=P*(K+(2-u)); } R=R+(P/F*D[i]); } gotoxy(34,20);printf("El valor de la interpolacion es"); gotoxy(44,21);printf("F(%.3f) = %f",xo,R); gotoxy(4,23);printf("Presione <esc> para salir...>"); } while(getch()!=27); } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 30

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.7.4.

POLINOMIO DE GAUSS DE RETROCESO

#include<stdio.h> #include<math.h> #include<conio.h> void llenar(int x1,int y1,int x2,int y2) { int i,j; for(i=x1;i<=x2;i++) { for(j=y1;j<=y2;j++) { gotoxy(i,j);cprintf("%c",219); } } } void color(int x,int y) { textcolor(x); textbackground(y); } void main() { int i,j,n,u,sw; float Y[50][50],D[50],x[50]; float xo,c; float R,F,P,K; clrscr(); gotoxy(23,5);printf("INTERPOLACION POR GAUSS [RETROCESO]"); gotoxy(25,11);printf("Cuantos Datos introducira:"); scanf("%d",&n); clrscr(); gotoxy(27,7);cprintf("Entrando datos (x,y)"); gotoxy(27,9);cprintf("[ X , Y ]"); for(i=1;i<=n;i++) { gotoxy(30,10+i);scanf("%f",&x[i]); gotoxy(40,10+i);scanf("%f",&Y[i][1]); } clrscr(); for(j=1;j<=n-1;j++) { for(i=1;i<=n-j;i++) { Y[i][j+1]=Y[i+1][j]-Y[i][j]; } } gotoxy(25,5);cprintf("Tabla de las diferencias finitas"); for(j=1;j<=n;j++) { gotoxy(2,6+j); for(i=1;i<=(n-j+1);i++) { cprintf("%.3f ",Y[j][i]); } } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 31

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

do { gotoxy(4,23);printf(" "); c=1; for(i=1;i<=n;i++) { if ((i%2)!=0) c++; D[n+1-i]=Y[c-1][n+1-i]; } gotoxy(6,20);printf("Entre valor a interpolar"); gotoxy(10,21);scanf("%f",&xo); K=(xo-x[c-1])/(x[2]-x[1]); sw=0; R=D[1]; for(i=2;i<n;i++) { P=1;F=1; for(u=1;u<i;u++) { F=F*u; if (sw<=2) { P=P*(K+(u-1)); sw++; } else P=P*(K-(2-u)); } R=R+(P/F*D[i]); } gotoxy(34,20);printf("El valor de la interpolacion es"); gotoxy(44,21);printf("F(%.3f) = %f",xo,R); gotoxy(4,23);printf("Presione <Esc> para salir...>"); } while(getch()!=27); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 32

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.7.5.

FORMULA DE STIRLING

#include<stdio.h> #include<conio.h> #include<math.h> void Ingresos(); int dif(); int ecua(); double val(double n); int comb(float a, float b); float pr(float A[10][10],int m); int tam(); int potencia(); int Derivada(); float Y[10],Dif[10][10],A[10][10],M[10][10],DY[10]; float V[10],X[10],C[10],h; int n; double sob[10]; double der[10]; float ent; void main() { int sele,i,j,k,m,g; clrscr(); textbackground(7); textcolor(8); clrscr(); printf("\n\n\n\n\n\n\t\t INTERPOLACION MEDIANTE FORMULA DE STIRLING\n\n\n"); printf("\n\n\t\t\t\tDeseas continuar?\n\n\n\t1. Si.\n\n\n\t2. Salir.\n\n\n"); scanf("%d",&sele); if(sele==1) { clrscr(); for (i=0;i<n;i++) for (j=0;j<n;j++) M[i][j]=0; for (i=0;i<10;i++) {sob[i]=0;DY[i]=0;V[i]=0;} Ingresos(); tam(); M[0][0]=1; ent=X[(int)n/2]/h; m=0; g=0;

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 33

FACULTAD DE INGENIERIA UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE INGENIERIA ELECTRNICA RU: 1650435 CI: 5919711 CBBA U.M.S.A. TCNICAS NUMRICAS, ORIENTADO A C++ LA PAZ BOLIVIA for (i=1;i<=potencia();i++) { if ((i%2)==0) { for (k=0;k<10;k++) V[k]=0; comb(m,i); for(k=0;k<n;k++) V[k]=M[i][k]; comb(m+1,i); for(k=0;k<n;k++) V[k]=V[k]+M[i][k]; for(k=0;k<n;k++) M[i][k]=V[k]; m=m+1; } else { comb (g,i); g=g+1; } } DY[0]=Y[(int) n/2]; i=(int) n/2; k=(int) n/2; for (j=1;j<=n;j++) { if ((j%2)==0) { i=i-1; DY[j]=Dif[i][j]/(2*val(j)); } else { DY[j]=(Dif[k][j]+Dif[k-1][j])/(2*val(j));k=k-1; } } ecua(); Derivada(); getch(); } } void Ingresos() { int i,j; gotoxy(20,1);printf("****** METODO DE STIRLING ******"); printf("\n\n\n\n\tCuantos datos son:\tn = "); scanf("%d",&n); printf("\n\n\tIngresar en forma ordenada X[i]:\n\n\n"); for(i=0;i<n;i++) { printf("\t\tX[%d] = ",i); scanf("%f",&X[i]); } printf("\n\n\tIngresar en forma ordenada Y[i]\n\n");

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 34

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for (i=0;i<n;i++) { printf("\t\tY[%d]= ",i); scanf("%f",&Y[i]); } dif(); } int dif() { int i,j; for (i=0;i<10;i++) for(j=0;j<10;j++) Dif[i][j]=0; for (i=0;i<n;i++) Dif[i][0]=Y[i]; for (j=1;j<n;j++) for (i=0;i<n-j;i++) Dif[i][j]=Dif[i+1][j-1]-Dif[i][j-1]; return(0); } float pr(float A[10][10],int m) { int i,j,k; for (i=0;i<m;i++) { for (j=0;j<10;j++) M[m][j]=0; for(j=0;j<10;j++) for (k=0;k<10;k++) M[m][j+k]=M[m][j+k]+A[i][j]*A[i+1][k]; for(j=0;j<10;j++) A[i+1][j]=M[m][j]; } for(j=0;j<10;j++) M[m][j]=A[m-1][j]; return(0); } int comb(float a, float b) { int i,j; for (i=0;i<10;i++) for (j=0;j<10;j++) A[i][j]=0; for (i=0;i<b;i++) { A[i][0]=a-i-ent;; A[i][1]=1/h; } pr(A,b); return(0); } double val(double n) { if(n==0) return 1; else return n*val(n-1); } int potencia() { int j,i,m=0,l=-1;

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 35

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for(j=0;j<n;j++) { l=l+1; for(i=0;i<n;i++) if (Dif[i][j]==0) m=m+1; if (m==n) j=n; m=0; } return(l-1); } int tam() { int i,j; for (j=0;j<n;j++) C[j]=X[j]; for (j=0;j<n-1;j++) C[j]=C[j+1]-C[j]; h=C[(int) n/2]; return(0); } int ecua() { int op,i,j,x,y; float val; clrscr(); printf("la tabla de diferencias es:\n"); for(y=0;y<=n;y++) { for(x=0;x<=potencia();x++) { if (y<(n-x)) { gotoxy(x*10+1,4+2*y+x); printf("%10f",Dif[y][x]); }} printf("\n"); } for (i=0;i<n;i++) for (j=0;j<n;j++) M[i][j]=M[i][j]*DY[i]; printf("\n\tEl grado de tu mayor exponente es: %d\n\n ",potencia()); printf("\tTu polinomio tiene la siguiente forma:\n\n"); for (j=0;j<n;j++) for (i=0;i<=potencia();i++) sob[j]=sob[j]+ M[i][j]; printf("\tP(x) = "); for (i=0;i<=potencia();i++) { if (sob[i]!=0) { if (i!=potencia()) printf (" %5.2f x^%d + ",sob[i],i); else printf ("%5.2f x^%d ",sob[i],i); } } { printf("\n\tElige el punto para evaluar X = "); scanf("%f",&val); printf("\n\n\tP(%5.2f) = %5.2f ",val, poly(val,potencia(),sob)); return(0); } } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 36

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

int Derivada() { int i; float val; for(i=1;i<n-1;i++) der[i-1]=(i*sob[i]); printf("\n\n\tLa derivada de tu polinomio es:"); printf("\n\n\tP'(x) = "); for (i=0;i<potencia();i++) { if (der[i]!=0) { if (i!=potencia()-1) printf (" %5.2f x^%d + ",der[i],i); else printf ("%5.2f x^%d ",der[i],i); } } printf("\n\n\tIngresa el punto en que evaluaras tu derivada\n\n\tx0 scanf("%f",&val); printf("\n\tP'(%5.2f) = %5.2f ",val, poly(val,potencia()-1,der)); return(0); }

");

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 37

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.7.6.

FORMULA DE BESSEL

#include<stdio.h> #include<conio.h> #include<math.h> void main() { int i,j,n,p; float X[50],Y[50][50],Val,K,Pol,Pol1,H,R; float a,b,c,d,e,u,v,w,x,y,z; clrscr(); gotoxy(20,1);printf("****** INTERPOLACION DE BESSEL ******"); for(i=1;i<=50;i++) for(j=1;j<=50;j++) Y[i][j]=0; printf("\n\n\tIntroduzca el numero de muestras, K : "); scanf("%d",&n); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { Y[i][j]=0; } } printf("\n\tIntroduzca los valores de X:\n"); for(i=1;i<=n;i++) { printf("X[%d]\t",i); scanf("%f",&X[i]); } printf("\n\tIntroduzca los valores de Y:\n"); for(i=1;i<=n;i++) { printf("Y[%d]\t",i); scanf("%f",&Y[1][i]); } printf("Ingrese el valor de Xo:\t "); scanf("%f",&Val); for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) Y[i+1][j]=Y[i][j+1]-Y[i][j]; } if(n%2==0) p=n/2; else p=(n+1)/2; clrscr(); printf("\n\t\tLa tabla de diferencias finitas es:"); printf("\nK"); for(i=-p+1;i<=n-p;i++) printf("%10d",i); printf("\nX[0]"); for(i=1;i<=n;i++) printf("%10.5f",X[i]); printf("\n");

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 38

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for(i=1;i<=n;i++) { printf("Y[%d]",i-1); for(j=1;j<=n-i+1;j++) printf("%10.5f",Y[i][j]); printf("\n"); } H=X[2]-X[1] ; a=(Y[5][p-2]+Y[5][p-1])/48; b=Y[4][p-1]/6-2*a; c=(Y[3][p-1]+Y[3][p])/4-Y[4][p-1]/4-a; d=Y[2][p]-(Y[3][p-1]+Y[3][p])/4+Y[4][p-1]/12+2*a; e=(Y[1][p]+Y[1][p+1]-Y[2][p])/2; K=(Val-X[p])/H; R=X[p]; u=a/pow(H,4); v=b/pow(H,3)-4*a*R/pow(H,4); w=c/pow(H,2)-3*b*R/pow(H,3)+6*a*pow(R,2)/pow(H,4); x=d/H-2*R*c/pow(H,2)+3*b*pow(R,2)/pow(H,3)-4*a*pow(R,3)/pow(H,4); y=e-d*R/H+c*pow(R/H,2)-b*pow(R/H,3)+a*pow(R/H,4); Pol=a*pow(K,4)+b*pow(K,3)+c*pow(K,2)+d*K+e; Pol1= (4*a*pow(K,3)+3*b*pow(K,2)+2*c*K+d)/H; printf("\n\t\tFORMULA DE BESSEL"); printf("\n\nY(x) = %3.2f*X^4 + %3.2f*X^3 + %3.2f*X^2 + %3.2f*X + %3.2f",u,v,w,x,y); printf("\n\nY(k) = %3.2f*K^4 + %3.2f*K^3 + %3.2f*K^2 + %3.2f*K + %3.2f",a,b,c,d,e); printf("\n\nY(%3.1f) = %3.2f",Val,Pol); printf("\n\nY'(x) = %3.2f*X^3 + %3.2f*X^2 + %3.2f*X + %3.2f",4*u,3*v,2*w,x); printf("\n\nY'(k) = %3.2f*K^3 + %3.2f*K^2 + %3.2f*K + %3.2f",4*a,3*b,2*c,d); printf("\n\nY'(%3.1f) = %3.2f",Val,Pol1); getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 39

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.8. DIFERENCIACION NUMERICA 10.8.1. FORMULA DE GAUSS DE AVANCE 10.8.3.1. DE PRIMER ORDEN

#include<stdio.h> #include<conio.h> int n; double x[10],fx[10]; double xd,dp; void lectura() { int i, Respuesta; clrscr(); printf("Introduzca el numero de Muestras :"); scanf("%d",&n); for(i=0; i<=n; i++) { printf(" X(%d) = ",i); scanf("%lf",&x[i]); printf(" Y(%d) = ",i); scanf("%lf",&fx[i]); } printf(" Ingrese el valor Xo para evaluar la derivada: "); scanf("%lf",&xd); } double derivando() {int i,j,k; double p,p1,s; dp=0; for(i=0; i<=n; i++) { p=1; for(j=0; j<=n; j++) if(i != j) p=p*(x[i]-x[j]); s=0; for(k=0; k<=n; k++) { if (i !=k) { p1=1; for(j=0; j<=n; j++) if( !( (j==i) || (j==k) ) ) p1=p1*(xd-x[j]); s=s+p1; } } dp=dp+fx[i]/p*s; } return(0); } void main() { lectura(); derivando(); printf(" Evluando, Xo = %12.2f D/DX(F(Xo)) = %10.4f\n",xd,dp);getch(); } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 40

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.8.2. FORMULA DE STIRLING


#include<stdio.h> #include<conio.h> #include<math.h> void Ingresos(); int dif(); int ecua(); double val(double n); int comb(float a, float b); float pr(float A[10][10],int m); int tam(); int potencia(); int Derivada(); float Y[10],Dif[10][10],A[10][10],M[10][10]; float DY[10],V[10],X[10],C[10],h; int n; double sob[10]; double der[10]; float ent; #include"titulo.h" void main() { int sele,i,j,k,m,g; clrscr(); textbackground(3); textcolor(8); Titulo2("INTERPOLACION MEDIANTE FORMULA DE STIRLING"); { for (i=0;i<n;i++) for (j=0;j<n;j++) M[i][j]=0; for (i=0;i<10;i++) {sob[i]=0;DY[i]=0;V[i]=0;} Ingresos(); tam(); M[0][0]=1; ent=X[(int)n/2]/h; m=0; g=0; for (i=1;i<=potencia();i++) { if ((i%2)==0) { for (k=0;k<10;k++) V[k]=0; comb(m,i); for(k=0;k<n;k++) V[k]=M[i][k]; comb(m+1,i); for(k=0;k<n;k++) V[k]=V[k]+M[i][k]; for(k=0;k<n;k++) M[i][k]=V[k]; m=m+1; } else { comb (g,i); g=g+1; } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 41

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA }

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

DY[0]=Y[(int) n/2]; i=(int) n/2; k=(int) n/2; for (j=1;j<=n;j++) { if ((j%2)==0) { i=i-1; DY[j]=Dif[i][j]/(2*val(j)); } else { DY[j]=(Dif[k][j]+Dif[k-1][j])/(2*val(j));k=k-1; } } ecua(); Derivada(); getch(); } } void Ingresos() { int i,j; printf("Numero de datos son: n = "); scanf("%d",&n); printf("\n\nIngresar X[i]:\n\n\n"); for(i=0;i<n;i++) { printf("\tX[%d] = ",i); scanf("%f",&X[i]); } printf("\n\n\tIngresar Y[i]\n\n"); for (i=0;i<n;i++) { printf("\tY[%d]= ",i); scanf("%f",&Y[i]); } dif(); } int dif() { int i,j; for (i=0;i<10;i++) for(j=0;j<10;j++) Dif[i][j]=0; for (i=0;i<n;i++) Dif[i][0]=Y[i]; for (j=1;j<n;j++) for (i=0;i<n-j;i++) Dif[i][j]=Dif[i+1][j-1]-Dif[i][j-1]; return(0);} float pr(float A[10][10],int m) { int i,j,k;

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 42

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

for (i=0;i<m;i++) { for (j=0;j<10;j++) M[m][j]=0; for(j=0;j<10;j++)for (k=0;k<10;k++) M[m][j+k]=M[m][j+k]+A[i][j]*A[i+1][k]; for(j=0;j<10;j++) A[i+1][j]=M[m][j]; } for(j=0;j<10;j++) M[m][j]=A[m-1][j]; return(0); } int comb(float a, float b) { int i,j; for (i=0;i<10;i++) for (j=0;j<10;j++) A[i][j]=0; for (i=0;i<b;i++) { A[i][0]=a-i-ent;; A[i][1]=1/h; } pr(A,b); return(0); } double val(double n) { if(n==0) return 1; else return n*val(n-1); } int potencia() { int j,i,m=0,l=-1; for(j=0;j<n;j++) { l=l+1; for(i=0;i<n;i++) if (Dif[i][j]==0) m=m+1; if (m==n) j=n; m=0; } return(l-1); } int tam() { int i,j; for (j=0;j<n;j++) C[j]=X[j]; for (j=0;j<n-1;j++) C[j]=C[j+1]-C[j]; h=C[(int) n/2]; return(0); } int ecua() { int op,i,j,x,y; float val; clrscr();

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 43

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

printf("la tabla de diferencias es:\n"); for(y=0;y<=n;y++) { for(x=0;x<=potencia();x++) { if (y<(n-x)) { gotoxy(x*10+1,4+2*y+x); printf("%10f",Dif[y][x]); } } } for (i=0;i<n;i++) for (j=0;j<n;j++) M[i][j]=M[i][j]*DY[i]; printf("\n\tEl grado del polinomio es: %d\n\n ",potencia()); printf("\tTu polinomio tiene la siguiente forma:\n\n"); for (j=0;j<n;j++) for (i=0;i<=potencia();i++) sob[j]=sob[j]+ M[i][j]; printf("\tP(x) = "); for (i=0;i<=potencia();i++) { if (sob[i]!=0) { if (i!=potencia()) printf (" %5.2f x^%d + ",sob[i],i); else printf ("%5.2f x^%d ",sob[i],i); } } { printf("\nElige el punto para evaluar X = "); scanf("%f",&val); printf("\n\nP(%5.2f) = %5.2f ",val, poly(val,potencia(),sob)); return(0); } } int Derivada() { int i; float val; for(i=1;i<n-1;i++) der[i-1]=(i*sob[i]); printf("\n\nLa derivada de tu polinomio es:"); printf("\n\n\tP'(x) = "); for (i=0;i<potencia();i++) { if (der[i]!=0) { if (i!=potencia()-1) printf (" %5.2f x^%d + ",der[i],i); else printf ("%5.2f x^%d ",der[i],i); } } printf("\n\nx0 = "); scanf("%f",&val); printf("\n\tP'(%5.2f) = %5.2f ",val, poly(val,potencia()-1,der)); return(0); } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 44

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.9. INTEGRACION NUMERICA 10.9.1. CASO CONTINUO 10.9.1. SUMA DE RECTANGULOS

#include<conio.h> #include<stdio.h> #include<math.h> void Leer_Datos();int Diferencias();double fact(double n); int Equidistancia();float C[10],X[10],Y[10],Dif[10][10],DY[10]; float Ini,h;int n;void RECTANGULOS(); void main() { int i;float A=0; Leer_Datos(); Equidistancia(); for (i=0;i<n;i++) A=A+Y[i]; printf(" area aproximada es %10.3f",h*A); getch(); } void Leer_Datos() { clrscr(); int i,j; printf("Ingrese el numero de datos\n");scanf("%d",&n); printf("Ingrese los valores de X[i]\n"); for(i=0;i<n;i++) { printf("\tX[%d]= ",i); scanf("%f",&X[i]); } printf("Ingrese los valores de Y[i]\n"); for (i=0;i<n;i++) { printf("\tY[%d]= ",i); scanf("%f",&Y[i]); } Diferencias(); } int Diferencias() { int i,j; for (i=0;i<10;i++) for(j=0;j<10;j++) Dif[i][j]=0; for (i=0;i<n;i++) Dif[i][0]=Y[i]; for (j=1;j<n;j++) for (i=0;i<n-j;i++) Dif[i][j]=Dif[i+1][j-1]-Dif[i][j-1]; return(0); } double fact(double n) { if(n==0) return 1; else return n*fact(n-1); } int Equidistancia() { int i,j; for (j=0;j<n;j++) C[j]=X[j]; for (j=0;j<n-1;j++) C[j]=C[j+1]-C[j]; h=C[(int) n/2]; return(0); } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 45

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.9.2.

SUMA DE TRAPECIOS

#include "conio.h" #include "fstream.h" #include "math.h" float f(float x) { return exp(-x*x)/sqrt(2*3.141592); } void main() { float fa,fb,a,b,h,x,I,n; clrscr(); cout<<"\tMETODO DEL TRAPECIO\n"; cout<<"\n\tIngrese a = "; cin>>a; cout<<"\tIngrese b = "; cin>>b; cout<<"\tIngrese n = "; cin>>n; h=(b-a)/n; x=a+h;I=0; do{ I=I+f(x); x=x+h; } while (x<b); fa=f(a);fb=f(b); I=h*(fa+2*I+fb)/2; cout<<"\n\tIntegral I = "<<I; getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 46

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.9.3.

METODO DE SIMPSON

#include "conio.h" #include "fstream.h" #include "math.h" float f(float x) { return exp(-x*x)/sqrt(2*3.141592); } void main() { double n,fx1,fx2,a,b,I,h,x1,x2,fa,fb,I1,I2; clrscr(); cout<<"\n\tMETODO DE SIMPSON\n"; cout<<"\n\tIngrese a = "; cin>>a; cout<<"\tIngrese b = "; cin>>b; cout<<"\tIngrese divisiones n(par) = "; cin>>n; h=(b-a)/n; x1=a+h; x2=a+2*h; I1=0; I2=0; do{ fx1=f(x1); I1=I1+4*fx1; x1=x1+2*h; } while (x1<b); do{ fx2=f(x2); I2=I2+2*fx2; x2=x2+2*h; } while (x2<b); fa=f(a); fb=f(b); I=h*(fa+I1+I2+fb)/3; cout<<"\n\tIntegral I = "<<I; getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 47

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.9.2. CASO DISCRETO: FORMULA DE NEWTON COTES 10.9.2.1. SIMPSON 1/3

#include<stdio.h> #include<conio.h> #include<iostream.h> #include<math.h> int Q,W,N;float A, B , Iv, Ic, R, C,H,D,E; void main(void) {clrscr(); gotoxy(18,1); cout<<("********** METODO DE 1/3 SIMPSON *************"); cout<<("\n\n");gotoxy(25,3);cout<<("\n\n\n"); cout<<("introduzca el valor del limite inferior: ");cin>>A; cout<<("introduzca el valor del limite superior: ");cin>>B; cout<<("introduzca el valor verdadero de la integral: ");cin>>Iv; cout<<("introduzca el valor de N requerido: ");cin>>N;clrscr(); gotoxy(12,4);cout<<("********** RESULTADO **********"); gotoxy(10,6);cout<<("N");gotoxy(20,6);cout<<(" H "); gotoxy(30,6);cout<<(" Ic ");gotoxy(40,6);cout<<("Error "); if ((N%2)== 0) { Q=1; W=2; H=((B-A)/N); C= pow(A,3)- 2*pow(A,2) + A + 2 ;//ECUACION EN FUNCION DE "A" do {D=(A+(Q*H)); if(D==B) {E= pow(D,3) - 2*pow(D,2) + D + 2 ;//ECUACION EN FUNCION DE "D" C=C+E; } else {if ((W%2)==0) {E= pow(D,3) - 2*pow(D,2) + D + 2 ;//ECUACION EN FUNCION DE "D" C=C+(4*E); }else{E=1/(2+D);C=C+(2*E);}} Q=Q+1; W=W+1; } while(D<B); Ic=(H/3)*C; R=Iv-Ic; gotoxy(10,8);cout<<N; gotoxy(20,8);cout<<H; gotoxy(28,8);cout<<Ic; gotoxy(40,8);cout<<R; } else { gotoxy(7,9);cout<<("ERROR EL METODO SIRVE PARA MULTIPLOS DE 2"); } getch(); } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 48

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.9.2.2.

SIMPSON 3/8

#include<stdio.h> #include<conio.h> #include<iostream.h> #include<math.h> int Q,N; float A, B ,i, Iv, Ic, R, C, D,E,H; main() {clrscr();gotoxy(18,1); cout<<("********** METODO DE 3/8 SIMPSON *************"); cout<<("\n\n");gotoxy(23,3);cout<<("\n\n\n"); cout<<("introduzca el valor del limite inferior: ");cin>>A; cout<<("introduzca el valor del limite superior: ");cin>>B; cout<<("introduzca el valor verdadero de la integral: ");cin>>Iv; cout<<("introduzca el valor de N requerido: ");cin>>N; clrscr(); gotoxy(12,4);cout<<("********** RESULTADO **********"); gotoxy(10,6);cout<<("N");gotoxy(20,6);cout<<(" H "); gotoxy(30,6);cout<<(" Ic ");gotoxy(40,6);cout<<("Error "); if ((N%3)==0) {Q=1; H=((B-A)/N); C= 1/sqrt(1-A) ;//ECUACION EN FUNCION DE "A" do {D=(A+(Q*H)); if(D==B) {E= 1/sqrt(1-D) ;//ECUACION EN FUNCION DE "D" C=C+E; } else {E= E= 1/sqrt(1-D) ;//ECUACION EN FUNCION DE "D" C=C+(3*E); } Q=Q+1; } while(D<B); Ic=((H*3)/8)*C; R=Iv-Ic; gotoxy(10,8);cout<<N; gotoxy(20,8);cout<<H; gotoxy(28,8);cout<<Ic; gotoxy(40,8);cout<<R; } else { gotoxy(7,9);cout<<("ERROR EL METODO SIRVE PARA MULTIPLOS DE 3"); } getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 49

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.9.3. CUADRATURA GAUSSIANA


#include<stdio.h> #include<conio.h> #include<math.h> #include<iostream.h> #include<iomanip.h> #include<stdlib.h> #include<process.h> double funcion(double x) {return(1/(x+2)); //ingrese aqui la funcion } void main() {double W[20],X[10],a,b,alfa,h,s,R,C,RF,W1; int i,j,c,n; clrscr(); gotoxy(20,1); cout<<("****** DIFERENCIAS FINITAS ******"); cout<<("\n\n"); gotoxy(24,3); cout<<("\n\n\n"); cout<<"INTEGRACION NUMERICA\n<<METODO DE CUADRATURA DE GAUSS>>\nLa funcion debe ser insertada antes de correr el programa.\nPara usar el programa es necesario la tabla de puntos y pesos de Gauss.\n\n"; cout<<"\n"; cout<<"Ingrese n"<<": "; cin>>n; cout<<"Ingrese los puntos de Gauss:\n"; for(i=1;i<=n;i++){ cout<<"X["<<i<<"]: "; cin>>X[i];} cout<<"Ingrese los valores de W:\n"; for(i=1;i<=n;i++){ cout<<"W["<<i<<"]: "; cin>>W[i];} cout<<"\nIngrese el punto A: "; cin>>a; cout<<"Ingrese el punto B: "; cin>>b; cout<<"El valor de la integral es:\n"; cout<<"\n n I\n"; s=0; for(j=1;j<=n;j++){ C=((b-a)*X[j]+a+b)/2; R=W[j]*funcion(C); s=s+R;} RF=((b-a)/2)*s; printf(" %3d %15.12f\n",n,RF); getch();}

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 50

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.9.4. METODO DE ROMBERG


#include<conio.h> #include<stdio.h> #include<math.h> void Ingresos(); int dif(); int Tam(); float Ini,h,C[50],X[50],Y[50],Dif[50][50],DY[50],V[50],vec[50],RB[50][50]; int n,Fac[10]; void Integra(); int coef(int N); int caract(int N); float FaC(); float trapecios(float H, float cr[10],int Lim); void main() { clrscr(); printf("\n\t\t INTEGRACION MEDIANTE ROMBERG"); Integra(); } void Integra() { int i,j,k,m,g; int Limite; Ingresos(); Tam(); Limite=coef(n-1); for (i=0;i<Limite;i++) { caract(Fac[i]); RB[i][0]=trapecios(h*Fac[i],vec,caract(Fac[i])); } for(j=1;j<Limite;j++) { for (i=0;i<(Limite-j);i++) { RB[i][j]=RB[i+1][j-1]+((RB[i+1][j-1]-RB[i][j-1])/(pow(2,2*j)-1)); } } printf("\nEl area calculada es I = %10.1f",(2*RB[Limite-2][1]+FaC())/3); getch(); } int coef(int N) { int j=N; int i; if ((N % 2)== 0) { for (i=0;i<=N;i++) { if ((N%2)==0) Fac[i]=j; j=j/2; } j=0; for (i=0;i<=N;i++) { if (Fac[i]!=0) j=j+1; }}

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 51

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

else {clrscr(); printf ("Se necesita mayor cantidad de datos"); } return(j); } int caract(int N) { int j=0; int i=0,lon; for (i=0;i<10;i++) vec[i]=0; if (((N % 2)== 0)||(N==1)) { for (i=0;i<n;i=i+N) { vec[j]=Y[i]; j=j+1; } lon=j; //nos da el tamao del vector vec } else { clrscr(); printf ("Debes ingresar mas datos "); } return(lon); } float trapecios(float H, float cr[10],int Lim) { int i; float Sum=0; float Area=0; Sum=cr[0]+cr[Lim-1]; for (i=1;i<Lim-1;i++) Sum=Sum+2*cr[i]; Area=(float)(H/2)*Sum; return(Area); } void Ingresos() { int i,j; printf("\n\n\n\n\t\tIngrese k="); scanf("%d",&n); printf("\n\t\tIngresar X[i]\n\n"); for(i=0;i<n;i++) { printf("\tX[%d] = ",i); scanf("%f",&X[i]); } printf("\n\n\t\tIngresar Y[i]\n\n"); for (i=0;i<n;i++) { printf("\tY[%d] = ",i); scanf("%f",&Y[i]); } dif(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 52

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

int dif() { int i,j; for (i=0;i<10;i++) for(j=0;j<10;j++) Dif[i][j]=0; for (i=0;i<n;i++) Dif[i][0]=Y[i]; for (j=1;j<n;j++) for (i=0;i<n-j;i++) Dif[i][j]=Dif[i+1][j-1]-Dif[i][j-1]; return(0); } int Tam() { int i,j; for (j=0;j<n;j++) C[j]=X[j]; for (j=0;j<n-1;j++) C[j]=C[j+1]-C[j]; h=C[(int) n/2]; return(0); } float FaC() { int i; float Suma=0; Suma=Y[0]+Y[n-1]; for (i=1;i<n-1;i++) { if((i%3)==0) Suma=Suma+2*Y[i]; else Suma=Suma+3*Y[i]; } Suma=(3*h/8)*Suma; return Suma; int Limite,j; printf("\t\tTu tabla es:\n\n"); for(i=0;i<Limite;i++) { for(j=0;j<(Limite-i);j++) printf("%10.3f",RB[i][j]); printf("\n"); } }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 53

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.10. ECUACIONES DIFERENCIALES ORDINARIAS 10.10.1. METODO DE EULER


#include "conio.h" #include "fstream.h" #include "math.h" #include "iostream.h" float Df(float x,float y) { return y/x+2*x*y; // Ecuacion Diferencial y'=y/x+2*x*y } void main() { float fa,a,b,x,y,h,df; clrscr(); gotoxy(20,1); cout<<("****** METODO DE EULER ******"); cout<<("\n\n"); gotoxy(28,3); cout<<("\n\n\n"); cout<<"\n\tIngrese a = ";cin>>a; cout<<"\tIngrese b = ";cin>>b; cout<<"\tIngrese f(a) = ";cin>>fa; cout<<"\tIngrese h = ";cin>>h; x=a;y=fa; do{ y=y+h*Df(x,y); cout<<"\n\tx = "<<x; cout<<"\t\t\ty = "<<y; x=x+h; } while (x<=b+h); getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 54

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.10.2. METODO DE EULER MEJORADO, METODO DE HEUN


#include "conio.h" #include "fstream.h" #include "math.h" double oper(double x,double y,double h) { return y*(1+0.5*h*(1/x+2*x) )/(1-(1/(x+h)+2*(x+h))*0.5*h); } void main() { double fa,a,b,x,y,h,df; clrscr(); gotoxy(20,1); cout<<("****** METODO DE EULER MODIFICADO ******"); cout<<("\n\n"); gotoxy(25,3); cout<<("\n\n\n"); cout<<"\n\tIngrese a = "; cin>>a; cout<<"\tIngrese b = "; cin>>b; cout<<"\tIngrese f(a) = "; cin>>fa; cout<<"\tIngrese h = "; cin>>h; x=a; y=fa; do{ y=oper(x,y,h); x=x+h; cout<<"\n\tx = "<<x; cout<<"\t\ty = "<<y; } while (x<b); getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 55

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.10.3. METODO DE TAYLOR


#include <stdio.h> #include <conio.h> #include <math.h> #include <iostream.h> // METODO DE TAYLOR PARA RESOLVER ECUACIONES DIFERENCIALES // DEFINA F DONDE Y^= F(X,Y) float F (float X,float Y) { return Y * Y / X; } // INTRODUZCA LA DERIVADA PARCIAL DE F CON RESPECTO A Y float FY (float X,float Y) { return 2 * Y / X; } //INTRODUZCA LA DERIVADA PARCIAL DE F CON RESPECTO A X float FX (float X,float Y) { return -Y * Y / (X * X); } main() { int K,N,I; float X,Y,H,B; clrscr(); gotoxy(20,1); cout<<("****** METODO DE TAYLOR ******"); cout<<("\n\n"); gotoxy(21,3); cout<<("\n\n\n"); // DEFINA EL NUMERO DE SUNINTERVALOS printf("INTRODUZCA EL VALOR DE K\nK="); scanf("%d", &K); N = K; printf ("INTRODUZCA EL VALOR DE B\nB="); scanf("%f", &B); // CONDICIONES INICIALES printf ("CONDICIONES INICIALES DE X\nX="); scanf("%f", &X); printf ("CONDICIONES INICIALES DE Y\n") ; scanf("%f", &Y); H=(B-X)/N; printf("K\tXK\tYK\n"); printf("0\t%f\t%f\n",X, Y); for(I = 1;I<=N;I++) { Y = Y + H * F(X, Y) + .5 * H * H*(FX(X, Y) + F(X, Y) * FY(X, Y)); X = X + H; printf("%d\t%f\t%f\n",I, X, Y); } getch(); } As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 56

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.10.4. METODO DE RUNGE KUTTA DE SEGUNDO ORDEN


#include "conio.h" #include "fstream.h" #include "math.h" double f(double x,double y) { return y/x+2*x*y; // Ecuacion Diferencial y'=y/x+2*x*y } double K1(double h,double y,double x) { return h*f(x,y); // Ecuacion Diferencial } double K2(double h,double y,double x,double k1) { return h*f(x+h,y+k1); } void main() { double fa,a,b,x,y,h,k1,k2; clrscr(); cout<<"\n\tMETODO DE RUNGE KUTTA (ORDEN 2)\n"; cout<<"\n\tIngrese a = "; cin>>a; cout<<"\tIngrese b = "; cin>>b; cout<<"\tIngrese f(a) = "; cin>>fa; cout<<"\tIngrese h = "; cin>>h; x=a; y=fa; do{ k1=K1(h,y,x); k2=K2(h,y,x,k1); x=x+h; y=y+(k1+k2)/2; cout<<"\n\tk1 = "<<k1; cout<<"\tk2 = "<<k2; cout<<"\tx = "<<x; cout<<"\ty = "<<y; } while (x<b); getch(); }

// y'=-0.4y+0.2

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 57

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.10.5. METODO DE RUNGE - KUTTA DE CUARTO ORDEN


#include<stdio.h> #include<math.h> #include<conio.h> float f(float x,float y) { return x*x-y*y*y; } main() { clrscr(); printf("\t\t###########ECUACIONES DIFERENCIALES ##############\n"); printf("\t\t###############F=f(x,y)=2xy#####################\n"); printf("\n\n\t insertar:\n"); float a,b,h; int k,N; printf("\n\ta=");scanf("%f",&a); printf("\n\tb=");scanf("%f",&b); printf("\n\tN=");scanf("%d",&N); float Y[100],X[100]; printf("\n\tx0=");scanf("%f",&X[0]); printf("\n\ty0=");scanf("%f",&Y[0]); h=(b-a)/N; printf("\n\tk\t xk\t yk\t real\n"); printf("\n\t------------------------------\n"); float k1,k2,k3,k4; for(k=0;k<=N;k++) { k1=f(X[k],Y[k]); k2=f(X[k]+h/2,Y[k]+h*k1/2); k3=f(X[k]+h/2,Y[k]+h*k2/2); k4=f(X[k]+h,Y[k]+h*k3); Y[k+1]=Y[k]+h*(k1+2*k2+2*k3+k4)/6; X[k+1]=X[k]+h; printf("\t%d\t%0.4f\t%0.4f\t%0.4f\n",k,X[k],Y[k],exp(X[k]*X[k]-1)); } getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 58

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

10.10.6. PREDICTOR CORRECTOR


#include "conio.h" #include "fstream.h" #include "math.h" double f(double x,double y) { return y/x+2*x*y; // Ecuacion Diferencial y'=y/x+2*x*y } void main() { double fa,a,b,x,y,y1,h,df,yo,error=1e-6; int n=1; clrscr(); gotoxy(20,1); cout<<("****** METODO PREDICTOR CORRECTOR ******"); cout<<("\n\n"); gotoxy(25,3); cout<<("\n\n\n"); cout<<"\n\tIngrese a = ";cin>>a; cout<<"\tIngrese b = ";cin>>b; cout<<"\tIngrese f(a) = ";cin>>fa; cout<<"\tIngrese h = ";cin>>h; x=a;y=fa; do{ //PREDICTOR: EULER yo=y; y=y+h*f(x,y); //CORRECTOR: EULER MODIFICADO do{ y1=y; y=yo+0.5*h*( f(x,yo)+f(x+h,y) ); }while( fabs(y-y1)<error); cout<<"\n\tx = "<<x; cout<<"\t\t\ty = "<<yo; // n=n+1; x=x+h; } while (x<=b+h); getch(); }

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 59

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

11. CONCLUSIONES

Podemos decir que en el transcurso de trabajo realizamos un uso muy rico de las distintas libreras que presenta el programa de Borland C, pero es bueno decir que existen muchas libraras mas que no se utilizaron en el presente trabajo, tambin realizamos las sintaxis de muchos programas de manera ordenada y clara, as cumpliendo con nuestros objetivos previamente planteados podemos concluir que el documento se realizo de manera satisfactoria, esperando siempre recomendaciones y sugerencias de muchos lectores, y agradeciendo e antemano todas sus criticas constructivas, tambin agradecer a la licenciada V. Zota Uo docente titular de la carrera de Ingeniera Electrnica que un semestre antes nos dicto la materia de Programacin ETN-307 que fue de grana ayuda para este trabajo, as concluyo que el trabajo se lo realiz de manera satisfactoria.

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 60

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

12. ANEXOS
TABLA CORRESPONDIENTE AL CDIGO ASCII Sigla En Ingls De American Standard Code For Information Interchange ( Cdigo Estadounidense Estndar para el Intercambio de Informacin )
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 ! # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 z { | } ~ 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 61

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++ n

56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

8 9 : ; < = > ? @ A B C D E F G H I J K L

101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121

e f g h i j k l m n o p q r s t u v w x y

146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

Pt

191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211

236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 62

FACULTAD DE INGENIERIA INGENIERIA ELECTRNICA U.M.S.A. LA PAZ BOLIVIA

UNIVERSITARIO: QUIMBERT MONTES DIEGO ENRIQUE RU: 1650435 CI: 5919711 CBBA TCNICAS NUMRICAS, ORIENTADO A C++

Caracteres ASCII de control 15SI(desplaza adentro) 00NULL(carcter nulo) 01SOH(inicio encabezado) 02STX(inicio texto) 03ETX(fin de texto) 04EOT(fin transmisin) 05ENQ(consulta) 06ACK(reconocimiento) 07BEL(timbre) 08BS(retroceso) 09HT(tab horizontal) 10LF(nueva lnea) 11VT(tab vertical) 12FF(nueva pgina) 13CR(retorno de carro) 14SO(desplaza afuera) 16DLE(esc.vnculo datos) 17DC1(control disp. 1) 18DC2(control disp. 2) 19DC3(control disp. 3) 20DC4(control disp. 4) 21NAK(conf. negativa) 22SYN(inactividad snc) 23ETB(fin bloque trans) 24CAN(cancelar) 25EM(fin del medio) 26SUB(sustitucin) 27ESC(escape) 28FS(sep. archivos) 29GS(sep. grupos) 30RS(sep. registros) 31US(sep. unidades) 127DEL(suprimir)

As tambin Cristo fue ofrecido una sola vez para llevar los pecados de muchos; y aparecer por segunda vez, sin relacin con el pecado, para salvar a los que le esperan HEBREOS 9:28 Pgina 63

También podría gustarte