laboratorio 4
DESCRIPTION
matlapTRANSCRIPT
UNIVERSIDAD PERUANA UNION
FACULTAD DE INGENIERIA Y ARQUITECTURA
ESCUELA ACADEMICA PROFESIONAL DE INGENIERIA CIVIL
RESOLUCION DE EJERCICIOS
Trabajo presentado en cumplimiento parcial de la asignatura de Métodos Numéricos
Alumno
Elvis Jhordy Mamani Uscamayta
Profesor
Lic. Braulio Gutiérrez
Juliaca, 10 de octubre de 2013
LABORATORIO 4
METODO DE LA BISECCION
1. 2. En algún lenguaje de programación de su preferencia implemente el
algoritmo de la bisección.
a) Debe llamarse una función desde otra archivo .m
function [c,iter] = bissec(a,b,e)
t=f(c)
iter=1;
fprintf(' ========================================================\n')
fprintf(' iter a b c f(a) f(c) \n')
fprintf(' ==========================================================\n')
while abs(b-a) > e
c=(a+b)/2;
fprintf('%5d %10.6f %10.6f %10.6f %10.6f %10.6f \n', iter,a,b,c,f(a),f(c));
if f(a)*f(c) > 0
a=c;
else
b=c;
end
iter=iter+1;
end;
b)
function [c,err,yc]=bisect(f,a,b,delta)
%Datos
% -f es la funcion, introducida como una cadena de caracteres 'f'
% -a y b son el extremo izquierdo y el extremo derecho
% -delta es la tolerancia
%RESULTADOS
% -c es el cero
% -yc=f(c)
% -err es el error estimado de la aproximacion a c
ya=feval(f,a);
yb=feval(f,b);
if ya*yb>0,break,end
max1=1+round((log(b-a)-log(delta))/log(2));
for k=1;max1
c=(a+b)/2;
yc=feval(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=feval(f,c);
3. 4. Encuentre una raíz de la function f(x)=x^3 + 4*x^2-10=0. La cual está en
el intervalo [1,2] y con una precisión e=0.02 usando el algoritmo de la Bisección.
t =
======================================================
iter a b c f(a) f(c)
=======================================================
1 1.000000 2.000000 1.500000 -5.000000 2.375000
2 1.000000 1.500000 1.250000 -5.000000 -1.796875
3 1.250000 1.500000 1.375000 -1.796875 0.162109
4 1.250000 1.375000 1.312500 -1.796875 -0.848389
5 1.312500 1.375000 1.343750 -0.848389 -0.350983
6 1.343750 1.375000 1.359375 -0.350983 -0.096409
ans =
1.3594
5. Encuentre una raíz de la función f ( x )=−6 x3+x−6=0 la cual está en el intervalo [-2,-1] y con una precisión e=0,02 usando el algoritmo de la Biseccion.
t =
======================================================
iter a b c f(a) f(c)
=======================================================
1 -2.000000 -1.000000 -1.500000 40.000000 12.750000
2 -1.500000 -1.000000 -1.250000 12.750000 4.468750
3 -1.250000 -1.000000 -1.125000 4.468750 1.417969
4 -1.125000 -1.000000 -1.062500 1.417969 0.134277
5 -1.062500 -1.000000 -1.031250 0.134277 -0.450989
6 -1.062500 -1.031250 -1.046875 0.134277 -0.162956
ans =
-1.0469
PROBLEMA 0.1 Usando el algoritmo de la bisección, resuelva las siguientes
ecuaciones con una precisión de 10−6
.
a) 3(x + 1)(x – 1/2)(x − 1) en los siguientes intervalos [2, 1.5] y [−1.25, 2.5]a. En los intervalos 2; 1.5
b) X^3 −3 = 0
t =
======================================================
iter a b c f(a) f(c)
=======================================================
1 1.000000 2.000000 1.500000 -2.000000 0.375000
2 1.000000 1.500000 1.250000 -2.000000 -1.046875
3 1.250000 1.500000 1.375000 -1.046875 -0.400391
4 1.375000 1.500000 1.437500 -0.400391 -0.029541
5 1.437500 1.500000 1.468750 -0.029541 0.168427
6 1.437500 1.468750 1.453125 -0.029541 0.068378
7 1.437500 1.453125 1.445313 -0.029541 0.019154
8 1.437500 1.445313 1.441406 -0.029541 -0.005259
9 1.441406 1.445313 1.443359 -0.005259 0.006931
10 1.441406 1.443359 1.442383 -0.005259 0.000832
11 1.441406 1.442383 1.441895 -0.005259 -0.002215
12 1.441895 1.442383 1.442139 -0.002215 -0.000692
13 1.442139 1.442383 1.442261 -0.000692 0.000070
14 1.442139 1.442261 1.442200 -0.000692 -0.000311
15 1.442200 1.442261 1.442230 -0.000311 -0.000121
16 1.442230 1.442261 1.442245 -0.000121 -0.000026
17 1.442245 1.442261 1.442253 -0.000026 0.000022
18 1.442245 1.442253 1.442249 -0.000026 -0.000002
19 1.442249 1.442253 1.442251 -0.000002 0.000010
20 1.442249 1.442251 1.442250 -0.000002 0.000004
ans =
1.4423
c) X^2 - 2x - 3 en el intervalo [2, 4]
t =
=======================================================
iter a b c f(a) f(c)
======================================================
1 2.000000 4.000000 3.000000 -3.000000 0.000000
2 2.000000 3.000000 2.500000 -3.000000 -1.750000
3 2.500000 3.000000 2.750000 -1.750000 -0.937500
4 2.750000 3.000000 2.875000 -0.937500 -0.484375
5 2.875000 3.000000 2.937500 -0.484375 -0.246094
6 2.937500 3.000000 2.968750 -0.246094 -0.124023
7 2.968750 3.000000 2.984375 -0.124023 -0.062256
8 2.984375 3.000000 2.992188 -0.062256 -0.031189
9 2.992188 3.000000 2.996094 -0.031189 -0.015610
10 2.996094 3.000000 2.998047 -0.015610 -0.007809
11 2.998047 3.000000 2.999023 -0.007809 -0.003905
12 2.999023 3.000000 2.999512 -0.003905 -0.001953
13 2.999512 3.000000 2.999756 -0.001953 -0.000977
14 2.999756 3.000000 2.999878 -0.000977 -0.000488
15 2.999878 3.000000 2.999939 -0.000488 -0.000244
16 2.999939 3.000000 2.999969 -0.000244 -0.000122
17 2.999969 3.000000 2.999985 -0.000122 -0.000061
18 2.999985 3.000000 2.999992 -0.000061 -0.000031
19 2.999992 3.000000 2.999996 -0.000031 -0.000015
20 2.999996 3.000000 2.999998 -0.000015 -0.000008
21 2.999998 3.000000 2.999999 -0.000008 -0.000004
ans =
3.0000
d) x sen x = 1e) √x − cos x en el intervalo [0, 1]
t =
======================================================
iter a b c f(a) f(c)
=======================================================
1 0.000000 1.000000 0.500000 -1.000000 -0.170476
2 0.500000 1.000000 0.750000 -0.170476 0.134337
3 0.500000 0.750000 0.625000 -0.170476 -0.020394
4 0.625000 0.750000 0.687500 -0.020394 0.056321
5 0.625000 0.687500 0.656250 -0.020394 0.017807
6 0.625000 0.656250 0.640625 -0.020394 -0.001332
7 0.640625 0.656250 0.648438 -0.001332 0.008228
8 0.640625 0.648438 0.644531 -0.001332 0.003446
9 0.640625 0.644531 0.642578 -0.001332 0.001056
10 0.640625 0.642578 0.641602 -0.001332 -0.000138
11 0.641602 0.642578 0.642090 -0.000138 0.000459
12 0.641602 0.642090 0.641846 -0.000138 0.000161
13 0.641602 0.641846 0.641724 -0.000138 0.000011
14 0.641602 0.641724 0.641663 -0.000138 -0.000063
15 0.641663 0.641724 0.641693 -0.000063 -0.000026
16 0.641693 0.641724 0.641708 -0.000026 -0.000007
17 0.641708 0.641724 0.641716 -0.000007 0.000002
18 0.641708 0.641716 0.641712 -0.000007 -0.000003
19 0.641712 0.641716 0.641714 -0.000003 -0.000000
20 0.641714 0.641716 0.641715 -0.000000 0.000001
ans =
0.6417
f) e^(−x^3) − 2x + 1 = 0
t =
==========================================================
iter a b c f(a) f(c)
==========================================================
1 0.000000 1.000000 0.500000 2.000000 0.882497
2 0.500000 1.000000 0.750000 0.882497 0.155816
3 0.750000 1.000000 0.875000 0.155816 -0.238251
4 0.750000 0.875000 0.812500 0.155816 -0.040137
5 0.750000 0.812500 0.781250 0.155816 0.058244
6 0.781250 0.812500 0.796875 0.058244 0.009138
7 0.796875 0.812500 0.804688 0.009138 -0.015480
8 0.796875 0.804688 0.800781 0.009138 -0.003166
9 0.796875 0.800781 0.798828 0.009138 0.002987
10 0.798828 0.800781 0.799805 0.002987 -0.000089
11 0.798828 0.799805 0.799316 0.002987 0.001449
12 0.799316 0.799805 0.799561 0.001449 0.000680
13 0.799561 0.799805 0.799683 0.000680 0.000296
14 0.799683 0.799805 0.799744 0.000296 0.000103
15 0.799744 0.799805 0.799774 0.000103 0.000007
16 0.799774 0.799805 0.799789 0.000007 -0.000041
17 0.799774 0.799789 0.799782 0.000007 -0.000017
18 0.799774 0.799782 0.799778 0.000007 -0.000005
19 0.799774 0.799778 0.799776 0.000007 0.000001
20 0.799776 0.799778 0.799777 0.000001 -0.000002
ans =
0.7998
g) √3 sen(x) =cos(x), en el intervalo [0, π/2]
PROBLEMA 02. Verificar en qué intervalo se encuentra una raíz de la ecuación x^4-2*x.
t =
==========================================================
iter a b c f(a) f(c)
==========================================================
1 -1.000000 1.000000 0.000000 3.000000 0.000000
2 -1.000000 0.000000 -0.500000 3.000000 1.062500
3 -0.500000 0.000000 -0.250000 1.062500 0.503906
4 -0.250000 0.000000 -0.125000 0.503906 0.250244
5 -0.125000 0.000000 -0.062500 0.250244 0.125015
6 -0.062500 0.000000 -0.031250 0.125015 0.062501
7 -0.031250 0.000000 -0.015625 0.062501 0.031250
8 -0.015625 0.000000 -0.007813 0.031250 0.015625
9 -0.007813 0.000000 -0.003906 0.015625 0.007813
10 -0.003906 0.000000 -0.001953 0.007813 0.003906
11 -0.001953 0.000000 -0.000977 0.003906 0.001953
12 -0.000977 0.000000 -0.000488 0.001953 0.000977
13 -0.000488 0.000000 -0.000244 0.000977 0.000488
-10 -8 -6 -4 -2 0 2 4 6 8 10-2000
0
2000
4000
6000
8000
10000
12000
14 -0.000244 0.000000 -0.000122 0.000488 0.000244
15 -0.000122 0.000000 -0.000061 0.000244 0.000122
16 -0.000061 0.000000 -0.000031 0.000122 0.000061
17 -0.000031 0.000000 -0.000015 0.000061 0.000031
18 -0.000015 0.000000 -0.000008 0.000031 0.000015
19 -0.000008 0.000000 -0.000004 0.000015 0.000008
20 -0.000004 0.000000 -0.000002 0.000008 0.000004
21 -0.000002 0.000000 -0.000001 0.000004 0.000002
ans =
-9.5367e-007
RPTA: Se puede ver mediante la gráfica que los intervalos para una raíz esta entre -4 y 4
PROBLEMA 03. Hallar el intervalo que contiene una raíz de la función f (x) = e^-x - cos x
-50 0 50 100 150 200 250 300 350
10
20
30
40
50
60
70
80
90
x
y
Como se puede ver al parecer se pueden hallar muchas raíces en diferentes intervalos.
METODO DE LA POSICION FALSA
6. Haga un algoritmo que resuma el método de la posición falsa.
7. En algún algoritmo de programación de su preferencia, implemente el algoritmo de la posición falsa.
function [c,iter]=posicionfalsa(a,b,epsilon)
% [c,iter]=posicionfalsa(1,2,0.01)
% [c,iter] = posicionfalsa(0.5,2.5,0.0001)
t=f(c)
iter=1;
fprintf(' =============================================================\n')
fprintf(' iter a b c f(a) ||f(c)|| \n')
fprintf(' =============================================================\n')
c=(a*f(b)-b*f(a))/(f(b)-f(a));
while abs(f(c))>epsilon & (b-a)>epsilon
M=f(a);
c=(a*f(b)-b*f(a))/(f(b)-f(a));
fprintf('%5d %10.6f %10.6f %10.6f %10.6f %10.6f\n', iter,a,b,c,f(a),abs(f(c)));
if M*f(c)>0
a=c;
else
b=c;
end
iter=iter+1;
if iter >1000
error ('parece que no converge');
end
end
8. Pruebe con varios ejemplares y compare el número de iteraciones con el método de bisección.
a) Encuentre una raíz de la función f(x) = x^2 −2 = 0, la cual está en el intervalo [1,2] y con una precisión e=0,01.
Con método de la posición falsa
t =
=============================================================
iter a b c f(a) ||f(c)||
=============================================================
1 1.000000 2.000000 1.333333 -1.000000 0.222222
2 1.333333 2.000000 1.400000 -0.222222 0.040000
3 1.400000 2.000000 1.411765 -0.040000 0.006920
ans =
1.4118
Con el método de bisección
t =
==========================================================
iter a b c f(a) f(c)
==========================================================
1 1.000000 2.000000 1.500000 -1.000000 0.250000
2 1.000000 1.500000 1.250000 -1.000000 -0.437500
3 1.250000 1.500000 1.375000 -0.437500 -0.109375
4 1.375000 1.500000 1.437500 -0.109375 0.066406
5 1.375000 1.437500 1.406250 -0.109375 -0.022461
6 1.406250 1.437500 1.421875 -0.022461 0.021729
7 1.406250 1.421875 1.414063 -0.022461 -0.000427
ans =
1.4141
b) Encuentre una raíz de la función f (x) = x^3+4x^2 −10 = 0. la cual está en el intervalo [1, 2] y con una precisión ε = 0.01.
Con el método de la posición falsa
t =
=============================================================
iter a b c f(a) ||f(c)||
=============================================================
1 1.000000 2.000000 1.263158 -5.000000 1.602274
2 1.263158 2.000000 1.338828 -1.602274 0.430365
3 1.338828 2.000000 1.358546 -0.430365 0.110009
4 1.358546 2.000000 1.363547 -0.110009 0.027762
5 1.363547 2.000000 1.364807 -0.027762 0.006983
ans =
1.3648
Con el método de la bisección
t =
==========================================================
iter a b c f(a) f(c)
==========================================================
1 1.000000 2.000000 1.500000 -5.000000 2.375000
2 1.000000 1.500000 1.250000 -5.000000 -1.796875
3 1.250000 1.500000 1.375000 -1.796875 0.162109
4 1.250000 1.375000 1.312500 -1.796875 -0.848389
5 1.312500 1.375000 1.343750 -0.848389 -0.350983
6 1.343750 1.375000 1.359375 -0.350983 -0.096409
7 1.359375 1.375000 1.367188 -0.096409 0.032356
ans =
1.3672
c) Encuentre una raíz de la función f (x) = −6x^3 + x − 6 = 0. la cual está en el intervalo [−2, −1] y con una precisión ε = 0,01.
Con el método de la posición falsa
t =
=============================================================
iter a b c f(a) ||f(c)||
=============================================================
1 -2.000000 -1.000000 -1.024390 40.000000 0.574571
2 -2.000000 -1.024390 -1.038206 40.000000 0.323894
3 -2.000000 -1.038206 -1.045931 40.000000 0.180615
4 -2.000000 -1.045931 -1.050220 40.000000 0.100108
5 -2.000000 -1.050220 -1.052591 40.000000 0.055299
6 -2.000000 -1.052591 -1.053899 40.000000 0.030490
7 -2.000000 -1.053899 -1.054619 40.000000 0.016794
8 -2.000000 -1.054619 -1.055016 40.000000 0.009245
ans =
-1.0550
Con el método de la bisección
t =
==========================================================
iter a b c f(a) f(c)
==========================================================
1 -2.000000 -1.000000 -1.500000 40.000000 12.750000
2 -1.500000 -1.000000 -1.250000 12.750000 4.468750
3 -1.250000 -1.000000 -1.125000 4.468750 1.417969
4 -1.125000 -1.000000 -1.062500 1.417969 0.134277
5 -1.062500 -1.000000 -1.031250 0.134277 -0.450989
6 -1.062500 -1.031250 -1.046875 0.134277 -0.162956
7 -1.062500 -1.046875 -1.054688 0.134277 -0.015498
ans =
-1.0547
METODO DEL PUNTO FIJO