You are on page 1of 6

OCTABA PRÁCTICA DE METODOS NUMERICOS

Alvaro, Alvarado Arista.

1. Hacer un programa en Matlab para la Regla del Trapecio, Simpsom, Regla de los 3/8.

Programa regla del Trapecio

function rtrapecio
global fun
fun=input('ingrese la función\n','s');
b=input('ingrese el límite superior de la integral \n');
a=input('ingrese el límite inferior de la integral \n');
h=(b-a)/2;
x=a;
fa=eval(fun);
x=b;
fb=eval(fun);
fprintf('la integral aproximada es =%f\n',h*(fa+fb))

Programa de Simpson

function simpson
global fun
fun=input('ingrese la función\n','s');
b=input('ingrese el límite superior de la integral \n');
a=input('ingrese el límite inferior de la integral \n');
c=(b+a)/2;
h=(b-a)/2;
x=a;
fa=eval(fun);
x=b;
fb=eval(fun);
x=c;
fc=eval(fun);
fprintf('la integral aproximada es =%f\n',(h/3)*(fa+4*(fc)+fb))

Programa regla de los 3/8

function tresoct
global fun
fun=input('ingrese la función\n','s');
b=input('ingrese el límite superior de la integral \n');
a=input('ingrese el límite inferior de la integral \n');
c=(b+2*a)/3;
d=(2*b+a)/2;
h=(b-a)/3;
x=a;
f0=eval(fun);
x=b;
f3=eval(fun);
x=c;
f1=eval(fun);
x=d;
f2=eval(fun);
fprintf('la integral aproximada es
=%f\n',3*(h/8)*(f0+3*(f1)+3*(f2)+(f3))
2. Hacer un programa en Matlab para la Regla del Trapeco compuesto, Simpson compuesto.

Trapecio compuesto

function trapc
global fun
fun=input('ingrese la función\n','s');
b=input('ingrese el límite superior de la integral \n');
a=input('ingrese el límite inferior de la integral \n');
n=input('ingrese el numero de intervalos \n');
h=(b-a)/n;
s=0;
x=a;
f0=eval(fun);
x=b;
fn=eval(fun);
for i=1:n-1
x=a+i*h;
fx=eval(fun);
s=s+fx;
end
fprintf('la integral aproximada es =%f\n',(h/2)*(f0+fn+2*s))

Simpson compuesto

function simpc
global fun
fun=input('ingrese la función\n','s');
b=input('ingrese el límite superior de la integral \n');
a=input('ingrese el límite inferior de la integral \n');
n=input('ingrese el numero de intervalos \n');
h=(b-a)/(2*n);
x=a;
f0=eval(fun);
x=b;
fn=eval(fun);
s1=0;
s2=0;
for i=1:2*n-1
if mod(i,2)==0
x=a+i*h;
f1=eval(fun);
s1=s1+f1;
else
x=a+i*h;
f2=eval(fun);
s2=s2+f2;
end
end
fprintf('la integral aproximada es =%f\n',(h/3)*(f0+fn+2*s1+4*s2))
𝜋
3. Hallar la integral de 0
tan 𝑥 𝑑𝑥 usando la regla del Trapecio, regla de Simpsom, regla de los 3/8.
Compare sus resultados con el valor real.

El valor que mejor se aproxima es el de la regla de Simpson


𝜋
4. Considere 0
tan 𝑥 𝑑𝑥 . Use la regla de Simpsom compuesto con n=4 y n=8 para aproximar la
integración. Compare con su valor real.

El valor real de la integral es 0.346573590281


Se obtendrá una mejor aproximación a medida que utilicemos mas intervalos.

5. Programa: La integración por Romberg

function Romberg

global fun

fun=input(‘ingrese la función\n’,’s’);

b=input(‘ingrese el límite superior de la integral \n’);

a=input(‘ingrese el límite inferior de la integral \n’);

n=input(‘ingrese el numero de intervalos \n’);

h=(b-a);

m=1;

j=0;

r=zeros(n,n);

x=a;

x1=eval(fun);

x=b;

f2=eval(fun);

r(1,1)=h*(f1+f2)/2;

while (j<(n-1))

j=j+1;

h=h/2;

s=0;

for p=1:m

x=a+h*(2*p-1);

f3=eval(fun)

s=s+f3;

end

r(j+1,1)=(1/2)*(r(j,1))+h*s;

m=2*m;

for k=1:j
r(j+1,k+1)=r(j+1,k)+(r(j+1,k)-r(j,k))/(4^k-1)

end

i=r(j+1,j+1)

𝜋/2
6. Considere 0
𝑥 2 + 𝑥 + 1 ∗ cos⁡
(𝑥)𝑑𝑥 . Use la integración de Romberg para la integración
aproximada con n=6.

2 2
7. Modifque el programa de Romberg, para aproximar 0
𝑥 2 ∗ 𝑒 −𝑥 𝑑𝑥, cuando la tolerancia =
𝑅 𝑛, 𝑛 − 𝑅(𝑛 − 1, 𝑛 − 1) < 10^(−6).

Modificando el programa…

function Romberg
global fun
fun=input('ingrese la función\n','s');
b=input('ingrese el límite superior de la integral \n');
a=input('ingrese el límite inferior de la integral \n');
n=input('ingrese el numero de intervalos \n');
h=(b-a);
m=1;
j=0;
r=zeros(n,n);
x=a;
f1=eval(fun);
x=b;
f2=eval(fun);
r(1,1)=h*(f1+f2)/2;
while (j<(n-1))
j=j+1;
h=h/2;
s=0;
for p=1:m
x=a+h*(2*p-1);
f3=eval(fun);
s=s+f3;
end
r(j+1,1)=(1/2)*(r(j,1))+h*s;
m=2*m;
for k=1:j
r(j+1,k+1)=r(j+1,k)+(r(j+1,k)-r(j,k))/(4^k-1);
end
if abs(r(j+1,j+1)-r(j,j))<10^(-6)
t=r(j,j);
j=n;
end
end
r
if j==n
t
else
r(j+1,j+1)
end