Está en la página 1de 12

UNIVERSIDAD JUREZ AUTNOMA DE TABASCO

DIVISIN ACADMICA DE INGENIERA Y ARQUITECTURA

INGENIERA CIVIL

ASIGNATURA: METODOS NUMERICOS

ALUMNO: FREDY ALBERTO GUTIERREZ MENDEZ


INTRODUCCION

En este trabajo se presentaran algunos mtodos para resolver ciertos


problemas de clculos numricos, por ejemplo; hacer una interpolacin de
grado dos para un conjunto de puntos dados, o calcular el rea que est
debajo de una curva, con ciertos mtodos que se aproximan a la integral
exacta que nos da el rea.

Algunos de estos programas se tendrn que interactuar casi siempre con el


mismo, como para ingresar una funcin, o los puntos en que queremos
realizar cierto mtodo, para despus realizar la operacin. Cuando no se tiene
la herramienta necesaria para resolver una integral o sus aplicaciones,
algunos de estos programas que implementan los mtodos, son muy tiles,
ya que estos son muy accesibles una vez que que estn programados.
Programas. ---
INTERPOLACIN MEDIANTE DIFERENCIAS DIVIDIDAS
Este mtodo tiene como objetivo crear un polinomio de grado n para
interpolacin conun conjunto de n+1 puntos.

function P=DiferenciasDiv(xi,yi)
%la funcion realiza el metodo de diferencias divididas,
% uso: DiferenciasDivididas(xi,yi)
%donde: xi y yi son son conjunto de puntos.
nx=length(xi); ny=length(yi);
if nx~=ny
disp('el tamao de los vectores no coincide');
return;
end;
n=nx;
M=zeros(n,n);
M(:,1)=yi; df=1;
for k=2:n
for f=1:n-k+1
M(f,k)=(M(f,k-1)-M(f+1,k-1))/(xi(f)-xi(f+df));
end;
df=df+1;
end;
for N=1:length(xi)
dif=num2str(abs(M(1,N)));
if N>1 & xi(N-1)<0
signo1='+';
else
signo1='-';
end;
if M(1,N)<0
signo2='-';
else
signo2='+';
end
if N==1
acum=num2str(M(1,1));
elseif N==2
pol=['(x' signo1 num2str(abs(xi(N-1))) ')' ];
act=[dif '' pol];
acum=[acum signo2 act];
else
pol=[pol '' '(x' signo1 num2str(abs(xi(N-1))) ')' ];
act=[dif '' pol];
acum=[acum signo2 act];
end
end
fprintf('\n Polinomio de Interpolacin : %s \n',acum);
ejemplo 1.-calcule el polinomio de interpolacin con los
puntos dados.
Xi=[1 2 3 4 5 6], yi=[0 2 4 8 16 35]

>> DiferenciasDiv([1 2 3 4 5 6],[0 2 4 8 16 35])


Polinomio de Interpolacin : 0+2(x-1)+0(x-1)(x-2)+0.33333(x-
1)(x-2)(x-3)+0(x-1)(x-2)(x-3)(x-4)+0.041667(x-1)(x-2)(x-3)(x-
4)(x-5)

Ejemplo 2.- calcule el polinomio de interpolacin para los


siguientes conjuntos de puntos.

Xi=[1 3 5 7 9 11], yi=[2 4 6 8 16 32]

>> DiferenciasDiv([1 3 5 7 9 11],[2 4 6 8 16 32])

Polinomio de Interpolacin : 2+1(x-1)+0(x-1)(x-3)+0(x-1)(x-


3)(x-5)+0.015625(x-1)(x-3)(x-5)(x-7)-0.0026042(x-1)(x-3)(x-5)(x-
7)(x-9)

Ejemplo 3.- calcule el polinomio de interpolacin de los


puntos dados.

Xi=[0 2 4 6 8 10 122 14], yi=[2 -2 4 -4 6 -6 8 -8]

>> DiferenciasDiv([0 2 4 6 8 10 122 14],[2 -2 4 -4 6 -6 8 -8])

Polinomio de Interpolacin : 2-2(x-0)+1.25(x-0)(x-2)-0.5(x-


0)(x-2)(x-4)+0.14583(x-0)(x-2)(x-4)(x-6)-0.033333(x-0)(x-2)(x-
4)(x-6)(x-8)+0.00028653(x-0)(x-2)(x-4)(x-6)(x-8)(x-10)-3.6846e-
005(x-0)(x-2)(x-4)(x-6)(x-8)(x-10)(x-122)
MTODO DE TRAPECIO MLTIPLE
El siguiente programa calcula el rea aproximada bajo de una curva dados los
intervalos de los cuales se quiere saber el rea.
function A=met_trapecio(f,a,b,n)
% el programa implemeta el metodo del trapecio multiple paa
calcular el
% area de bajo de una curva.
% uso: A=met_trapecio(f,a,b,n)
%donde: f es una cadena que contiene la funcion a resolver
% a y b son los puntos dados en x.
% n es el numero de intervalos desde a hasta b.

suma=0;
x=a; fx0=eval(f);
x=b; fxb=eval(f);
h=(b-a)/n;
i=1;
xi=a;
for i=1:n-1
if x<=b
x=xi+h; fx=eval(f);
suma=suma+fx;
xi=x;
end;
x=x+h;
i=i+1;
end;
A=((h/2)*(fx0+2*suma+fxb));

Ejemplo 1.- calcular el rea aproximada debajo de la curva de la siguiente


integral con el mtodo de trapecio mltiple.
4
() , = 0, = , =6
0

met_trapecio('sin(x)',0,pi,6)

ans =

1.9541
Ejemplo 2.- calcular el rea aproximada debajo de la curva de la siguiente
integral.
3
1
( 3 4) , = 0, = 3, = 10
0 4

