Sei sulla pagina 1di 6

Universidad Nacional Mayor de San Marcos

Facultad de Ingenierı́a Eléctrica


E.A.P. de Ingenierı́a Eléctrica
Laboratorio de Métodos Numéricos, 2018 - 0 Raı́ces de funciones no lineales

Taller 2
Raı́ces de funciones no lineales

1. Use un computador para crear un programa que que reciba de entrada una
función y el programa busque intervalos donde la función tenga raı́ces. Pruebe
su programa con las siguientes funciones:

(a) f (x) = 3x5 − 7x4 − 5x3 + x2 − 8x + 2


(b) f (x) = x sen(x)

Solución:

%Programa que calcula intervalos donde


%la fución posee raı́ces
%ingresamos la función
ff=input(’ingresa la función: ’,’s’);
%convertimos la función en lı́nea
f=inline(ff);
%ingresamos el rango en el que queremos que
%busque las raı́ces
a=input(’Ingresa el extremo inferior: ’);
b=input(’Ingresa el extremo superior: ’);
aa=floor(a);
bb=floor(b);
n=bb-aa+1;
k=0;
%empezamos a buscar las raı́ces
for i=1:n,
if f(aa+(i-1))*f(aa+i)==0
i=i+1;
elseif f(aa+i-1)*f(aa+i)<0
fprintf(’Existe una raı́z en [ %6.2f , %12.8f ] \n’,aa+i-1,aa+i);
k=1;
else
i=i+1;
end
end
if k==0
fprintf(’La función f(x)= %4.20s no posee raı́ces en [%6.2f ,%6.2f ]\n’,ff,a,b);
end

Compruebe sus funciones gráficamente, haciendo los ajustes necesarios

Prof. Edwin Chávez R. 1


Universidad Nacional Mayor de San Marcos
Facultad de Ingenierı́a Eléctrica
E.A.P. de Ingenierı́a Eléctrica
Laboratorio de Métodos Numéricos, 2018 - 0 Raı́ces de funciones no lineales

2. Haga una función que halle las raı́ces de las funciones usando el método de
bisección, la función debe recibir de parámetros f , a y b, ası́ como el error
aceptado. solución:

function [c,err,yc]=biseccion(ff,a,b,delta)
%Datos
%ff es la función debemos ingresarla como cadena de caracteres ’f’
% a y b son los extremos del intervalo
%delta es la tolerancia
%c es la raı́z de la función
%yc=f(c)
%err es el error estimado de la aproximación a c
f=inline(ff);
ya=f(a);
yb=f(b);
op=0;
if ya*yb>0
disp(’No existe raı́ces en este intervalo’);
c=0;
err=0;
yc=0;
else
max1=1+round((log(b-a)-log(delta))/log(2));
for k=1:max1,
c=(a+b)/2;
yc=f(c);
if yc==0
a=c;
b=c
elseif yb*yc>0
b=c;
yb=yc;
else
a=c;
ya=yc;
end
if b-a<delta, break, end
end
c=(a+b)/2;
err=abs(b-a);
yc=f(c);
end
end

Prof. Edwin Chávez R. 2


Universidad Nacional Mayor de San Marcos
Facultad de Ingenierı́a Eléctrica
E.A.P. de Ingenierı́a Eléctrica
Laboratorio de Métodos Numéricos, 2018 - 0 Raı́ces de funciones no lineales

3. Pruebe la función anterior con los ejercicios dados

I) Encuentre todas las raı́ces positivas de las ecuaviones siguientes mediante el


método de bisección con una tolerancia de 0.001. (Primero determine un in-
tervalo apropiado para cada raı́z.)

(a) tan(x) − x + 1 = 0, 0 < x < 3π


(b) sen(x) − 0.3ex = 0, x>0
3
(c) −x + x + 1 = 0
(d) 16x5 − 20x3 + x2 + 5x − 0.5 = 0

II) Calcule intervalos apropiados para las raı́ces de las siguientes ecuaciones y
determine despues las raı́ces medinte el método de bisección, con una tolerancia
de 0.001:

(a) 0.1x3 − 5x2 − x + 4 + e−x = 0


(b) loge (x) − 0.2x2 + 1 = 0
(c) x + 1/((x + 3)x) = 0

4. Modifique la función anterior para convertila en una función que use el método
de la regla falsa.

5. Para cada una de las siguientes funciones, halle un intervalo [a, b] de manera
que f (a) y f (b) tengan distinto signo.

(a) f (x) = ex − 2 − x
(b) f (x) = cos(x) + 1 − x
(c) f (x) = ln(x) − 5 + x
(d) f (x) = x2 − 10x + 23

6. En los siguientes ejercicios empiece con el intervalo [a0 , b0 ] y use el método de


la regla falsa para calcular c0 , c1 , c2 y c2

(a) f (x) = ex − 2 − x, [a0 , b0 ]=[-2.1,-1.6]


(b) f (x) = cos(x) + 1 − x, [a0 , b0 ]=[0.8,1.6]
(c) f (x) = ln(x) − 5 + x, [a0 , b0 ]=[3.2,4.0]
(d) f (x) = x2 − 10x + 23, [a0 , b0 ]=[6.0,6.8]

7. Use un computador para crear un programa en MatLab que encuentre una raı́z
de f (x) = x sen(x) − 1, para ello utilice el método de la regla falsa modificada.

