Вы находитесь на странице: 1из 14

UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE

CARRERA DE INGENIERIA MECANICA

MÉTODOS NUMÉRICOS

Profesor:

Ing. Jose Marcillo.

Integrantes:

• Buenaño Franco Paul


• Haro Fernando
Tema:

Deber del primer parcial

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

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 y(r)==0
raiz=r;
break
end
if y(a)*y(r)<0
b=r;
else
a=r;
end
end
raiz=r;
fprintf(’El valor de w es: %f\n’,raiz)
fprintf(’Las iteraciones son: %d\n’,n)

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

a=input(’Ingrese un numero positivo: ’);


while(a<1)
a=input(’Ingrese un numero positivo: ’);
end
y=@(x)(x.^2-a);
dy=@(x)(2.*x);
tol=0.000001

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

f (x) = xsin(x) − ln(x) + x − 2,6 = 0

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;

f=input(’Ingrese la funcion f(x) : ’,’s’);


x0=input(’Ingrese el intervalo inferior de x : ’);
x1=input(’Ingrese el intervalo superior de x : ’);
e=input(’Ingrese la tolerancia : ’);
ea=1000;
c=1;
while ea>e
x=x0;
g=eval(f);
x=x1;
gg=eval(f);
xi=x1-((gg*(x0-x1))/(g-gg));
ea=abs((xi-x1)/xi)*100;
x0=x1;
x1=xi;
c=c+1;
end
fprintf(’\n\n\n\nLa raiz exacta es: %d’,xi)
fprintf(’\n\nNumero de iteraciones: %d\n’,c);

Capturas de pantalla.

Metodos Numericos

Вам также может понравиться