Sunteți pe pagina 1din 14

SIMPSON

program intesimp; uses crt; var a,b,h,is,si,sp,x :real; n,j,n1,n2:integer; function fundef(x:real):real; begin {aqui introdusca la function que desea nintegrar} Fundef:=1/(1+X); END; Begin Clrscr; Writeln('integracion numerica-regla de simpson'); Write('limite de integracin inferior:'); Readln(a); Write('limite de integracin superior :'); Readln(b); Write('numero par de intervalos:'); Readln(n); H:=(b-a)/2*n; N1:=(2*n)-1; N2:=2*(n-1); J:=1; Si:=0; While j<=n1 do Begin X:=a+h*j; Si:= si+fundef(x);

J:=j+2; End; J:=2; sp:=0; While j<=n2 do Begin X:=a+j*h; Sp:=sp+fundef(x); J:=J+2; End; Is:=h*(fundef(a)+4*si+2*sp+fundef(b)/3); Writeln('la integral pedida es :' , is:0:8); Write('pulse cualquier tecla..');readkey;end.

BISECCION

program biseccion; uses crt; {} {metodo de biseccion para calcular la raiz de una funcion} {definida en function F(x:real).real} {datos necesarios :intervalo de localizacion} {precision deseada} function F(x:real):real; begin f:=exp(-x)+x-2; end; {} var A,B,E,A1,B1 : REAL;

FA,FB,M,FM,L,P: REAL; I:integer; begin clrscr; gotoxy(5,10);write(' del intervalo de localizacion: '); readln(A,B); gotoxy(5,12);write('precision deseada: '); readln(E); A1:=A; B1:=B; FA:=F(A1); REPEAT M:=(A1+B1)/2;FM:=F(M);P:=FA*FM;I:=I+1; if P=0.0 then L:=0.0 else begin if p<0.0 then B1:=M else begin A1:=M; FA:=FM end; L:=B1-A1 end; until L<E; clrscr; gotoxy(5,10);writeln('raiz buscada',M:0:8); gotoxy(5,12);writeln('presicion lograda',L:0:8); gotoxy(5,14);writeln('valor de la funcion',F(M):0:8); gotoxy(5,18);writeln('iteraciones',I:6); gotoxy(5,22);writeln('pulse[C]para continuar');

repeat until keypressed; clrscr; end.

BUSQUEDA

program busqueda; uses crt; {busqueda de raices teniendo en cuenta el cambio} {de signo del grafico de la fucnion F(x) definido} {en FUNCTION (X:REAL):REAL:} {datos necesarios: intervalo donde se busca } {paso de busqueda} {} function F(X:real):real; begin F:=exp(-x)+x-2; ENd; {} var A,B,H:REAL; N:INTEGER; x1,x2,x,f1,f2,p:real; w:char; begin clrscr; gotoxy(5,10); write('del intervalo y paso de busqueda:'); readln(a,b,h); X1:=A;X2:=A-H;F1:=F(X1);REPEAT F2:=F(X2);P:=F1*f2;

if(P<=0.0) then begin clrscr;gotoxy(5,12); writeln('en el intervalo[ X1:0.4,X2:0:4] hay raiz');

gotoxy(5,20); writeln('anote y pulse [c] para continuar'); w:=readkey; end; X1:=X2; F1:=F2; X2:=X2+H; until X2>B; gotoXY(5,22);writeln('terminamos la busqueda pulse [c]'); repeat until keypressed;clrscr; end.

METODO PUNTO FIJO ECUACIONES NO LINEALES {metodo de aperoximacion sucesiva para calcular el punto} {fijo del sistema definido en FUNCTION G(X:real):real} {SE CONSIDERA UN TOPE DE 200 ITERACIONES} {DATOS NECESARIOS:PUNTO INICIAL} {PRECISION DESEADA} {} uses crt; CONST TOPE=200; function G(X:real):real; begin G:=2-exp(-x); END;

{} var X,X1,E,FX,L:real; I:integer; begin clrscr;GOTOXY(10,10); write('PUNTO INICIAL Y precision:'); readln(X,E); L:=E;I:=0; repeat X1:=G(X);L:=abs(X1-X);X:=X1;I:=I+1; UNTIL(L<E) OR (I>TOPE); CLRSCR;

gotoxy(5,10);writeln('SOLUCION ',X:0:8); gotoxy(5,12);writeln('PRECISION ',L:0:8); gotoxy(5,14);writeln('iteraciones',I:6); gotoxy(5,22);write('pulse[c] para continuar'); repeat until keypressed;clrscr; end. PUNTO FIJO. SISTEMA DE ECUACIONES LINEALES {metodo de aperoximacion sucesiva para calcular el punto} {fijo del sistema definido en:} {FUNCTION FX{X,Y:REAL}:REAL:}{FUNCTION GX{X,Y:REAL}:REAL:} {SE CONSIDERA UN TOPE DE 200 ITERACIONES} {DATOS NECESARIOS:PUNTO INICIAL (X,Y)} {PRECISION DESEADA} {} uses crt;

CONST TOPE=200; function FX(X,Y:real):real; begin FX:=SIN(Y); END; FUNCTION GY(X,Y:REAL):REAL; BEGIN GY:=cos(X); end; {} var X0,X1,Y0,Y1,E,L:REAL; I:integer; begin clrscr; gotoxy(10,10); write('PUNTO INICIAL Y precision:'); readln(X0,Y0,E); L:=E;I:=0; repeat X1:=FX(X0,Y0); Y1:=GY(X0,Y0); L:=SQRT((X1-X0)*(X1-X0)+(Y1-Y0)*(Y1-Y0)) ; X0:=X1;Y0:=Y1;I:=I+1; UNTIL(L<E) OR (I>TOPE); CLRSCR;