Prof. Edwin Chávez R. 3


Universidad Nacional Mayor de San Marcos
Facultad de Ingenierı́a Eléctrica
E.A.P. de Ingenierı́a Eléctrica
Laboratorio de Métodos Numéricos, 2018 - 0 Raı́ces de funciones no lineales

Solución:

% Programa que permite calcular la raı́z de x.sen(x)-1=0


% en el intervalo [1, 2]
% xr es la raı́z de la función
% yc=f(xr)
f=inline(’x*sin(x)-1’);
xa=1;
xb=2;
ya=f(xa);
yb=f(xb);

for k=1:5,
xr=xa-(ya*(xb-xa))/(yb-ya);
yc=f(xr);
if yc==0
xa=xr;
xb=xr;
elseif yb*yc>0
xb=xr;
yb=yc;
ya=ya/2;
else
xa=xr;
ya=yc;
yb=yb/2;
end
end
xr
f(xr)

8. Modifique el programa anterior de tal manera que acepte cualquier función y


en el intervalo que el usuario desee calcule la raı́z para las siguientes funciones.
(a) f (x) = 3x5 − 7x4 − 5x3 + x2 − 8x (a) f (x) = ln(x) − 5 + x

(b) f (x) = ex − 2 − x (b) f (x) = x2 − 10x + 23

(c) f (x) = cos(x) + 1 − x (c) f (x) = x cos(x)


9. Haga un programa en MatLab para que halle una aproximación de f (x) =
e−x − x, utilizando el método del pto Fijo

Solución:

%script que calcula la raı́z de una función

Prof. Edwin Chávez R. 4


Universidad Nacional Mayor de San Marcos
Facultad de Ingenierı́a Eléctrica
E.A.P. de Ingenierı́a Eléctrica
Laboratorio de Métodos Numéricos, 2018 - 0 Raı́ces de funciones no lineales

%usando el método del punto fijo.


%para la función exp(-x)-x)
%en el punto x0=0
%con 5 iteraciones
clear;
clc;
x(1)=0;
n=5;
g=inline(’exp(-x)’);
for i=2:n,
x(i)=g(x(i-1));
end
fprintf(’\n La raı́z aproximada de f(x)=exp(-x)-x es: %3.5f \n’,x(n));

10. Modifique el programa anterior de tal manera que se pueda generalizar para
cualquier función y nos sirva para resolver los ejercicos de la práctica 3.

11. Use el programa que diseño en el ejercicio anterior para aproximar los puntos
fijos (si es que hay alguno) de cada una de las siguientes funciones. Las re-
spuestas deben tener 12 cifras decimales exactas. Diguje además una gráfica
de cada función y de la recta y = x que muestre claramente los puntos fijos
que haya.

(a) x5 − 3x3 − 2x2 + 2


(b) cos(sen(x))
(c) x2 − sen(x + 0.15)
(d) xx−cos(x)

12. Deduzca la ley de recurrencia para el método de Newton Raphson:

f (xi )
xi+1 = xi −
f 0 (xi )

13. Deduzca la ley de recurrencia para el método de la Secante:

xi f (xi−1 ) − xi−1 f (xi )


xi+1 = xi −
f (xi−1 ) − f (xi )

14. Deduzca la ley de recurrencia para el método de Newton Raphson modificado:

f (xi )f 0 (xi )
xi+1 = xi −
[f 0 (xi )]2 − f (xi )f 00 (xi )

Prof. Edwin Chávez R. 5


Universidad Nacional Mayor de San Marcos
Facultad de Ingenierı́a Eléctrica
E.A.P. de Ingenierı́a Eléctrica
Laboratorio de Métodos Numéricos, 2018 - 0 Raı́ces de funciones no lineales

15. Encuentre la raı́z de


tan(x) − 0.1x = 0
en π < x < 1.5π mediante el método de Newton, con una tolerancia de 0.0001

16. Encuentre las raı́ces de las ecuaciones mediante el método de Newton con una
tolerancia de 0.0001.

(a) tan(x) − x + 1 = 0, 0 < x < 3π


(b) sen(x) − 0.3ex = 0, x>0
(c) −x3 + x + 1 = 0
(d) 16x5 − 20x3 + x2 + 5x − 0.5 = 0

17. Las frecuencias naturales de vibración de una varilla sujeta en ambos extremos
satisfacen
tan(βl) = tanh(βl), β > 0
donde se supone que l es 1, como en el problema anterior. Utilice el método de
Newton con base en una aproximación por diferencias para evaluar la derivada,
y determine los valores más pequeños de β > 0 que satisfacen la ecuación
anterior. No incluya β = 0 como respuesta.
Sugerencia :
ex − e−x
tanh(x) =
ex + e−x
18. Hallar la raı́z de
f (x) = sen(x) − x + 1
mediante el método de Newton.

19. Encuentre todas las raı́ces de las siguientes ecuaciones, mediante el método de
la Secante

(a) f (x) = 0.5ex/3 − sin(x) = 0 x>0


(b) f (x) = loge (1 + x) − x2 = 0
(c) f (x) = ex − 5x2 = 0
(d) f (x) = x3 − 2x − 1 = 0

(e) f (x) = x + 2 − x = 0

Prof. Edwin Chávez R. 6