Está en la página 1de 8

EXAMEN PARCIAL DE MÉTODOS NUMÉRICOS 1:

ALUMNO: JIMENEZ DE LA CRUZ JONATHAN CODIGO:14130047

PROBLEMA N°1:

function r=Vocupado(x)
syms x
p=3.5*10^7;
a=0.401;
N=1000;
b=42.7*10^-6;
k=1.3806503*10^-23;
T=300;
r=(p+a*((N/x)^2))*(x-N*b)-k*N*T;
end

function[tabla]=fbisecttablapar(f,xl,xu,imax,es)
f=inline(f);
while feval(f,xl)*feval(f,xu)>0
xl=xu;
xu=xu+1;
end
i=1;
ea=1;
e(1)=1;
xrold=0;
while (i<=imax)&&(es<ea)
xr(i)=(xl+xu)/2;
l(i)=feval(f,xr(i));
I(i)=i;
if xr~=0
e(i+1)=abs(((xr(i)-xrold)/xr(i))*100);
end
if feval(f,xl)*feval(f,xr(i))<0
xu=xr(i);
elseif feval(f,xl)*feval(f,xr(i))>0
xl=xr(i);
else
e(i+1)=0;
end
xrold=xr(i);
i=i+1;

end
for j=1:i-1
ea(j)=e(j+1);
end
tabla=[I;xr;l;ea];
function[tab]=FunNewtonpar(f,x0,EPS,EPS1,imax)
g=inline(f);
n=inline(f);
i=1;
df1=diff(sym(f));
df=inline(df1);
der=inline(df1);
while i<=imax
x(i)=x0-g(x0)/df(x0);
Ea(i)=abs(x(i)-x0);
I(i)=i;
ft(i)=der(x(i));
fr(i)=n(x(i));
if abs(x(i)-x0)<EPS
break
end
if abs(g(x(i)))<EPS1
break
end
x0=x(i);
i=i+1;
end
tab=[I;x;ft;Ea;fr];

close all
clear all
fprintf('BISECCION Y NEWTON\n')
fprintf('==================\n')
f=input('Ingrese la funcion:');
xl=input('Ingrese el limite inferior:');
xu=input('Ingrese el limite superior:');
imax=input('Ingrese el número de iteraciones máxima:');
es=input('Ingrese el error fijado:');
fprintf('\nIterando 2 veces por metodo de biseccion:\n')
fprintf('===========================================\n')
m=2;
[tabla]=fbisecttablapar(f,xl,xu,m,es);
fprintf('I xr F(xr) Ea\n')
fprintf('%1.0f %6.6f %6.4f %6.4f\n',tabla)
fprintf('\nIterando por metodo de Newton:\n')
fprintf('==============================\n')
x0=tabla(2,2);
EPS=es;
EPS1=es;
[tab]=FunNewtonpar(f,x0,EPS,EPS1,imax);
fprintf('I xr F´(xr) Ea F(xr)\n')
fprintf('%1.0f %6.8f \t%6.5f\t %6.8f \t %6.4f\n',tab)
PROBLEMA N°2:

clear all
close all
fprintf('INTERPOLACIÓN DE NEWTON\n')
fprintf('=======================\n')
x=input('ingresar los valores del vector x:');
y=input('ingresar los valores del vector y(x):');
x0=input('ingresar el valor xo para interpolar :');
n=length(x)-1;
fdd=zeros(n+1);
for i=1:n+1
fdd(i,1)=y(i);
end
for j=2:n+1
for i=1:(n+2)-j
fdd(i,j)=(fdd(i+1,j-1)-fdd(i,j-1))/(x(i+j-1)-x(i));
end
end
xt=1;
yint(1)=fdd(1,1);
for k=2:n+1
xt=xt*(x0-x(k-1));
yint2=yint(k-1)+fdd(1,k)*xt;
Ea(k-1)=yint2-yint(k-1);
yint(k)=yint2;
end
Et=1;
for k=1:n-1
Et=Et*(x0-x(k));
if k==n-1
Etrunc=fdd(i,j)*Et;%Etrunc=bn*(x-x0)*(x-x1)*(x-x2)..*(x-xn)
end
end
fprintf('El valor interpolado de f(%d): %5.6f\n',x0,yint2);
fprintf('Error de truncamiento para f2(x):%5.6f\n',Etrunc);
p=fdd(1,1);
syms x0
t=1;
for j=2:n+1
t=t*(x0-x(j-1));
p=p+fdd(1,j)*t;
end
p=inline(p);
g=char(p);
fprintf('\nLa función es:%s',g)
PROBLEMA 3:
PROBLEMA 4:

close all
clear all
fprintf('COMBINACIÓN DE MÉTODOS DE INTEGRACIÓN\n');
fprintf('=====================================\n');
f=input('Ingrese la funcion a integrar:','s');
I=input('Ingrese el valor exacto de la integral para comparar:');
%fprintf('F(x)=sqrt(9.8*68.1/0.25)*tanh(sqrt(9.8*0.25/68.1)*x)\n');
%f='sqrt(9.8*68.1/0.25)*tanh(sqrt(9.8*0.25/68.1)*x)';
%f='0.2+25*x-200*x*x+675*x*x*x-900*x*x*x*x+400*x*x*x*x*x';
f=inline(f);
a=input('Ingrese el límite inferior de la integral:');
b=input('Ingrese el límite superior de la integral:');
%a=0;
%b=10
%a=0;
%b=0.8;
%=I=333.9262;
%I=1.640533;z=2
n=3;
g=1;
z=1;
segm(g)=3;
while (n<300)
h=(b-a)/n;
tseg(g)=h;
k=rem(n,2);
if k~=0
l=2*z;
z=z+1;
m=n-l;
else
l=n-2;
m=n-l;
end
c=a+h*m;
d=c;
[pt]=trapecio(f,a,c,m);
[ps]=simpson13(f,d,b,l);
p(g)=pt+ps;
et(g)=abs(p(g)-I)/I;
if abs(p(g)-I)/I<0.0012
break
end
n=3+g;
g=g+1;
segm(g)=n;
end
tabla=[segm;tseg;p;et];
fprintf('segmentos tamañano segmento d(aprox.) et\n')
fprintf(' %2.0f %5.6f %5.6f %5.6f\n',tabla)
function pt=trapecio(f,a,b,n)
%el nombre de la funcion como string
%n:numero de segmentos
%a:limite inferior
%b:limite superior
%p:integracion
h=(b-a)/n;
n=n+1;
y=zeros(n,1);
x=zeros(n,1);
suma=0;
for i=1:n
x(i)=a+h*(i-1);
y(i)=feval(f,x(i));
end
for i=2:n-1
suma=suma+y(i);
end
pt=0.5*h*(y(1)+2*suma+y(n));
end

function ps=simpson13(f,a,b,n)
%el nombre de la funcion como string
%n:numero de segmentos
%a:limite inferior
%b:limite superior
%p:integracion
h=(b-a)/n;
n=n+1;
y=zeros(n,1);
x=zeros(n,1);
suma=0;
for i=1:n
x(i)=a+h*(i-1);
y(i)=feval(f,x(i));
end
for i=2:n-1
if rem(i,2)==1
suma=suma+2*y(i);
else
suma=suma+4*y(i);
end
end
ps=h*(y(1)+suma+y(n))/3;
end
function v=caidlibcue(x)
g=9.8;
m=68.1;
c=12.5;
es=0.0012;
v=g*m*(1-exp(-c*x/m))/c;
end

También podría gustarte