met_trapecio('x^3/4-4*x',0,3,10)

ans =

-12.8869

Problema 3.- calcular el rea aproximada debajo de la curva de la siguiente


integral.

2
( 2 + 1) , = 0, = 2, =6
0

met_trapecio('x^2+1',0,2,6)

ans =

4.7037
MTODO DE 1/3 DE SIMPSON

El siguiente mtodo implementa el mtodo de 1/3 de Simpson, para calcular una


aproximacin al rea bajo de una curva, el programa funciona interactivamente, es
decir los valores de los puntos y la funcin se ingresan interactivamente.
fun=input('Ingresa la funcin f(x): ');
f=inline(fun);
n=1;
while mod(n,2)~=0
n=input('Ingrese el nmero de subintervalos: ');
if mod(n,2)~=0
disp('El nmero de subintervalos debe ser par')
return;
end
end
a=input('Ingrese el valor de a: ');
b=input('Ingrese el valor de b: ');
h=(b-a)/n;
suma1=0;
suma2=0;
for i=1:2:n-1
suma1=suma1+feval(f,h*i+a);
end
for i=2:2:n-2
suma2=suma2+feval(f,h*i+a);
end
int=(h/3)*(feval(f,a)+4*suma1+2*suma2+feval(f,b));
A=int
Ejemplo 1.- Calcule una aproximacin al rea debajo de la curva de la funcin
dada usando el mtodo de 1/3 de Simpson.

()
0

Ingresa la funcin f(x): 'sin(x)'

Ingrese el nmero de subintervalos: 6

Ingrese el valor de a: 0

Ingrese el valor de b: pi

A =

2.0009

Ejemplo 2.- calcule una aproximacin al rea bajo la curva de la funcin dada.
3
1
( 3 4)
0 4

Ingresa la funcin f(x): 'x^3/4-4*x'


Ingrese el nmero de subintervalos: 10
Ingrese el valor de a: 0
Ingrese el valor de b: 3

A =

-12.9375
Ejemplo 3.- calcule una aproximacin al rea bajo la curva de la funcin
dada.

2 1 2
( 2 0.2)
1

Ingresa la funcin f(x): 'exp(-x^2/2)-0.2'


Ingrese el nmero de subintervalos: 10
Ingrese el valor de a: 1
Ingrese el valor de b: 2

A =
0.1407
MTODO DE EULER
El siguiente programa calcula una aproximacin a la solucin de una ecuacin
diferencial dada. El programa funciona interactivamente, ya que, tanto valores
iniciales como la funcin se ingresaran en el programa.

% este programa actua interactivamente para ingresar los


valores iniciales
% y la ecuacion a resolver. el metodo que implementa es el
metodo de euler.

f=input('Ingrese la ecuacion diferencial:','s');


t0=input('Ingrese el primer punto ta:');
tb=input('Ingrese el segundo punto tb:');
y0=input('Ingrese la condicion inicial y0):');
n=input('Ingrese el numero de pasos n:');
h=(tb-t0)/n;
ts=t0:h:tb;
y1=y0;
fprintf('\n'' ti yi g(ti.yi)');
for i=1:n
it=i-1;
t0=ts(i);
t=t0;
tb=ts(i+1);
y=y0;
y1=y0+h*eval(f);
fprintf('\n%10.6f%10.6f%10.6f\n',t0,y1,eval(f));
y0=y1;
end

yi=y0

Problema 1.- calcular una aproximacin a la solucin de = 3 2 2 ,

con y0=1 en 0. Calcule para ta=0, tb=4 y n=8.
Ingrese la ecuacion diferencial:3*t^2-2*y*t
Ingrese el primer punto ta:0
Ingrese el segundo punto tb:4
Ingrese la condicion inicial y0):1
Ingrese el numero de pasos n:8

' ti yi g(ti.yi)
0.000000 1.000000 0.000000
0.500000 0.875000 -0.250000
1.000000 1.500000 1.250000
1.500000 2.625000 2.250000
2.000000 3.375000 1.500000
2.500000 4.312500 1.875000
3.000000 4.875000 1.125000
3.500000 6.187500 2.625000

yi =
6.1875


2.- calcule una aproximacin a la solucin de la ecuacin dada
= 3 + 3
con: ta=0, tb=2, y0=0 y n=8

Ingrese la ecuacion diferencial:y*exp(-3*t)+3


Ingrese el primer punto ta:0
Ingrese el segundo punto tb:2
Ingrese la condicion inicial y0):0
Ingrese el numero de pasos n:8

' ti yi g(ti.yi)
0.000000 0.750000 3.000000
0.250000 1.588569 3.354275
0.500000 2.427183 3.354458
0.750000 3.241139 3.255823
1.000000 4.031481 3.161367
1.250000 4.805183 3.094811
1.500000 5.568529 3.053381
1.750000 6.325834 3.029221

yi =

6.3258

3.-Calcule una aproximacin a la solucin de
= 2 +
Con ta=0, tb=3, y0=1, n=10

Ingrese la ecuacion diferencial:2*y+t


Ingrese el primer punto ta:0
Ingrese el segundo punto tb:3
Ingrese la condicion inicial y0):1
Ingrese el numero de pasos n:10

' ti yi g(ti.yi)
0.000000 1.600000 2.000000
0.300000 2.650000 3.500000
0.600000 4.420000 5.900000
0.900000 7.342000 9.740000
1.200000 12.107200 15.884000
1.500000 19.821520 25.714400
1.800000 32.254432 41.443040
2.100000 52.237091 66.608864
2.400000 84.299346106.874182
2.700000135.688953171.298692

yi =

135.6890