Taller Metodos Numericos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 14

TALLER METODOS NUMERICOS

DOC: BIBIANA ESPERANZA BOADA SANABRIA

CRISTIAN DAVID JIMENEZ GARCIA CODIGO: 1052572148

WILDER ALBEIRO PARADA GUITIERREZ CODIGO: 1094285646

ANDRES FELIPE INFANTE ORTEGA CODIGO: 1006415125

LUIS ERNESTO BOHORQUEZ LIZCANO CODIGO: 1116871154

CRISTIAN CAMILO DAZA PARRA CODIGO: 1116802473


SOLUCION TALLER

1.
% Metodo de Regula Falsi

% Este metodo permite resolver la ecuacion f(x)=0, para una funcion


% continua en un intervalo [xa, xb]

% Paso1: Ingreso de datos del problema


clear
format long
clc
% Funcion del lado derecho f(x)=0:
funcion=inline('x.^3-2','x'); %#ok<DINLN>

% Ingreso de datos de iniciales:


a=input('Ingrese el extremo izquierdo del intervalo a: ');
b=input('Ingrese el extremo izquierdo del intervalo b: ');
tol=input('Ingrese el valor de la tolerancia: ');

% Paso2: Cuerpo del programa

i=1;
a(i)=a;
b(i)=b;
if (funcion(a)*funcion(b)>0)
error('la funcion no tiene raices en el intervalo')
end
fa(i)=funcion(a(i));
fb(i)=funcion(b(i));
while min(abs(fb(i)),abs(fa(i)))>tol
if (fa(i)*fb(i)==0)

if(fa(i)==0)
c(i)=a(i);
break
else
c(i)=b(i);
break
end
else
c(i)=a(i)-(fa(i)*(b(i)-a(i)))/(fb(i)-fa(i));
fc(i)=funcion(c(i));
if (fa(i)*fc(i)>0)
a(i+1)=c(i);
b(i+1)=b(i);
fa(i+1)=fc(i);
fb(i+1)=fb(i);
i=i+1;
else
a(i+1)=a(i);
b(i+1)=c(i);
fa(i+1)=fa(i);
fb(i+1)=fc(i);
i=i+1;
end
end
end

% Paso3: Elaboracion de tabla:

fprintf(' n a_n b_n c_n f(a_n) f(b_n) f(c_n)\n')


N=length(c);
for i = 1:N
fprintf('%4.1f %11.10f %11.10f %11.10f %11.10f %11.10f
%11.10f\n',i,a(i),b(i),c(i),fa(i),fb(i),fc(i))
end
fprintf('La aproximación a la solucion de la ecuación es\n:')
fprintf('%10.6f',c(N))
%Paso 4: Elaboracion de graficas
z=a:0.01:b;
plot(z,funcion(z),'r')
hold on
plot(c,fc,'+:b')
2.
clear
clc
xi=0.5;
xu=2.5;
xr=(xi+xu)/2;
a=1;
while(a<=10)
disp("iteracion "+a);
fxi=f2(xi);
fxr=f2(xr);
disp("xi: "+xi)
disp("xr: "+xr)
disp("fxi:"+fxi)
disp("fxr:"+fxr)
if(fxi*fxr>0)
xa=xr;
xi=xr;
else
if(fxi*fxr<0)
xa=xr;
xu=xr;
else
break;
end
end
xr=(xi+xu)/2;
xn=xr;
disp("xn: "+xn)
disp("xa: "+xa)
err=abs(((xn-xa)/xn))*100;
disp("% error:"+err);
disp(" ");
if(err<1)
break
end
a=a+1;
end
function r= f2(x)
r=1-((20*20*(3+x))/(9.8*(3*x+((x^2)/2))^3));
end
3.
x0=0.5;
x1=0;
calcE=100;
disp("xi: "+x0);
while(calcE>0.001)
x2=2*sind(sqrt(x0));
calcE=abs((x2-x1)/x2)*100;
if(calcE>0.001)
x1=x2;
x0=x0+1;
else

end
end
disp("xf: "+x0);
disp("porcentaje error: "+calcE)

4.

El método secante: también es un método recursivo para encontrar la raíz de los polinomios
mediante aproximaciones sucesivas.
Es similar al método Regular-falsi pero aquí no necesitamos verificar f (x 1 ) f (x 2 ) <0 una y
otra vez después de cada aproximación.
En este método,
las raíces de los vecindarios se aproximan mediante una línea secante o una cuerda a la
función f (x) .
También es una ventaja de este método que no necesitamos diferenciar la función dada f
(x) ,
como hacemos en el método de Newton-raphson .

% Metodo de la Secante
% Este metodo permite resolver la ecuacion f(x)=0, para una funcion
% continua en un intervalo [xa, xb].

clear
clc
format long
% Construccion de la funcion f(x):
f=inline('x.^2-2','x'); %#ok<DINLN>

%Ingreso de datos necesarios para calcular la raiz de f:


xa=input('Ingrese el valor izquierdo del intervalo xa: ');
xb=input('Ingrese el valor derecho del intervalo xb: ');
tol=input('Ingrese el valor de la tolerancia deseada: ');
n=input('Ingrese el numero maximo de iteraciones que podria realizarse: ');

if f(xa)*f(xb)>0
error('La función no tiene raices en el intervalo')
end

%Elaboracion de la tabla de iteraciones:

fprintf(' n xn Errabs |f(xn)|\n')


for k=2:n
ya=f(xa);
yb=f(xb);
xn=xb-(yb*(xb-xa)/(yb-ya));
erabs=abs(xn-xb); yn=abs(f(xn));
fprintf('%3.0f %12.12f %12.12f %12.12f \n',k,xn,erabs,yn)
if erabs<tol || yn<tol
fprintf(' El valor de la aproximación es: % 12.12f\n ',xn)

return
else
xa=xb;
ya=yb;
xb=xn;
yb=yn;
end
end
fprintf('Se alcanzo el numero maximo de iteraciones\n')
5.
clear
clc
r=3;
A=(pi*(2*r)^2)/4;
h=30/A;
i=0;
while(1>0)
i=i+1;
disp("Iteracion "+i)
fh=(pi*h^3)-9*(pi*h^2)+90;
dfh=(3*pi*h^2)-(18*pi*h);
hf=h-(fh/dfh);
err=abs(((hf-h)/hf))*100;
disp("error: "+err);
disp("h supuesta: "+h)
disp("h nueva : "+hf)
disp(" ");
if(err>0.0001)
h=hf;
else
break;
end
end
disp("error: "+err);
disp("h finnal : "+hf)

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy