0% encontró este documento útil (0 votos)
28 vistas15 páginas

Codigos

El documento presenta una serie de métodos numéricos para resolver problemas de cálculo, incluyendo métodos de bisección, Newton-Raphson, interpolación, integración y resolución de ecuaciones diferenciales. Cada método se describe con un algoritmo específico, incluyendo condiciones de error y tolerancia. Se abordan un total de 20 métodos, cada uno con su respectiva implementación y propósito en el contexto de la matemática aplicada.

Cargado por

fabercaballero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas15 páginas

Codigos

El documento presenta una serie de métodos numéricos para resolver problemas de cálculo, incluyendo métodos de bisección, Newton-Raphson, interpolación, integración y resolución de ecuaciones diferenciales. Cada método se describe con un algoritmo específico, incluyendo condiciones de error y tolerancia. Se abordan un total de 20 métodos, cada uno con su respectiva implementación y propósito en el contexto de la matemática aplicada.

Cargado por

fabercaballero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

%%/////metodo 1////////

c0=a;

for i=1:n

c=(a+b)/2;

err=abs(c-c0);

relerr=err/abs(c);

if tol>abs(f(c))||tol>err||tol>relerr

break

elseif f(c)*f(a)<0

b=c;

else a=c;

end

c0=c;

end

%%/////metodo 2///////

for i=1:n

p=p0-f(p0)/df(p0);

err=abs(p-p0);

relerr=err/abs(p);

if tol>err|tol>relerr|tol>abs(f(p))

break

end

p0=p;

end
%%//////metodo 3////////

for i=1:n

p=g(p0);

err=abs(p-p0);

relerr=err/abs(p);

if err<tol||relerr<tol|| tol>abs(f(p))

break;

else p0=p;

end

end

%%///////////metodo 4//////////

c0=a;

for i=1:n

c=(b*f(a)-a*f(b))/(f(a)-f(b));

err=abs(c-c0);

relerr=err/abs(c);

if tol>abs(f(c))||tol>err||tol>relerr

break

elseif f(c)*f(a)<0

b=c;

else a=c;

end

c0=c;

end
%%/////metodo 5/////////

for i=1:n

x2=(x1*f(x0)-x0*f(x1))/(f(x0)-f(x1));

err=abs(x1-x2);

relerr=err/abs(x2);

if tol>err||tol>relerr||tol>abs(f(x2))

break;

end

x0=x1;

x1=x2;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%//////////metodo 6//////////

n=length(x);

P=zeros(1,n);

for i=1:n

a=x([1:i-1 i+1:n]);

p=[1, -a(1)];

for j=2:n-1

p=conv(p,[1,-a(j)]);

end

P=P+y(i)*p/polyval(p,x(i));

end
%%/////metodo 7//////////

n=length(x);

p=[1 -x(1)];

P=y(1);

for i=2:n

a=(y(i)-polyval(P,x(i)))/polyval(p,x(i));

P=[0,P]+a*p;

p=conv(p,[1 -x(i)]);

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%///metodo 8////////

n=length(B);

X=P;

for i=1:m

for j=1:n

X(j)=(B(j)-A(j,[1:j-1 j+1:n])*X([1:j-1 j+1:end]))/A(j,j);

end

err=norm(X-P);

relerr=err/norm(X);

if tol>err||tol>relerr

break;

else P=X;

end

end

%%//////metodo 9//////

n=length(B);

for i=1:m

for j=1:n

X(j,1)=(B(j)-A(j,[1:j-1 j+1:n])*P([1:j-1 j+1:end]))/A(j,j);

end

err=norm(X-P);

relerr=err/norm(X);

if tol>err||tol>relerr

break;

else P=X;

end

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

f: función f(x) continua en el rango de integración

[a b] rango de integración

n: numero de divisiones totales

s: cantidad de iteraciones

%%//////metodo 10//////

A=0;

h=(b-a)/n;

for xi=a:h:b-h

A=A+h*f(xi+h/2);

end

%%//////metodo 11//////

A=0;

h=(b-a)/n;

for xi=a:h:b-h

A=A+(h/2)*(f(xi)+f(xi+h));

end

%%//////metodo 12//////

A=0;

h=(b-a)/n;

for xi=a:2*h:b-2*h

A=A+(h/3)*(f(xi)+4*f(xi+h)+f(xi+2*h));

end
%%//////metodo 13//////

A=0;

h=(b-a)/n;

for xi=a:3*h:b-3*h

A=A+(3*h/8)*(f(xi)+3*f(xi+h)+3*f(xi+2*h)+f(xi+3*h)) ;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%//////metodo 14//////

