Sei sulla pagina 1di 19

Divisin Acadmica de ingeniera y Arquitectura

(DAIA)
Asignatura:
Mtodos Numricos
Tarea:
Programas
Alumnos:
Hctor Manuel Ramrez Lpez
Edgar Jess Garca Avendao
Fernando Hernndez Moreno
Profesor:
Jos Luis Jimnez Len
Fecha:
30/11/2012
1

BISECCION-------------------------------------------------------------- (3-4)
SECANTE----------------------------------------------------------------- (5-7)
ELIMINACION DE
GAUSS--------------------------------------------- (8-11)
MATRIZ
INVERSA------------------------------------------------------ (12-14)
MINIMOS
CUADRADOS----------------------------------------------(15-17)
1

const
euler=2.718281828;
var
x1,xu,xm,Xma,fx1,fxm,e,xr:real;
begin
x1:=strtofloat(edit1.text);
xu:=strtofloat(edit2.text);
e:=0;
Xma:=0;
Repeat
xm:=(x1+xu)/2;
e:= ((Xma Xm)/Xm) *100;
fx1:=exp(-x1*Ln(euler))-x1;
fxm:=exp(-xm*Ln(euler))-xm;
xr:=fx1*fxm;
Xma:=Xm;
if xr>0
then
x1:=xm;
else
xu=xm;
until (abs(e)<5);
edit3.text:=floattostr(xm);
end;

Valor de X1
Valor de XU
Xma 0
Repetir

Xm (X1 + Xu)/2
Error ((Xm ant Xm act)/Xm act) *100
Fx1
Fxm
Xr FX1 * FXm
Xma Xm
Si Xr > 5
Entonces
X1 Xm
De lo contrario
Xu Xm
Hasta error<5
Imprimir Xm

INICIO
N, Xi,Xu,f(x)

Si

No

f(xi)*f(x
m)>0

Si

xixm

No

Xm

xuxm

Fin

Var
X1,X2,X3, error :real;
Begin
X1:= StrTofloat(Edit1.Text);
X2:= StrTofloat(Edit2.Text);
Repeat
Fx1:= (Exp(-x1*(Ln(e))))-x1;
Fx2:= (Exp(-x2*(Ln(e))))-x2;
X3:= (xi-((Fx1*(x2-X1)))/(Fx2-Fx1));
Fx3:= (Exp(-x3*(Ln(e))))-x3;
error:= (abs((x2-x3)/x3))*100;
X1:= x2;
X2:= X3;
Until error<5;
Edit3.text:= FloatToStr(x3);
End;

Coeficientes de la ecuacin

Valor de X1
Valor de X2
Repetir
f(x1)
f(x2)
X3 (x1-((Fx1*(x2-X1)))/(Fx2-Fx1));
F(X3)
Error ((X2 X3)/X3)*100)
X1 X2
X2 X3
Hasta Error < 5
Imprimir X3

INICIO
N, Xi, Xi-, f(x)

Xi= Xi+1
Xi-1= Xi+1

N=

No

10

Si
Xi-1

Fin

Grado de la ecuacin N
Coeficientes de la ecuacin

0<=i<=n

Tolerancia tol
Valor de X1
Valor de X2
Y1 f(x1)
Y2 f(x2)
Contador 0
Repetir
X3 X1 + (Y1*(X2-X1)/(Y1+Y2))
Y3 F(X3)
Si (Y3*Y2) >0
Entonces
X1 X3
Y1 Y3
De lo contrario
X2 X3
Y2 Y3
Contador contador + 1
Hasta (X2-X1) <= tol p (contador>100)

procedure TForm1.Button1Click(Sender: TObject);


var
A: Array[1..10,1..10] of real;
I,K,J,NE: integer;
X,Suma: real;
Begin
For I:=1 To 10 Do
For K:=1 TO 10 Do
A[I,K]:= StrToFloat(StringGrid1.Cells[K,I]);
NE:= StrToInt(Edit1.text);
For I:=1 To NE Do
For J:=I+1 To NE Do
For K:= I+1 To NE+1 Do
A[J,K]:= A[J,K]-(A[I,K]/A[I,I])*A[J,K];
X:= A[NE,NE]+1/A[NE,NE];
For I:= NE-1 To 1 Do
Suma:= 0;
For K:= I+1 To NE Do
Suma:= Suma+A[I,K]*X[K];
For I:=1 To NE Do
X[I]:= 1/A[I,I]*(A[I,NE+1]-Suma);
For I:=1 To NE Do
StringGrid1.Cells[I,5]:= FloatToStr(X[I]);
end;.

INICIO
[A], NE

I=1
J=I+1
K=I+1

a[j,k] a [j,k]-[a[I,k]/a[I,i])*a[j,k]
K=I + 1
J= J + 1

K= K + 1

K NE
+1

I= I + 1
J= I + 1

J NE

K= I + 1

I NE

Si

x= aNE + 1/aNE,NE

I= NE - 1

Suma= 0

K= I + 1

Suma= suma + (a[i,k]*x[k])

K NE

K= I + 1

Si

K= k + 1

I= J + 1

Si

I1
No
I=1

XI= 1/a[I,I]*(aINE+1-suma)

I NE

Si

I= I +
1

No

X1

FIN
1

Numero de ecuaciones
n
Matriz aumentada
1<= i<=n i<=k<=n+1
Hacer I de 1 hasta NE-1
Hacer J de I+1 hasta NE
Hacer K de I+1 hasta NE+1
- /
*
,
/
Hacer I de NE-1 hasta 1
Suma0
Hacer K de I+1 hasta NE
Suma Suma + *
1/ ( ,NE+1-Suma)
Imprimir

Var
A,B: Array[1..10,1..10]of real;
I,K,J,NR: Integer;
begin
NR:= StrToInt(Edit1.Text);
For I:=1 To NR Do
For K:=1 To NR*2 Do
A[I,K]:= StrToFloat(StringGrid1.Cells[K,I]);
For I:=1 To NR Do
Begin
For K:=1 To NR Do
If K<>I
Then
Begin
For J:=I+1 To NR*2 Do
A[K,J]:= A[K,J]-((A[I,J]/A[I,I])*A[K,I]);
A[K,I]:= A[K,I]-((A[I,I]/A[I,I])*A[K,I]);
end;
For J:=I+1 To NR*2 Do
A[I,J]:= A[I,J]/A[I,I];
A[I,I]:= A[I,I]/A[I,I];
End;
For I:=1 To NR Do
For K:=1 To NR*2 Do
StringGrid2.Cells[K,I]:= FloatToStr(A[I,K]);
end;

INICIO
[A], NR

I=1

K=I+1

KI+1
JI+1

a[k,j] a [k,j]-[a[I,k]/aII)*a[k,j]

K NR

Si

K= K + 1

No
I= I + 1
Si

K= I + 1

J NR

J= I + 1

No

I NR

Si

No
[A]

Fin

Numero de ecuaciones NE
Matriz aumentada ai,K 1<=i<=NE 1<=K<=NE+1*2
Hacer I de q hasta NE
Hacer J de 1 hasta NE
Si J<>I
Entonces
Hacer K de I+1 hasta NE+1*2
aj,k aj,k-(ai,k/ai,i)*aj,i
Hacer k de I+1 hasta NE+1*2
aj,k ai,k/ai,i
Hacer I de 1 hasta NE
X1<--ai,NE+1
Imprimir Xi

VAR
N,I:INTEGER;
X:ARRAY[1..10]OF REAL;
Y:ARRAY[1..10]OF REAL;
FY:ARRAY[1..10]OF REAL;
A1,A0,PX,PY,SX,SY,XY,SX2:REAL;
begin
N:=STRTOINT(EDIT1.TEXT);
FOR I:=1 TO N DO
BEGIN
X[I]:=STRTOFLOAT(STRINGGRID1.Cells[1,I]);
Y[I]:=STRTOFLOAT(STRINGGRID2.Cells[1,I]);
END;
SX:=0;
SY:=0;
XY:=0;
FOR I:=1 TO N DO
BEGIN
SX:=SX+X[I];
PX:=SX/N;
SY:=SY+Y[I];
PY:=SY/N;
XY:=XY+(X[I]*Y[I]);
END;
SX2:=0;
FOR I:=1 TO N DO

SX2:=SX2+SQR(X[I]);
A1:=(N*XY-SX*SY)/(N*SX2-SQR(SX));
A0:=PY-(A1*PX);
FOR I:=1 TO N DO
BEGIN
FY[I]:=A0+(A1*X[I]);
STRINGGRID3.Cells[1,I]:=FLOATTOSTR(FY[I]);
EDIT2.Text:= FLOATTOSTR(A0);
EDIT3.Text:= FLOATTOSTR(A1);
END;
end;

INICIO
X, Y, n

y0=a0 +
a1X

Xi, Yi

Fin

Potrebbero piacerti anche