Professional Documents
Culture Documents
MÉTODOS NUMÉRICOS
Profesor:
Integrantes:
Sangolqui-Ecuador
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio 1
Considere la función f (x) = cosh(x) + cos(x) − γ, con γ = 1, 2, 3. Encuentre un intervalo que contenga
un cero de f para cada valor de γ y calcule dicho cero con el método de la bisección.
Codigo en Matlab
clc
clear all
y=input(’Ingrese la funcion:’,’s’);
z=inline(y);
es=-10:0.01:10;
ezplot(z,es);
grid on
a=input(’Ingrese el primer valor del intervalo: ’);
b=input(’Ingrese el segundo valor del intervalo: ’);
tol=input(’Ingrese el valor de la tolerancia: ’);
n=0;
if z(a)*z(b)>0
error (’No existe raiz’);
break
end
disp(’ n a b raiz error’)
while (abs(a-b)>tol)
n=n+1;
r=((a+b)/2);
error=abs(b-a);
fprintf(’\t%d\t\t%2.4f\t\t%2.4f\t\t%2.6f\t\t%2.6f\n’,n,a,b,r,error)
if z(r)==0
raiz=r;
break
elseif z(a)*z(r)<0
b=r;
else
a=r;
end
end
raiz=r;
fprintf(’La raiz es: %f\n’,raiz)
fprintf(’Las iteraciones son : %d\n’,n)
Para γ = 1
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Para γ = 2
Para γ = 3
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio 2
Un objeto está situado en un plano cuya pendiente varı́a a una tasa constante w. La posición
del objeto, al instante t, está dada por la fórmula:
g
s(t, w) = 2w2 [senh(wt) − sen(wt)]
donde g = 9, 8 sm2 es la aceleración de la gravedad. Asumiendo que el objeto se ha desplazado 1
metro en 1 segundo, calcule el valor de w , usando el método de la bisección con una tolerancia
de 10−5 . Cuántas iteraciones se requiere para alcanzar la tolerancia indicada?
Codigo en Matlab
clc
clear all
a=0.1;
b=10;
g=9.8
t=1
s=1
n=0;
tol=0.00001
y=@(w)(((g./(2*(w.^2))).*(sinh(w.*t)-sin(w.*t)))-s);
if y(a)*y(b)>0
error (’No existe raiz’)
break
end
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Capturas de pantalla.
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio 3
Escriba e implemente un programa en MATLAB para calcular la raı́z cuadrada de un número
positivo a, basado en el método Newton.
Codigo en Matlab.
clc
clear all
es=-10:0.01:10;
ezplot(y,es);
grid on
n=0;
x0=-2;
disp(’ n x0 x1 error’)
while abs(y(x0))>tol
x1=x0-(y(x0)/dy(x0));
error=abs(y(x1));
n=n+1;
fprintf(’\t%d\t\t%2.4f\t\t%2.4f\t\t%2.6f\n’,n,x0,x1,error)
if dy(x0)==0
raiz=x1;
break
else
x0=x1;
end
end
raiz=x0;
fprintf(’La raiz negativa es: %f\n’,a,raiz)
fprintf(’El numero de iteraciones es: %d\n’,n);
n=0;
tol=0.000001
x0=2;
disp(’ n x0 x1 error’)
while abs(y(x0))>tol
x1=x0-(y(x0)/dy(x0));
error=abs(y(x1));
n=n+1;
fprintf(’\t%d\t\t%2.4f\t\t%2.4f\t\t%2.6f\n’,n,x0,x1,error)
if dy(x0)==0
raiz=x1;
break
else
x0=x1;
end
end
raiz=x0;
fprintf(’La raiz positiva es: %f\n’,a,raiz)
fprintf(’El numero de iteraciones es: %d\n’,n);
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Capturas de pantalla.
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio 4
Un proyectil es lanzado con velocidad inicial v0 y un ángulo α en
q un túnel de altura h. El
2hg
proyectil llega a su alcance máximo cuando α es tal que sen(α) = v02
donde g = 9, 8 sm2 es la
aceleración de la gravedad. Calcule α usando el método de Newton, asumiendo que v0 = 10 m s y
h = 1m
Codigo en Matlab.
clc
clear all
g=9.8
v0=10
h=1
tol=0.00001
x0=1;
y=@(a)(((2.*g.*h)/(v0.^2)).^(1/2))-sin(a);
dy=@(a)(-cos(a));
n=0;
disp(’ n x0 x1 error’)
while abs(y(x0))>tol
x1=x0-(y(x0)/dy(x0));
error=abs(y(x1));
n=n+1;
fprintf(’\t%d\t\t%2.4f\t\t%2.4f\t\t%2.6f\n’,n,x0,x1,error)
if dy(x0)==0
raiz=x1;
break
else
x0=x1;
end
end
raiz=x0;
fprintf(’El valor de a es: %f\n’,raiz)
fprintf(’Las iteraciones son: %d\n’,n);
Capturas de pantalla.
Donde a = α en radianes.
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio 2.7
Aplicando el método de Newton encontrar el cero de la función:
1 1
f (x) = − ln(x) + e−x −
2 5
próximo al valor x0 = 1,5, iterando hasta que se cumpla que | xi − xi−1 |6 10−3 .
Codigo en Matlab.
clc
clear all
syms x
y=input(’Ingrese la funcion: ’);
y2=inline(y);
y1=diff(y,x)
y3=inline(y1);
X0=input(’Ingrese X0: ’);
tol=input(’Ingrese la tolerancia: ’);
es=-10:01:10;
ezplot(y2,es)
grid on
hold on
fx0=feval(y2,X0);
fx1=feval(y3,X0);
n=0;
disp(’ n x0 x1 error’)
while abs(fx0)>tol
X1=X0-(fx0)/(fx1);
error=abs(fx1);
n=n+1;
fprintf(’\t%d\t\t%2.4f\t\t%2.4f\t\t%2.6f\n’,n,X0,X1,error)
if fx1==0
raiz=X1;
break
else
X0=X1;
fx0=feval(y2,X0);
fx1=feval(y3,X0);
end
end
raiz=X0
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Capturas de pantalla.
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio 2.9
Utilizando el método de la bisección para la solución aproximada de raı́ces, hallar la solución
aproximada para la ecuación.
1/2 − 2x = 0
en el intervalo [0,5, 1] con una exactitud de 10−2 . Realizar los cálculos con 4 decimales significativos
correctos.
Codigo en Matlab.
clc
clear all
y=input(’Ingrese la función:’,’s’);
y1=inline(y);
es=-10:0.01:10;
ezplot(y1,es);
grid on
a=input(’Ingrese a: ’);
b=input(’Ingrese b ’);
tol=input(’Ingrese la tolerancia: ’);
n=0;
if y1(a)*y1(b)>0
error (’No existe raiz’);
break
end
disp(’ n a b raiz error’)
while (abs(a-b)>tol)
n=n+1;
r=((a+b)/2);
error=abs(b-a);
fprintf(’\t%d\t\t%2.4f\t\t%2.4f\t\t%2.6f\t\t%2.6f\n’,n,a,b,r,error)
if y1(r)==0
raiz=r;
break
elseif y1(a)*y1(r)<0
b=r;
else
a=r;
end
end
raiz=r;
fprintf(’La raiz es: %f\n’,raiz)
fprintf(’Las iteraciones son: %d\n’,n)
Capturas de pantalla.
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio 2.12
Utilizando el metodo de Newton-Raphson para calcular la raiz de la ecuacion
En el intervalo [0, 2], partiendo del punto inicial xo = 2, redondeando a 5 cifras decimales
e iterando hasta que se cumpla |xl − xl−1 | 6 10−4 . El valor del argumento x esta expresado en
radianes.
Codigo en Matlab.
clc
clear all
syms x
y=input(’Ingrese la funcion: ’);
y2=inline(y);
disp(’Derivada de la funcion ’)
y1=diff(y,x)
y3=inline(y1);
X0=input(’Ingrese Xo: ’);
tol=input(’Ingrese la tolerancia: ’);
es=-10:01:10;
ezplot(y2,es)
grid on
hold on
fx0=feval(y2,X0);
fx1=feval(y3,X0);
n=0;
disp(’ n x0 x1 error’)
while abs(fx0)>tol
X1=X0-(fx0)/(fx1);
error=abs(fx1);
n=n+1;
fprintf(’\t%d\t\t%2.4f\t\t%2.4f\t\t%2.6f\n’,n,X0,X1,error)
if fx1==0
raiz=X1;
break
else
X0=X1;
fx0=feval(y2,X0);
fx1=feval(y3,X0);
end
end
raiz=X0
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Capturas de pantalla.
Metodos Numericos
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE
Ejercicio a
Resuelva el ejercicio xlog(x) − 10 = 0, por el metodo de la secante.
Codigo en Matlab.
clear all;
clc;
Capturas de pantalla.
Metodos Numericos