m=length(y0);

A=[zeros(m-1,1),eye(m-1);a];

B=[zeros(m-1,1);g];

x=x0;

for i=1:n

f0=eval(A)*y0+eval(B);

y=y0+h*f0;

y0=y;

x=x+h;

end
%%//////metodo 15//////

m=length(y0);

A=[zeros(m-1,1),eye(m-1);a];

B=[zeros(m-1,1);g];

x=x0;

for i=1:n

f0=eval(A)*y0+eval(B);

x=x+h;

y1=y0+h*f0;

f1=eval(A)*y1+eval(B);

y=y0+h*(f0+f1)/2;

y0=y;

end
%%//////metodo 16//////

m=length(y0);

A=[zeros(m-1,1) eye(m-1);a];

B=[zeros(m-1,1);f];

x=x0;

for i=1:n

f0=eval(A)*y0+eval(B); %f0: es la pendiente en el inicio del intervalo

x=x+h/2;

y1=y0+(h/2)*f0;

f1=eval(A)*y1+eval(B); %f1: es la pendiente en el medio del intervalo usando f0


para hallar

y2=y0+(h/2)*f1;

f2=eval(A)*y2+eval(B); %f2: es la pendiente en el medio del intervalo usando f1


para hallar

x=x+h/2;

y3=y0+h*f2;

f3=eval(A)*y3+eval(B); %f3: es la pendiente en al final del intervalo usando f2 para


hallar

y=y0+h*(f0+2*f1+2*f2+f3)/6;

y0=y;

end
%%//////metodo 17//////

m=length(y0);

A=[zeros(m-1,1) eye(m-1);a];

B=[zeros(m-1,1);f];

for i=1:n

x=x1;

f1=eval(A)*y1+eval(B);

x=x2;

f2=eval(A)*y2+eval(B);

x=x3;

f3=eval(A)*y3+eval(B);

p=y0+(4/3)*h*(2*f1-f2+2*f3); % y predictor

x=x+h;

fp=eval(A)*p+eval(B);

y=y2+(h/3)*(f2+4*f3+fp); % y corrector

y0=y1;

y1=y2;

y2=y3;

y3=y;

x1=x2;

x2=x3;

x3=x;

end
%%//////metodo 18//////

m=length(y0);

A=[zeros(m-1,1) eye(m-1);a];

B=[zeros(m-1,1);f];

for i=1:n

x=x1;

f1=eval(A)*y1+eval(B);

x=x2;

f2=eval(A)*y2+eval(B);

x=x3;

f3=eval(A)*y3+eval(B);

p=y0+(4/3)*h*(2*f1-f2+2*f3); % y predictor

if i>1

mod=p+(28/29)*(y3-p0);

else mod=p;

end

x=x+h;

fm=eval(A)*mod+eval(B);

y=y2+(h/3)*(f2+4*f3+fm); % y corrector

y0=y1;

y1=y2;

y2=y3;
y3=y;

x1=x2;

x2=x3;

x3=x;

p0=p;

end
%%//////metodo 19//////

m=length(y0);

A=[zeros(m-1,1) eye(m-1);a];

B=[zeros(m-1,1);f];

for i=1:n

x=x1;

f1=eval(A)*y1+eval(B);

x=x2;

f2=eval(A)*y2+eval(B);

x=x3;

f3=eval(A)*y3+eval(B);

p=y0+(4/3)*h*(2*f1-f2+2*f3);

x=x3+h;

fp=eval(A)*p+eval(B);

y=(9*y3-y1)/8+(3/8)*h*(-f2+2*f3+fp);

y0=y1;

y1=y2;

y2=y3;

y3=y;

x1=x2;

x2=x3;

x3=x;

end
%%//////metodo 20//////

m=length(y0);

A=[zeros(m-1,1) eye(m-1);a];

B=[zeros(m-1,1);f];

for i=1:n

x=x1;

f1=eval(A)*y1+eval(B);

x=x2;

f2=eval(A)*y2+eval(B);

x=x3;

f3=eval(A)*y3+eval(B);

p=y0+(4/3)*h*(2*f1-f2+2*f3);

if i>1

mod=p+(112/121)*(y3-p0);

else mod=p;

end

x=x3+h;

fm=eval(A)*mod+eval(B);

y=(9*y3-y1)/8+(3/8)*h*(-f2+2*f3+fm);

y0=y1;

y1=y2;

y2=y3;

y3=y;
x1=x2;

x2=x3;

x3=x;

p0=p;

end

También podría gustarte