gotoxy(5,10);writeln('SOLUCION X =',X0:0:8); gotoxy(5,12);writeln('SOLUCION Y =',X0:0:8);

gotoxy(5,14);writeln('PRECISION',L:0:8); gotoxy(5,16);writeln('iteraciones',I:6); gotoxy(5,22);writeln('pulse[c] para continuar'); repeat until keypressed;clrscr; end.

NEWTON {metodo de NEWTON para calcular la raiz de la funcion} {la raiz de la funcion que esta definida en} {function F(X:real):real Y SU DERIVADA} {datos necesarios:intervalo (A,B) de localizacion}{(precision deseada} {} uses crt; function F(x:real):real; begin F:=exp(-x)+x-2; end; FUNCTION DF (X:REAL):REAL; BEGIN DF:=1-exp(-x);END; {} var X,X1,E,FX,DX,L:REAL; I:integer; begin

clrscr; gotoxy(10,10); write('PUNTO INICIAL Y precision:'); readln(X,E);

L:=E;I:=0; repeat DX:=DF(X); IF (DX=0.0) THEN BEGIN GOTOXY(10,20);WRITELN('ELIJA OTRO PUNTO INICIAL Hay divergencia'); repeat until keypressed;halt; end else begin X1:=X-F(X)/DX;L:=ABS(X1-X);X:=X1;I:=I+1; END; UNTIL(L<E);CLRSCR; GOTOXY(5,10);WRITELN('SOLUCION',X:0:10);

gotoxy(5,12);writeln('precision lograda',L:0:10); gotoxy(5,14);writeln('valor de la funcion',F(X)); gotoxy(5,16);writeln('iteraciones',I:6); gotoxy(5,22);writeln('pulse[c] para continuar'); repeat until keypressed;clrscr; end. REGULA FALSI {metodo de regula falsi o falsa posicion para calcular} {la raiz de la funcion que esta definida en} {function F(X:real):real} {datos necesarios:intervalo (A,B) de localizacion}{(precision deseada} {} uses crt; function F(x:real):real;

begin F:=exp(-x)+x-2; end; {} var A,B,E,P,L,A1,B1,FA,FM,FB,X,M:REAL; I:integer; begin clrscr; gotoxy(5,10); write('intervalo de localizacion y de precision:'); readln(A,B,E); A1:=A;B1:=B;FA:=F(A1);FB:=F(B1);i:=0;X:=A; repeat M:=A1-FA/((FB-FA)/(B1-A1)); FM:=F(M);P:=FA*FM;I:=I+1; if P=0.0 then L:=0.0 else begin if P<0.0 then begin B1:=M;FB:=FM; end else BEGIN A1:=M;FA:=FM; end; L:=abs(m-x);X:=M; end; until L<E ;

clrscr; gotoxy(5,12);writeln('raiz buscada',M:0:8); gotoxy(5,14);writeln('precision lograda',L:0:8); gotoxy(5,16);writeln('valor de la funcion',F(M):0:8); gotoxy(5,18);writeln('iteraciones',I:6); gotoxy(5,22);writeln('pulse[c] para continuar'); repeat until keypressed;clrscr; end. SECANTE {metodo dela secante para calcular la raiz de la funcion} {la raiz de la funcion que esta definida en} {function F(X:real):real} {datos necesarios:intervalo (A,B) de localizacion}{(precision deseada} {} uses crt; const tope=200; function F(x:real):real; begin F:=exp(-x)+x-2; end; {} var A,B,E,L,X1,F1,X2,F2,X:REAL; I:integer; begin clrscr; gotoxy(5,10); write('intervalo de localizacion y de precision:'); readln(A,B,E); X1:=A;X2:=B;F1:=F(X1);I:=0; repeat

F2:=F(X2);X:=X2-F2/((F2-F1)/(X2-X1)); L:=ABS(X-X2);I:=I+1; X1:=X2;F1:=F2;X2:=X; UNTIL(L<E) OR (I>TOPE); CLRSCR;

gotoxy(5,12);writeln('raiz buscada',X:0:8); gotoxy(5,14);writeln('precision lograda',L:0:8); gotoxy(5,16);writeln('valor de la funcion',F(X)); gotoxy(5,18);writeln('iteraciones',I:6); gotoxy(5,22);writeln('pulse[c] para continuar'); repeat until keypressed;clrscr; end. {metodo de regula falsi o falsa posicion para calcular} {la raiz de la funcion que esta definida en} {function F(X:real):real} {datos necesarios:intervalo (A,B) de localizacion}{(precision deseada} {} uses crt; function F(x:real):real; begin F:=exp(-x)+x-2; end; {} var A,B,E,P,L,A1,B1,FA,FM,FB,X,M:REAL; I:integer; begin clrscr; gotoxy(5,10);

write('intervalo de localizacion y de precision:'); readln(A,B,E); A1:=A;B1:=B;FA:=F(A1);FB:=F(B1);i:=0;X:=A; repeat M:=A1-FA/((FB-FA)/(B1-A1)); FM:=F(M);P:=FA*FM;I:=I+1; if P=0.0 then L:=0.0 else begin if P<0.0 then begin B1:=M;FB:=FM; end else BEGIN A1:=M;FA:=FM; end; L:=abs(m-x);X:=M; end; until L<E ; clrscr; gotoxy(5,12);writeln('raiz buscada',M:0:8); gotoxy(5,14);writeln('precision lograda',L:0:8); gotoxy(5,16);writeln('valor de la funcion',F(M):0:8); gotoxy(5,18);writeln('iteraciones',I:6); gotoxy(5,22);writeln('pulse[c] para continuar'); repeat until keypressed;clrscr; end.

S-ar putea să vă placă și