Está en la página 1de 46

UNIVERSIDAD NACIONAL DEL ALTIPLANO

FACULTAD DE INGENIERÍA CIVIL Y ARQUITECTURA

DEPARTAMENTO ACADÉMICO DE CIENCIAS FÍSICO MATEMÁTICAS

MANUAL DE

MÉTODOS NUMÉRICO
SOLUCIÓN DE ECUACIONES DE UNA VARIABLE

Dr. Eliseo Pumacallahui Salcedo

Dr. Richar Marlón Mollinedo Chura

Puno Diciembre del 2020


RECTOR DE LA UNIVERSIDAD NACIONAL DEL ALTIPLANO
Dr. Hector Eddy Calumani Blanco

VICERRECTOR ACADÉMICO
Dr. Dante Atilio Salas Avila

VICERRECTOR DE INVESTIGACIÓN
Dr. Julio Mayta Quispe

DECANO DE INGENIERÍA CIVIL Y ARQUITECTURA


Dr. Nestor Leodan Suca Suca

DIRECTOR DEL DEPARTAMENTO ACADÉMICO DE CIENCIAS FÍSICO


MATEMÁTICAS
Msc. Máximo Roberto Pari Coila

ELABORACIÓN DEL MANUAL DE ESTUDIO


Dr. Richar M. Mollinedo Chura
Dr. Eliseo Pumacallahui Salcedo

REVISIÓN DEL MANUAL DE ESTUDIO


Dra. Soledad Paucar Sullca
Dr. Ronald Quispe Flores
Dr. Wilberth Caviedes Contreras
ÍNDICE 2

Índice
Actividad 1: Método de Bisección 1

I. Objetivos 1

II. Fundamento Teórico 1

1. Método de Bisección 1

III. Algoritmo de Bisección 2

IV. Procedimiento 3

V. Cuestionario 7

Actividad 2: Método de Punto Fijo 9

I. Objetivos 9

II. Fundamento Teórico 9

2. Método de Punto Fijo 9

III. Algoritmo de Punto Fijo 11

IV. Procedimiento 12

V. Cuestionario 16

Actividad 3: Método de Newton-Raphson 18

I. Objetivos 18

II. Fundamento Teórico 18

3. Método de Newton-Raphson 18

III. Algoritmo de Newton-Raphson 20

IV. Procedimiento 20

Manual de Estudio
ÍNDICE 3

V. Cuestionario 24

Actividad 4: Método la secante y de las cuerdas 26

I. Objetivos 26

II. Fundamento Teórico 26

4. Método de la secante 26

5. Método de las Cuerdas 26

III. Algoritmo de la Cuerda 27

IV. Procedimiento 28

V. Cuestionario 32

Actividad 5: Método del Müller 34

I. Objetivos 34

II. Fundamento Teórico 34

6. Método del Müller 34

III. Algoritmo del Müller 35

IV. Procedimiento 36

V. Cuestionario 41

Bibliografı́a 42

Manual de Estudio
1 MÉTODO DE BISECCIÓN 1

Actividad 1: Método de Bisección

I. Objetivos
Calcular las raı́ces de una ecuación algebraica o trascente con método de Bisección,
usando esta herramienta interfaces gráficas de usuarios en MatLab

Brindar una herramienta de apoyo que facilite el aprendizaje de un lenguaje de


programación como lo es MatLab. De tal manera desarrollar en el alumno habili-
dades de programación estructurada para la resolución de problemas matemáticos
haciendo uso del lenguaje Matlab .

II. Fundamento Teórico

1. Método de Bisección
En este trabajo estudiaremos uno de los problemas básicos de la aproximación numéri-
ca: el problema de la búsqueda de raı́ces. consiste en obtener una raı́z x de una ecuación
de la forma f (x) = 0 para una función dada f . (Al número x se le llama también cero de
f .) Este es uno de los problemas de aproximación más antiguos y, sin embargo la investi-
gación correspondiente todavı́a continua.

La primera técnica, que se basa en el teorema del valor intermedio, se conoce con el
nombre de método de bisección o de búsqueda binaria.

Supongamos, que tenemos una función continua f , definida en el intervalo [a, b], con
f (a) y f (b) tal que f (a) · f (b) < 0, o sea de signos contrarios. Entonces, por medio del
teorema del valor medio, existe t, a < t < b, tal que f (t) = 0.

El Método requiere de dividir repetidamente a la mitad a los subintervalos [a, b] y, en


cada paso localizar a la mitad, que contiene a p. Para empezar, hacemos a1 = a; b1 = b
a1 + b1
y p1 el punto medio de [a, b]; o sea: p1 = . Sı́ f (p1 ) = 0, entonces p = p1 ; de lo
2
contrario es claro que f (p1 ) tiene el mismo signo que f (a1 ) o f (b1 ). Si f (p1 ) y f (a1 ) ,
tienen el mismo signo, entonces t ∈ (p1 , b1 ) y hacemos a2 = p1 y b2 = b1 . Si f (p1 ) y f (b1 )
son del mismo signo, entonces t ∈ (a1 , t1 ) y hacemos b2 = p1 y a2 = a1 . Ahora repetimos
el proceso al intervalo [a2 , b2 ] y ası́ sucesivamente.

Manual de Estudio
1 MÉTODO DE BISECCIÓN 2

Teorema 1.1 Si f (x) es una función continua definida sobre [a, b] y tal que f (a) · f (b) <
0, entonces la sucesión generada por el método de Bisección {pn }(n>0) converge a un cero
p̄ de f (x) en [a, b]; esto es lı́m pn = p y además
p→∞

b−a
|pn − p| ≤ ∀n≤0
2n

y
f(a)
y=f(x)

p2 p3
a=a1 p p1 b=b1 x
f(b) a1 b1
a2 b2
a3 b3

III. Algoritmo de Bisección


ENTRADA extremos a, b; número máximo de iteraciones n.
SALIDA solución aproximada r o mensaje de fracaso

Paso 1: Elija valores iniciales inferior, a, y superior b, que encierren la raı́z, de forma tal
que la función cambie de signo en el intervalo. Esto se verifica comprobando que

f (a) · f (b) < 0

Paso 2: Calculo de aproximación la raı́z


a+b
xn = fórmula de iteración
2

Paso 3: Realice las siguientes evaluaciones para determinar en qué subintervalo esta la
raı́z:

1. Si f (a) · f (xn ) < 0, entonces la raı́z se encuentra en [a, xn ], hacer b = xn ,


regresar al paso 2
2. Si f (xn ) · f (b) < 0, entonces la raı́z se encuentra en [xn , b], hacer a = xn ,
regresar al paso 2.

Manual de Estudio
1 MÉTODO DE BISECCIÓN 3

3. Si f (xn ) = 0, entonces la raı́z r = xn .

Paso 4: El proceso termina si el error es aceptable. Constituyéndose una sucesión.

x1 , x2 , . . . , → r

Obsérvese que para iniciar el algoritmo de bisección, hay que encontrar un intervalo [a, b],
de modo que f (a) · f (b) < 0. En cada paso, la longitud del intervalo que se sabe que
contiene un cero de f se reduce en un factor de 2; por lo tanto, conviene escoger un
intervalo inicial [a, b] lo más pequeño posible.

IV. Procedimiento
Creamos una interfaces gráficas de usuarios en MatLab usamos GUIDE, lo podemos
hacer Ejecutando la siguiente instrucción en la ventana de comandos: >> guide

Para empezar creamos una nueva figura y agregamos un Static Text, de bajo de esto
ponemos un Static Text y un Edit Text, debajo de esto ponemos un Static Text y
2 Edit Text, debajo de estos controles ponemos un Static Text, un Edit Text y un
Push button, debajo de estos controles ponemos 5 List box,a un lado ponemos un
Axes, y finalmente agregamos un Static Text, un Edit Text, dos Push button; y lo
guardamos como: biseccionn.

En el siguiente orden modificamos las propiedades de String de cada Static Text

• String:METODO DE BISECCIÓN • String:Iteraciones:Resulatdo:


• String: Función f(x): • String: Raiz:
• String: V. Inicial:

En los Edit Text cambiamos sus propiedades con el Inspector de Propiedades y


modificamos el String a: quedaran en blanco
En el siguiente orden modificamos las propiedades de String de cada Push button

• String: CALCULAR • String: NUEVO • String: SALIR

Finalmente obtendremos los controles como en la figura 1

Manual de Estudio
1 MÉTODO DE BISECCIÓN 4

Figura 1: Propiedades String modificados en cada control

Ahora vamos editar el callback del botón CALCULAR y agregamos el código nece-
sario para calcular la las raı́ces de una ecuación algebraica con método de Bisección,
luego editamos del botón SALIR y agregamos el código necesario para cerrar la
ventana, luego editamos del botón NUEVO, cuya acción es limpiar la caja del texto
de la función y los resultados de cada operación.
Con un click derecho en Push button1 menú, nos ubicamos en view Callbacks >>
Callbacks. Esto nos lleva a la subrutina
function pushbutton1_Callback(hObject, eventdata, handles), donde edita-
remos las siguientes lı́neas de código:

f = get(handles.edit1,’string’);
a = str2double(get(handles.edit2,’string’));
b = str2double(get(handles.edit3,’string’));
n = str2double(get(handles.edit4,’string’));
xmin=a; xmax=b;
x=a; fa=eval(f);
x=b; fb=eval(f);
cadite=’Iter.|====’;
cadini=’ A |====’;
cadfin=’ B |====’;
caderr=’Error|====|0’;

Manual de Estudio
1 MÉTODO DE BISECCIÓN 5

cadrai=’Raı́z |====’;
if fa*fb>0
msgbox(’En el intervalo dado no existen raices ’,’Método de Bisección’)
else
i=1;
while i<=n
r=(a+b)/2;
x=a; fa=eval(f);
x=b; fb=eval(f);
x=r; fr=eval(f);
cadite=strcat(cadite,’|’,num2str(i));
cadrai=strcat(cadrai,’|’,num2str(r));
cadini=strcat(cadini,’|’,num2str(a));
cadfin=strcat(cadfin,’|’,num2str(b));
if fa*fr<0
b=r;
else
a=r;
end
if i>=2
vact=r;
if vact~=vant
error=abs((vact-vant)/vact);
vant=vact;
caderr=strcat(caderr,’|’,num2str(error));
end
else
vant=r;
end
i=i+1;
end
set(handles.listbox1,’string’,cadite);
set(handles.listbox2,’string’,cadini);
set(handles.listbox3,’string’,cadfin);
set(handles.listbox4,’string’,cadrai);

Manual de Estudio
1 MÉTODO DE BISECCIÓN 6

set(handles.listbox5,’visible’,’on’); %%cambio
set(handles.listbox5,’string’,caderr);
set(handles.edit5,’string’,r);
x=xmin:0.1:xmax;
y=eval(f);
plot(x,y)
hold on
plot(r,0,’ro’)
text(r,0.1,’Raı́z’)
xlabel(’X’)
ylabel(’Y’)
title([’Grafica f(x)=’,f]);
grid
hold off
end

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button2,
donde editamos las siguientes lı́neas de código

set(handles.edit1,’string’,’’)
set(handles.edit2,’string’,’’)
set(handles.edit3,’string’,’’)
set(handles.edit4,’string’,’’)
set(handles.edit5,’string’,’’)
set(handles.listbox1,’string’,’’);
set(handles.listbox2,’string’,’’);
set(handles.listbox3,’string’,’’);
set(handles.listbox4,’string’,’’);
set(handles.listbox5,’string’,’’);
axes(handles.axes1)
plot(0,0)

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button3,
donde editamos las siguientes lı́neas de código

ans=questdlg(’Desea salir del programa’,’SALIR’,’Si’,’No’,’No’);

Manual de Estudio
1 MÉTODO DE BISECCIÓN 7

if strcmp(ans,’No’)
return;
end
clear,clc,close all

Ejemplo 1 Calcular el valor de x en la ecuación e−x − x = 0, en el intervalo [0, 1]

Para determinar el valor de x en 10 iteraciones, activamos nuestra aplicación, ejecutamos


nuestro programa y tendremos una salida como en la figura 2

Figura 2: Prueba de la aplicación

Después de 10 iteraciones, p10 = 0,567383 aproxima la raı́z p con un error de 0,0017212

V. Cuestionario

1. Aplique el método de bisección para obtener p3 para f (x) = x − cos x en [0, 1]

2. Sea f (x) = 3(x + 1)(x − 12 )(x − 1). Aplique el método de bisección a los siguientes
intervalos para encontrar p3 .

a) [−2, 1,5] b) [−1,25, 2,5]

3. Encuentre un cero de: x sen x − 0,1 = 0 en el intervalo [0, 1], mediante el método de
bisección, con 15 iteraciones

Manual de Estudio
1 MÉTODO DE BISECCIÓN 8

4. Aplique el método de bisección para encontrar las soluciones exactas dentro de 10−2
para x3 − 7x2 + 14x − 6 = 0 en cada intervalo.

a) [−2, −1] b) [0, 2] c) [2, 3] d ) [−1, 0]

5. Use el método de bisección para encontrar una solución exacta dentro 10−3 para
x = tan x en [4, 4.5]

6. Use el método de bisección para encontrar una solución exacta en 10−3 para 2 +
cos(ex − 2) − ex = 0 en [0.5, 1.5]

7. Encuentre una aproximación de 3 correcta con una exactitud de 10−4 usando el
algoritmo de bisección. [SUGERENCIA: considere f (x) = x2 − 3]

8. Encuentre una aproximación a 3
25 correcta en 10−4 por medio del algoritmo de
bisección.

9. Este método como se vio es muy simple y manejable además es robusco pues siempre
converge a una solución, ¿Porqué la convergencia es muy lenta?

10. realice un diagrama de flujo para el algoritmo de Bisección

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 9

Actividad 2: Método de Punto Fijo

I. Objetivos
Calcular las raı́ces de una ecuación algebraica o trascente con método de Punto Fijo,
usando esta herramienta interfaces gráficas de usuarios en MatLab

Brindar una herramienta de apoyo que facilite el aprendizaje de un lenguaje de


programación como lo es MatLab. De tal manera desarrollar en el alumno habili-
dades de programación estructurada para la resolución de problemas matemáticos
haciendo uso del lenguaje Matlab .

II. Fundamento Teórico

2. Método de Punto Fijo


Un punto fijo de una función g es número p para el cual g(p) = p. En este actividad
estudiaremos el problema de encontrar las soluciones a los problemas de punto fijo y la
conexión entre éstos y los de búsqueda de la raı́z que deseamos resolver.
En este método tratamos de obtener una raı́z de la ecuación:

f (x) = 0 (1)

expresado dicha ecuación en la forma equivalente

x = g(x) (2)

es decir, una raı́z α de la ecuación (1) f (α)


también es solución de la ecuación (2); α = g(α) de modo que a cualquiera solución α de
la ecuación se le llama punto fijo de g

la ecuación (2) se puede lograr de muchas formas, por ejemplo:


Sea la ecuación
f (x) = x4 − 3x2 − 1 = 0

entonces entre las posibles formas tendrı́amos:

1. x = g1 (x) = (1 + 3x2 )1/4

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 10

2. x = g2 (x) = [(x4 − 1)/3]1/2

3. x = g3 (x) = 1/(x3 − 3x)

4. x = g4 (x) = [1/(x2 − 3)]1/4

Cada una de estas funciones g(x) recibe el nombre de función de iteración para resolver
la ecuación (1).

Una vez que se escoge una función de iteración se define el algoritmo de Punto fi-
jo,como:
pn+1 = g(pn ), ∀n>0 (3)
donde p0 es una aproximación inicial.

Para que este algoritmo se eficaz, se debe asegurar que:

1. La sucesión {pn }(n>0) converge al punto α

2. El lı́mite α es un punto fijo de g(x)

Este procedimiento se describe detalladamente en el algoritmo de punto fijo y se muestra


gráficamente en la figura
El siguiente teorema contiene suficientes condiciones para la existencia y unidad del punto
fijo.

Teorema 2.1 Si g ∈ C[a, b] y g(x) ∈ [a, b] para toda x ∈ [a, b], entonces g tiene un punto
fijo en [a, b]. Si además, g ′ (x) existe en (a, b) y

|g ′ (x)| 6 k < 1, para toda x ∈ (a, b).


entonces el punto fijo en [a, b] es único

Teorema 2.2 (Teorema de punto fijo) Sea g ∈ C[a, b] tal que g(x) ∈ [a, b] para toda
x en [a, b]. Además supongamos que existe g ′ en (a, b) y una constante positiva k < 1
cuando
|g ′ (x)| 6 k, para todax ∈ (a, b)
Entonces, para cualquier número p0 en [a, b], la sucesión definida por

pn = g(pn−1 ), n>1

converge en el único fijo p en [a, b].

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 11

y y =x
y y =x y = g(x)
t3 = g(t2)
t2 = g(t1) t2 = g(t1)
t3 = g(t2)
t1 = g(t0)
t1 = g(t0)

y = g(x)

t1 t3 t2 t0 x t0 t1 t2 x

Corolario 2.1 Si g satisface las hipótesis del teorema 2.2 las cotas del error que supone
utilizar pn para aproximar p están dadas por

|pn − p| 6 k n máx{p0 − a, b − p0 }

y por
kn
|pn − p| 6 |p1 − p0 |, para toda n > 1
1−k

III. Algoritmo de Punto Fijo


ENTRADA aproximación inicial t0 , los extremos del intervalo [a, b]; número máximo
de iteraciones n.
SALIDA solución aproximada t o mensaje de fracaso

Paso 1: Define g(t)

Paso 2: Entramos a, b {los extremos del intervalo [a, b]}


Entramos Err {Error de cálculo o Tolerancia}
Entramos t0 {Entramos un valor t0 ∈ [a, b] como primer valor de la raı́z }

Paso 3: Hacemos tn = t0

Paso 4: t = g(tn ) {Renovamos el t }

Paso 5: Si |t − tn | < Err ir al paso (7) {Verificamos la tolerancia}

Paso 6: Si Paso (5) es falso hacer tn = t ir a paso (3)

Paso 7: Publicar la solución: La raı́z= t

Paso 8: Parar.

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 12

IV. Procedimiento
Creamos una interfaces gráficas de usuarios en MatLab usamos GUIDE, lo podemos
hacer Ejecutando la siguiente instrucción en la ventana de comandos: >> guide

Para empezar creamos una nueva figura y agregamos un Static Text, de bajo de esto
ponemos un Static Text y un Edit Text, debajo de esto ponemos un Static Text y
un Edit Text, debajo de estos controles ponemos un Static Text, un Edit Text y un
Push button, debajo de estos controles ponemos 5 List box,a un lado ponemos un
Axes, y finalmente agregamos un Static Text, un Edit Text, dos Push button; y lo
guardamos como: puntofijo.

En el siguiente orden modificamos las propiedades de String de cada Static Text

• String:METODO DE PUNTO FI- • String:Iteraciones:


JO
• String:Resulatdo:
• String: Función f(x):
• String: V. Inicial: • String: Raı́z:

En los Edit Text cambiamos sus propiedades con el Inspector de Propiedades y


modificamos el String a: quedaran en blanco
En el siguiente orden modificamos las propiedades de String de cada Push button

• String: CALCULAR • String: NUEVO • String: SALIR

Finalmente obtendremos los controles como en la figura 3

Ahora vamos editar el callback del botón CALCULAR y agregamos el código ne-
cesario para calcular la las raı́ces de una ecuación algebraica con método de Punto
Fijo, luego editamos del botón SALIR y agregamos el código necesario para cerrar
la ventana, luego editamos del botón NUEVO, cuya acción es limpiar la caja del
texto de la función y los resultados de cada operación.
Con un click derecho en Push button1 menú, nos ubicamos en view Callbacks >>
Callbacks. Esto nos lleva a la subrutina
function pushbutton1_Callback(hObject, eventdata, handles), donde edita-
remos las siguientes lı́neas de código:

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 13

Figura 3: Propiedades String modificados en cada control

g = get(handles.edit1,’string’);
a = str2double(get(handles.edit2,’string’));
n = str2double(get(handles.edit3,’string’));
f=strcat(g,’-x’);
xmin=a-2; xmax=a+2;
cadite=’Iter.|====’;
caddgx=’dg(x)|====’;
caderr=’Error|====|0’;
cadrai=’Pto fijo|====’;
i=1;
h=0.0001;
while i<=n
x=a;
r=eval(g);
%aproximación de la derivada de G(x)
x=a+h;
m=eval(g);
x=a-h;
w=eval(g);
dg=(m-w)/2*h;
cadite=strcat(cadite,’|’,num2str(i));

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 14

cadrai=strcat(cadrai,’|’,num2str(r));
caddgx=strcat(caddgx,’|’,num2str(dg));
a=r;
if abs(dg) < 1
if i>=2
vact=r;
error=abs((vact-vant)/vact);
vant=vact;
caderr=strcat(caderr,’|’,num2str(error));
else
vant=r;
end
else
i=n;
msgbox(’Convergencia no garantizada’,’dg(x) > 1’);
end
i=i+1;
end
set(handles.listbox1,’string’,cadite);
set(handles.listbox2,’string’,cadrai);
set(handles.listbox3,’string’,caddgx);
set(handles.listbox4,’string’,caderr);
set(handles.edit4,’string’,r);
x=xmin:0.1:xmax;
y=eval(f);
plot(x,y)
hold on
plot(r,0,’ro’)
text(r,0.2,’Raı́z’)
xlabel(’X’)
ylabel(’Y’)
title([’Grafica Cartesiana f(x)=’,f]);
grid
hold off

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 15

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button2,
donde editamos las siguientes lı́neas de código

set(handles.edit1,’string’,’’)
set(handles.edit2,’string’,’’)
set(handles.edit3,’string’,’’)
set(handles.edit4,’string’,’’)
set(handles.listbox1,’string’,’’);
set(handles.listbox2,’string’,’’);
set(handles.listbox3,’string’,’’);
set(handles.listbox4,’string’,’’);
set(handles.listbox5,’string’,’’);
axes(handles.axes1)
plot(0,0)

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button3,
donde editamos las siguientes lı́neas de código

ans=questdlg(’Desea salir del programa’,’SALIR’,’Si’,’No’,’No’);


if strcmp(ans,’No’)
return;
end
clear,clc,close all

Ejemplo 2 Aplique el método de iteración de punto fijo para calcular el valor de x en la



ecuación x + cos(x) − x = 0, considerando x0 = 1,2 valor inicial

Para determinar el valor de x activamos nuestra aplicación, ejecutamos nuestro programa


y tendremos una salida como en la figura 4
Analizando los resultados, después de parar el algoritmo con n = 10, se tiene que el
valor aproximado de x es 1,36952 con una precisión de por lo menos 3 decimales exactos.

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 16

Figura 4: Prueba de la aplicación

V. Cuestionario
1. Use el manejo algebraico para demostrar que las siguientes funciones tienen un punto
fijo en p exactamente cuando f (p) = 0, donde f (x) = x4 + 2x2 − x − 3
( )1/2
a) g1 (x) = (3 + x − 2x2 )1/4 x+3
c) g3 (x) =
x2 + 2
( )1/2
x + 3 − x4 3x4 + 2x2 + 3
b) g2 (x) = d ) g4 (x) =
2 4x3 + 4x − 1

2. aplique el método de iteración de punto fijo para determinar una solución con una
exactitud de 10−2 para x4 − 3x2 − 3 = 0 en [1, 2]. Utilice p0 = 1

3. aplique el método de iteración de punto fijo para determinar una solución exacta en
10−2 para x3 − x − 1 = 0 en [1, 2]. Utilice p0 = 1

4. aplique el teorema 2.2 para demostrar que g(x) = π + 0,5 sen(x/2) tiene un punto
fijo único en [0, 2π]. Use la iteración de punto fijo para obtener una aproximación al
punto fijo con una exactitud de 10−2 . Use el corolario 2.1 para estimar la cantidad
de iteraciones necesarias para lograr una exactitud de 10−2 y después compare esta
estimación teórica con la cantidad que realmente se requiere

Manual de Estudio
2 MÉTODO DE PUNTO FIJO 17

5. Aplique el teorema 2.2 para demostrar que g(x) = 2−x tiene un punto fijo único
en [ 13 , 1]. Utilice la iteración de punto fijo para obtener una aproximación del punto
fijo exacta en 10−4 . Use el corolario 2.1 para estimar la cantidad de estimaciones
necesarias para alcanzar una exactitud de 10−4 y después compare esta estimación
teórica con la cantidad que realmente requiere.

6. Aplique un método de iteración de punto fijo para obtener una aproximación a 3
con una exactitud de 10−4 . Compare su resultado con el número de iteraciones que
requiere la respuesta obtenida en el ejercicio 7 del método de secante

3
7. Use un método de iteración de punto fijo para obtener una aproximación a 25
con una exactitud de 10−4 . Compare su resultado con el número de iteraciones que
requiere la respuesta obtenida en el ejercicio 8 del método de secante

8. En cada una de las siguientes ecuaciones, determine una función g y un intervalo


[a, b] donde la iteración de punto fijo convergirá en un solución positiva de la ecuación

a) 3x2 − ex = 0 b) x − cos x = 0

Obtenga las soluciones con una exactitud de 10−5 .

9. Encuentre todos los ceros de f (x) = x2 + 10 cos x aplicando el método de iteración


de punto fijo para una función de iteración apropiada g. Encuentre los ceros con
una exactitud de 10−4

10. Aplique el método de iteración de punto fijo para determinar una solución con una
exactitud de 10−4 con x = tan x, para x en [4, 5].

11. Aplique el método de iteración de punto fijo para determinar una solución con una
exactitud de 10−2 con 2 sen πx + x = 0, en [1, 2]. Use p0 = 1.

12. Un objeto que cae verticalmente en el aire está sujeto a una resistencia viscosa y
también a la fuerza de gravedad. Suponga que dejamos caer un objeto de masa m
desde una altura y0 y que la altura del objeto después de t segundos es
mg m2 g
y(t) = y0 + t − 2 (1 − e−kt/m )
k k
donde g = −32,17pies/s2 y k representa el coeficiente del aire en lb − s/f t. Suponga
que y0 = 300pies, m = 0,25lb, y que k = 0,1lb − s/f t. Calcule, con una exactitud
de 0,001s, el tiempo que tardara este peso de un cuarto de libra en caer al suelo.

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 18

Actividad 3: Método de Newton-Raphson

I. Objetivos
Calcular las raı́ces de una ecuación algebraica o trascente con método de Newton-
Raphson, usando esta herramienta interfaces gráficas de usuarios en MatLab

Brindar una herramienta de apoyo que facilite el aprendizaje de un lenguaje de


programación como lo es MatLab. De tal manera desarrollar en el alumno habili-
dades de programación estructurada para la resolución de problemas matemáticos
haciendo uso del lenguaje Matlab .

II. Fundamento Teórico

3. Método de Newton-Raphson
El método de Newton-Raphson (o simplemente método de Newton) es un procedimien-
to general que se puede aplicar en diversas situaciones. Cuando se emplea para localizar
los ceros de una función real de varias variable real. Hay muchas formas de introducirlo.
La más común consiste en considerarlo gráficamente, a continuación introducimos basada
en los polinomios de Taylor.
Supongamos que f ∈ C 2 [a, b]. Sea x ∈ [a, b] una aproximación de p tal que f ′′ (x) ̸= 0
y |x − p| es pequeño. Consideremos el primer polinomio de Taylor para f (x) expandida
alrededor de x
(x − x)2 ′′
f (x) = f (x) + (x − x)f ′ (x) + f (ξ(x))
2
donde ξ(x) está entre x y x. Dado que f (p) = 0 esta ecuación, con x = p, da
(p − x)2 ′′
0 = f (x) + (p − x)f ′ (x) + f (ξ(p))
2
Derivamos el método de Newton suponiendo que, como p − x es tan pequeña, el término
que contiene (p − x)2 es mucho menor y que

0 ≈ f (x) + (p − x)f ′ (x)

Despejando p de esta ecuación obtenemos


f (x)
p ≈ f (x) −
f ′ (x)

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 19

Esto nos prepara para introducir el método de Newton-Raphson, el cual comienza con
una aproximación inicial p0 y genera la sucesión {pn } definida por
f (pn−1 )
pn = pn−1 − , para n > 1 (4)
f ′ (pn−1 )
La figura 5 muestra gráficamente cómo se obtiene las aproximaciones usando tangentes
sucesivas. Comenzamos con la aproximación inicial p0 , la aproximación p1 es la intersección
con el eje x de la lı́nea tangente a la gráfica de f en (p1 , f (p1 )) y ası́ sucesivamente.

y
Pendiente f ( p1)
y = f(x)

( p1 ,f( p1 ))

p0 Pendiente f ( p0)
p p2
p1 x
( p0 ,f( p0 ))

Figura 5: Método de Newton Raphson

Observación: La suposición fundamental es que el término que contiene (p − x)2 es,


en comparación, tan pequeño que podemos suprimirlo. Esto evidentemente serı́a falso a
menos que x sea una buena aproximación de p. En particular, si p0 no se acerca bastante
a la raı́z real, el método de Newton quizá no converja en la raı́z. Pero no siempre es ası́.
(En los ejercicios se ejemplifican algunas de las posibilidades que pueden presentarse)

En el siguiente teorema de convergencia para el método de Newton muestra la impor-


tancia teórica de la elección de p0 .

Teorema 3.1 Sea f ∈ C 2 [a, b]. Si p ∈ [a, b] es tal que f (p) = 0 y f ′ (p) ̸= 0, entonces
existe δ > 0 tal que el método de Newton genera una sucesión {pn }∞
n=1 que converge a p
para cualquier aproximación inicial p0 ∈ [p − δ, p + δ].

El teorema 3.1 nos dice que un intervalo apropiado el método de Newton convergerá siem-
pre.

El Método de Newton es una técnica muy poderosa pero muy cara matemáticamente
hablando pues exige conocer la derivada en cada iteración efectuada.

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 20

III. Algoritmo de Newton-Raphson


ENTRADA aproximación inicial p0 , número máximo de iteraciones n.
SALIDA solución aproximada p o mensaje de fracaso

Paso 1: Define función f (t)

Paso 2: Define función f ′ (t)

Paso 3: Entramos p0 {Valor inicial para empezar el proceso}


Entramos Err {Error de cálculo o Tolerancia}

Paso 4: Hacemos pn = p0
f (pn )
Paso 5: p = pn −
f ′ (pn )
Paso 6: Si |p − pn | < Err entonces ir al paso (8) {Verificamos la tolerancia}

Paso 7: En otro caso hacer pn = p ir a paso (3)

Paso 8: Publicar la respuesta: La raı́z= p

Paso 9: Parar.

IV. Procedimiento
Creamos una interfaces gráficas de usuarios en MatLab usamos GUIDE, lo podemos
hacer Ejecutando la siguiente instrucción en la ventana de comandos: >> guide

Para empezar creamos una nueva figura y agregamos un Static Text, de bajo de esto
ponemos un Static Text y un Edit Text, debajo de esto ponemos un Static Text y
un Edit Text, debajo de estos controles ponemos un Static Text, un Edit Text y un
Push button, debajo de estos controles ponemos 4 List box,a un lado ponemos un
Axes, y finalmente agregamos un Static Text, un Edit Text, dos Push button; y lo
guardamos como: puntofijo.

En el siguiente orden modificamos las propiedades de String de cada Static Text

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 21

• String:METODO DE NEWTON • String:Iteraciones:


RAPHSON
• String:Resulatdo:
• String: Función f(x):
• String: V. Inicial: • String: Raı́z:

En los Edit Text cambiamos sus propiedades con el Inspector de Propiedades y


modificamos el String a: quedaran en blanco
En el siguiente orden modificamos las propiedades de String de cada Push button

• String: CALCULAR • String: NUEVO • String: SALIR

Finalmente obtendremos los controles como en la figura 6

Figura 6: Propiedades String modificados en cada control

Ahora vamos editar el callback del botón CALCULAR y agregamos el código ne-
cesario para calcular la las raı́ces de una ecuación algebraica con método de Punto
Fijo, luego editamos del botón SALIR y agregamos el código necesario para cerrar
la ventana, luego editamos del botón NUEVO, cuya acción es limpiar la caja del
texto de la función y los resultados de cada operación.
Con un click derecho en Push button1 menú, nos ubicamos en view Callbacks >>
Callbacks. Esto nos lleva a la subrutina
function pushbutton1_Callback(hObject, eventdata, handles), donde edita-
remos las siguientes lı́neas de código:

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 22

f = get(handles.edit1,’string’);
a = str2double(get(handles.edit2,’string’));
n = str2double(get(handles.edit3,’string’));
xmin=a-2; xmax=a+2;
cadite=’Iter.|====’;
cadtea=’Pto fijo|====’;
cadder=’Derivada|======’;
caderr=’Error|====|0’;
i=1;
h=0.0001;
while i<=n
%aproximación de la derivada de G(x) corregir la condicion con la 2 derivada
x=a+h;
w=eval(f);
x=a-h;
z=eval(f);
der=(w-z)/(2*h);
x=a;
y0=eval(f);
r=a-y0/der;
cadite=strcat(cadite,’|’,num2str(i));
cadtea=strcat(cadtea,’|’,num2str(a));
cadder=strcat(cadder,’|’,num2str(der));
if i>=2
vact=r;
if vant~=vact
error=abs((vact-vant)/vact);
caderr=strcat(caderr,’|’,num2str(error));
vant=vact;
end
else
vant=r;
end
a=r;
i=i+1;

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 23

end
set(handles.listbox1,’string’,cadite);
set(handles.listbox2,’string’,cadtea);
set(handles.listbox3,’string’,cadder);
set(handles.listbox4,’string’,caderr);
set(handles.edit4,’string’,r);
x=xmin:0.1:xmax;
y=eval(f);
plot(x,y)
hold on
plot(r,0,’ro’)
text(r,0.1,’Raı́z’)
xlabel(’X’)
ylabel(’Y’)
title([’Grafica Cartesiana f(x)=’,f]);
grid
hold off

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button2,
donde editamos las siguientes lı́neas de código

set(handles.edit1,’string’,’’)
set(handles.edit2,’string’,’’)
set(handles.edit3,’string’,’’)
set(handles.edit4,’string’,’’)
set(handles.listbox1,’string’,’’);
set(handles.listbox2,’string’,’’);
set(handles.listbox3,’string’,’’);
set(handles.listbox4,’string’,’’);
axes(handles.axes1)
plot(0,0)

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button3,
donde editamos las siguientes lı́neas de código

ans=questdlg(’Desea salir del programa’,’SALIR’,’Si’,’No’,’No’);

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 24

if strcmp(ans,’No’)
return;
end
clear,clc,close all

Ejemplo 3 Calcular el valor de x en la ecuación x2 + sen(x) − 5 = 0. Considerando


x0 = −2 valor inicial.

Para obtener el valor de x activamos nuestra aplicación, ejecutamos nuestro programa y


tendremos una salida como en la figura 7

Figura 7: Prueba de la aplicación

Observamos que hay una convergencia rápida hacia la raı́z −2,38468

V. Cuestionario
1. Sean f (x) = x2 − 6 y p0 = 1. Aplique el método de Newton-Raphson para encontrar
p2

2. Sean f (x) = −x3 − cos x y p0 = −1. Aplique el método de Newton para encontrar
p2 ¿Podrı́amos utilizar p0 = 0?

3. Aplique el método de Newton para obtener soluciones con una exactitud de 10−4
para los siguientes problemas.

Manual de Estudio
3 MÉTODO DE NEWTON-RAPHSON 25

a) x3 − 2x2 − 5 = 0 [1, 4] c) x − cos x = 0 [0, π/2]


b) x3 + 3x2 − 1 = 0 [−3, −2] d ) x − 0,8 − 0,2 sen x = 0 [0, π/2]

4. Aplique el método de Newton para obtener soluciones con una exactitud de 10−5
para los siguientes problemas.

a) ex + 2−x + 2 cos x − 6 = 0 para 1 6 x 6 2


b) ln(x − 1) + cos(x − 1) = 0 para 1,3 6 x 6 2
c) 2x cos 2x − (x − 2)2 = 0 para 2 6 x 6 3 y para 3 6 x 6 4
d ) (x − 2)2 − ln x = 0 para 1 6 x 6 2 y para e 6 x 6 4
e) ex − 3x2 = 0 para 0 6 x 6 1 y para 3 6 x 6 4
f ) sen x − e−x = 0 para 0 6 x 6 1, para 3 6 x 6 4, y para 6 6 x 6 7

5. Con el método de Newton resuelva la ecuación


1 1 2 1 π
0= + x − x sen x − cos 2x, con p0 =
2 4 2 2
Itere usando el método de Newton hasta lograr una exactitud de 10−5 . Explique por
que el resultado parece poco usual para el método de Newton. También resuelva la
ecuación con p0 = 5π y p0 = 10π.

6. La ecuación x2 − 10 cos x = 0 tiene dos soluciones ±1,3793646. Con el método de


Newton aproxime las soluciones con un grado de exactitud de 10−5 para los siguientes
valores de p0

a) p0 = −100 c) p0 = −25 e) p0 = 50
b) p0 = −50 d ) p0 = 25 f ) p0 = 100

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 26

Actividad 4: Método de la secante y de las cuerdas

I. Objetivos
Calcular las raı́ces de una ecuación algebraica o trascente con método de la secante
y de las cuerdas, usando esta herramienta interfaces gráficas de usuarios en MatLab

Brindar una herramienta de apoyo que facilite el aprendizaje de un lenguaje de


programación como lo es MatLab. De tal manera desarrollar en el alumno habili-
dades de programación estructurada para la resolución de problemas matemáticos
haciendo uso del lenguaje Matlab .

II. Fundamento Teórico

4. Método de la secante
El método de secante necesita sólo una evaluación de f (x) por paso y una raı́z simple,
es casi tan veloz como el método de Newton.
El método de la secante consiste en aproximar la derivada f ′ (pn−1 ) por el cociente

f (pn−2 ) − f (pn−1 )
pn−2 − pn−1
luego la formula de iteración es

(pn−1 − pn−2 )f (pn−1 )


pn = pn−1 −
f (pn−1 ) − f (pn−2 )

La técnica que utiliza esta fórmula recibe el nombre de método de la secante (véase Fig
8(a)). Comenzando con las dos aproximaciones iniciales p0 y p1 , la aproximación p2 es la
intersección de x de la lı́nea que une (p0 , f (p0 )) y (p1 , f (p1 )). La aproximación p3 es la
intersección de la lı́nea que une (p1 , f (p1 )) y (p2 , f (p2 )).

5. Método de las Cuerdas


El método de la posición falsa (llamada también método de regla falsa o cuerda) ge-
nera una aproximaciones del mismo modo que el de la secante, pero ofrece una prueba
para asegurarse de que la raı́z quede entre dos iteraciones sucesivas. Aunque no es una

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 27

método que recomendamos, ilustra la forma en que puede incorporarse la inclusión entre
paréntesis.

Primero elegimos las aproximaciones iniciales p0 y p1 con f (p0 ) · f (p1 ) < 0. La apro-
ximación p2 se escoge de la misma manera que en el método de la secante: como la
intersección en x de la lı́nea que une (p0 , f (p0 )) y (p1 , f (p1 )). Para decidir con cuál se-
cante calcularemos p3 verificamos f (p2 ) · f (p1 ). Si este valor es negativo, entonces p1 , p2
encierra una raı́z, y elegiremos p3 como la intersección con x de la recta que une (p1 , f (p1 ))
y (p2 , f (p2 )). Si no, elegimos p3 como la intersección con x de la recta que une (p0 , f (p0 ))
y (p2 , f (p2 )) y después intercambiamos los indices de p0 y p1 . En forma análoga, una
vez encontrada p3 el signo de f (p3 ) · f (p2 ) determina si usaremos p2 y p3 o p3 y p1 para
calcular p4 . En el segundo caso se reetiqueta p2 y p1 . Con ellos nos describe en la figura
8(b) muestra cómo las iteraciones pueden diferir de las del método de secante. En este
ejemplo, las tres primeras aproximaciones son iguales, pero la cuarta es diferente.

y
y
y = f(x)
y = f(x)

p0 p2 p3 p0 p2 p3
p4 p1 x p4 p1 x

(a) Método de la Secante (b) Método de la Cuerda

Figura 8:

III. Algoritmo de la Cuerda


ENTRADA aproximación inicial p0 , p1 número máximo de iteraciones n.
SALIDA solución aproximada p o mensaje de fracaso

Paso 1: Define función f (t)

Paso 2: Entramos p0 , p1 {Valor inicial para empezar el proceso}


Entramos Err {Error de cálculo o Tolerancia}

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 28

Paso 3: Hacemos q0 = f (p0 ); q1 = f (p1 ). { Calcule pi }

Paso 4: Si |p − p1 | < Err entonces ir al paso (8) {Verificamos la tolerancia}

Paso 5: En otro caso hacer q = f (p) ir a paso (3)

Paso 6: Si q · q1 < 0 entonces tome p0 = p1 ; q0 = q1

Paso 7: Tome p1 = p; q1 = q

Paso 8: Publicar la respuesta: La raı́z= p

Paso 9: Parar.

IV. Procedimiento
Creamos una interfaces gráficas de usuarios en MatLab usamos GUIDE, lo podemos
hacer Ejecutando la siguiente instrucción en la ventana de comandos: >> guide

Para empezar creamos una nueva figura y agregamos un Static Text, de bajo de esto
ponemos un Static Text y un Edit Text, debajo de esto ponemos un Static Text y
dos Edit Text, debajo de estos controles ponemos un Static Text, un Edit Text y un
Push button, debajo de estos controles ponemos 4 List box,a un lado ponemos un
Axes, y finalmente agregamos un Static Text, un Edit Text, dos Push button; y lo
guardamos como: reglafalsa.

En el siguiente orden modificamos las propiedades de String de cada Static Text

• String:METODO DE REGLA • String:Iteraciones:


FALSA
• String:Resulatdo:
• String: Función f(x):
• String: V. Inicial: • String: Raı́z:

En los Edit Text cambiamos sus propiedades con el Inspector de Propiedades y


modificamos el String a: quedaran en blanco
En el siguiente orden modificamos las propiedades de String de cada Push button

• String: CALCULAR • String: NUEVO • String: SALIR

Finalmente obtendremos los controles como en la figura 9

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 29

Figura 9: Propiedades String modificados en cada control

Ahora vamos editar el callback del botón CALCULAR y agregamos el código ne-
cesario para calcular la las raı́ces de una ecuación algebraica con método de Punto
Fijo, luego editamos del botón SALIR y agregamos el código necesario para cerrar
la ventana, luego editamos del botón NUEVO, cuya acción es limpiar la caja del
texto de la función y los resultados de cada operación.
Con un click derecho en Push button1 menú, nos ubicamos en view Callbacks >>
Callbacks. Esto nos lleva a la subrutina
function pushbutton1_Callback(hObject, eventdata, handles), donde edita-
remos las siguientes lı́neas de código:

f = get(handles.edit1,’string’);
a = str2double(get(handles.edit2,’string’));
b = str2double(get(handles.edit3,’string’));
n = str2double(get(handles.edit4,’string’));
xmin=a; xmax=b;
x=a; fa=eval(f);
x=b; fb=eval(f);
cadite=’Iter.|====’;
cadini=’ A |====’;
cadfin=’ B |====’;
caderr=’Error|====|0’;

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 30

cadrai=’Raı́z |====’;
if fa*fb>0
msgbox(’En el intervalo dado no existen raices ’,’Método de la Regla falsa’)
else
i=1;
while i<=n
x=a; fa=eval(f);
x=b; fb=eval(f);
r=a-(fa*(b-a)/(fb-fa));
x=r; fr=eval(f);
cadite=strcat(cadite,’|’,num2str(i));
cadrai=strcat(cadrai,’|’,num2str(r));
cadini=strcat(cadini,’|’,num2str(a));
cadfin=strcat(cadfin,’|’,num2str(b));
if fa*fr<0
b=r;
else
a=r;
end
if i>=2
vact=r;
if vact~=vant
error=abs((vact-vant)/vact);
vant=vact;
caderr=strcat(caderr,’|’,num2str(error));
end
else
vant=r;
end
i=i+1;
end
set(handles.listbox1,’string’,cadite);
set(handles.listbox2,’string’,cadini);
set(handles.listbox3,’string’,cadfin);
set(handles.listbox4,’string’,cadrai);

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 31

set(handles.listbox5,’visible’,’on’); %%cambio
set(handles.listbox5,’string’,caderr);
set(handles.edit5,’string’,r);
x=xmin:0.1:xmax;
y=eval(f);
plot(x,y)
hold on
plot(r,0,’ro’)
text(r,0.1,’Raı́z’)
xlabel(’X’)
ylabel(’Y’)
title([’Grafica f(x)=’,f]);
grid
hold off
end

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button2,
donde editamos las siguientes lı́neas de código

set(handles.edit1,’string’,’’)
set(handles.edit2,’string’,’’)
set(handles.edit3,’string’,’’)
set(handles.edit4,’string’,’’)
set(handles.listbox1,’string’,’’);
set(handles.listbox2,’string’,’’);
set(handles.listbox3,’string’,’’);
set(handles.listbox4,’string’,’’);
axes(handles.axes1)
plot(0,0)

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button3,
donde editamos las siguientes lı́neas de código

ans=questdlg(’Desea salir del programa’,’SALIR’,’Si’,’No’,’No’);


if strcmp(ans,’No’)
return;

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 32

end
clear,clc,close all

Ejemplo 4 Calcular el valor de x en la ecuación x sen x1 − 0,2e−x = 0, en el intervalo


[0.1, 0.5]

Para determinar el valor de x activamos nuestra aplicación, ejecutamos nuestro programa


y tendremos una salida como en la figura 10

Figura 10: Prueba de la aplicación

Como se puede observar que la raı́z es aproximadamente 0,363716 en 10 iteraciones

V. Cuestionario
1. Sea f (x) = x2 − 6. Con p0 = 3 y p1 = 0 obtenga p3 .

a) Aplique el método de la secante.


b) Aplique el método de la posición falsa

c) ¿Está (a) o (b) más de 6?

2. Sea f (x) = −x3 − cos x. Con p0 = −1 y p1 = 0 obtenga p3 .

Manual de Estudio
5 MÉTODO DE LAS CUERDAS 33

a) Aplique el método de la secante.


b) Aplique el método de la posición falsa

c) ¿Está (a) o (b) más de 6?

3. Repita el ejercicio 3 del método de Newton Raphson usando el método de la secante


y el método de la cuerda.

4. Repita el ejercicio 4 del método de Newton Raphson usando el método de la secante


y el método de la cuerda.

5. El polinomio de cuarto grado

f (x) = 230x4 + 18x3 + 9x2 − 221x − 9

tiene dos ceros reales, uno en [−1, 0] y el otro en [0, 1]. Trate de aproximar estos
ceros con una exactitud de 10−6 por medio de

a) El método de la posición falsa


b) El método de la secante
c) El método de Newton

6. La función f (x) = tan πx − 6 tiene un cero en (1/π)arctan 6 ≈ 0,447431543. Sean


p0 = 0 y p1 = 0,48 y use diez iteraciones de cada uno de los siguientes métodos para
aproximar esta raı́z. ¿Cuál de ellos es más eficaz y por que?

a) El método de la posición falsa


b) El método de la secante
c) El método de Newton

7. implemente el algoritmo para el método de secante, y programe en interfaces gráficas


de usuarios en MatLab

Manual de Estudio
6 MÉTODO DEL MÜLLER 34

Actividad 5: Método del Müller

I. Objetivos
Calcular las raı́ces de una ecuación algebraica o trascente con método del Muller y
de las cuerdas, usando esta herramienta interfaces gráficas de usuarios en MatLab

Brindar una herramienta de apoyo que facilite el aprendizaje de un lenguaje de


programación como lo es MatLab. De tal manera desarrollar en el alumno habili-
dades de programación estructurada para la resolución de problemas matemáticos
haciendo uso del lenguaje Matlab .

II. Fundamento Teórico

6. Método del Müller


El método de Müller es una generalización del método de la secante, en el sentido de
que no necesita el cálculo de la de derivada de la función. Es un método iterativo que
necesita tres puntos iniciales (x0 , f (x0 )), (x1 , f (x1 )) y (x2 , f (x2 )).
Entonces se construye la parabola que pasa por estos puntos y se usa la formula de re-
solución de las ecuaciones de segundo grado para determinar el punto de corte de dicha
parabola con el eje 0x. El método de Müller converge más rápido que el método de la
secante y es casi tan veloz como el método de Newton-Raphson.
Este método se puede emplear tanto para hallar ceros reales y complejos.

(x0,f(x0))
(x1,f(x1))

(x2,f(x2))
h0
h1
x0 x1 x2 X
t=h0 t=h1 t=0

Manual de Estudio
6 MÉTODO DEL MÜLLER 35

supongamos x2 es la mejor aproximación de la raı́z y consideremos

t = x − x2 (5)

h0 = x0 − x2
(6)
h1 = x1 − x2
consideremos el polinomio cuadrático en la variable t:

y = at2 + bt + c (7)

en t = h0 : ah20 + bh0 + c = f (x0 )


t = h1 : ah21 + bh1 + c = f (x1 ) (8)
t =0: ah22 + bh2 + c = f (x2 )
c = f (x2 ) (9)

(5) en (4), e0 = f (p0 ) − c y e1 = f (p1 ) − c

luego ah20 + bh0 = f (x0 ) − c = e0


ah21 + bh1 = f (x1 ) − c = e1

e0 h1 − e1 h0
entonces a =
h1 h20 − h0 h21
e1 h20 − e0 h21
b =
h1 h20 − h0 h21

Las raı́ces t = z1 , z2 de (3) se obtiene usando la formula


( √ )( √ )
−b ± b2 − 4ac −b ∓ b2 − 4ac 2c
z= √ = √ (10)
2a −b ∓ b − 4ac
2 −b ∓ b2 − 4ac
Para asegurar la estabilidad del método hay que elegir la raı́z de (6) que tenga el valor
absoluto, ası́:
b > 0, entonces usamos signo positivo de la raı́z cuadrada
b < 0, entonces usamos signo negativo de la raı́z cuadrada.

III. Algoritmo del Müller


ENTRADA aproximación inicial x0 , x1 , x2 ; número máximo de iteraciones n.
SALIDA solución aproximada p o mensaje de fracaso

Manual de Estudio
6 MÉTODO DEL MÜLLER 36

Paso 1: Tome

h1 = x1 − x0
h2 = x2 − x1
δ1 = (f (x1 ) − f (x0 ))/h1 ;
δ2 = (f (x2 ) − f (x1 ))/h2 ;
d = (δ2 − δ1 )/(h2 + h1 );
i = 3

Paso 2: b = δ2 + h2 d;
D = (b2 − 4f (x2 )d)1/2 . (Nota: se puede necesitar aritmética compleja)

Paso 3: Si |b − D| < |b + D| entonces tome E = b + D; sino tome E = b − D

Paso 4: Tome h = −2f (x2 )/E; p = x2 + h

Paso 5: Si |h| < Err entonces ir al paso (7) {Verificamos la tolerancia}

Paso 6: Tome

x0 = x1 ;
x1 = x2 ;
x2 = p;
h1 = x1 − x0
h2 = x2 − x1
δ1 = (f (x1 ) − f (x0 ))/h1
δ2 = (f (x2 ) − f (x1 ))/h2
d = (δ2 − δ1 )/(h2 + h1 )
i = i+1

Paso 7: Publicar la respuesta: La raı́z= p

Paso 8: Parar.

IV. Procedimiento
Creamos una interfaces gráficas de usuarios en MatLab usamos GUIDE, lo podemos
hacer Ejecutando la siguiente instrucción en la ventana de comandos: >> guide

Manual de Estudio
6 MÉTODO DEL MÜLLER 37

Para empezar creamos una nueva figura y agregamos un Static Text, de bajo de
esto ponemos un Static Text y un Edit Text, debajo de esto ponemos un Static
Text y tres Edit Text, debajo de estos controles ponemos un Static Text y un Push
button, debajo de estos controles ponemos 5 List box,a un lado ponemos un Axes, y
finalmente agregamos un Static Text, un Edit Text; Static Text, un Edit Text; Static
Text, un Edit Text dos Push button; y lo guardamos como: muller.

En el siguiente orden modificamos las propiedades de String de cada Static Text

• String:MÉTODO DE MULLER • String: P (x):


• String: Función f (x):
• String: x2 :
• String: V. Iniciales:
• String:Resulatdo: • String: x + 1:

En los Edit Text cambiamos sus propiedades con el Inspector de Propiedades y


modificamos el String a: quedaran en blanco
En el siguiente orden modificamos las propiedades de String de cada Push button

• String: CALCULAR • String: NUEVO • String: SALIR

Finalmente obtendremos los controles como en la figura 11

Figura 11: Propiedades String modificados en cada control

Manual de Estudio
6 MÉTODO DEL MÜLLER 38

Ahora vamos editar el callback del botón CALCULAR y agregamos el código ne-
cesario para calcular la las raı́ces de una ecuación algebraica con método de Punto
Fijo, luego editamos del botón SALIR y agregamos el código necesario para cerrar
la ventana, luego editamos del botón NUEVO, cuya acción es limpiar la caja del
texto de la función y los resultados de cada operación.
Con un click derecho en Push button1 menú, nos ubicamos en view Callbacks >>
Callbacks. Esto nos lleva a la subrutina
function pushbutton1_Callback(hObject, eventdata, handles), donde edita-
remos las siguientes lı́neas de código:

f = get(handles.edit1,’string’);
x0 = str2double(get(handles.edit2,’string’));
x1 = str2double(get(handles.edit3,’string’));
x2 = str2double(get(handles.edit4,’string’));
x=[x0 x1 x2];
y=eval(f);
x0=x(1);x1=x(2);x2=x(3);
% Cálculo de los coeficientes de P(x)
p=polyfit(x,y,2);
A=p(1);B=p(2);C=p(3);
% Cálculo de las raices de P(x)
r=roots(p);
r1=r(1);r2=r(2);
%it=1;
xmin=x0-1; xmax=x2+1;
cadini=’ X0 |====’;
cadmed=’ X1 |====’;
cadfin=’ X2 |====’;
cadrai1=’Aprox1 |====’;
cadrai2=’Aprox2 |====’;
% Agregando valores a la lista
cadini=strcat(cadini,’|’,num2str(x0));
cadmed=strcat(cadmed,’|’,num2str(x1));
cadfin=strcat(cadfin,’|’,num2str(x2));
cadrai1=strcat(cadrai1,’|’,num2str(r1));

Manual de Estudio
6 MÉTODO DEL MÜLLER 39

cadrai2=strcat(cadrai2,’|’,num2str(r2));
% Visualización de valores
set(handles.listbox1,’string’,cadini);
set(handles.listbox2,’string’,cadmed);
set(handles.listbox3,’string’,cadfin);
set(handles.listbox4,’string’,cadrai1);
set(handles.listbox5,’visible’,’on’); %%cambio
set(handles.listbox5,’string’,cadrai2);
set(handles.edit5,’string’,A);
set(handles.edit6,’string’,B);
set(handles.edit7,’string’,C);
x=xmin:0.1:xmax;
ya=eval(f);
plot(x,ya)
hold on
xlabel(’X’)
ylabel(’Y’)
title([’Grafica f(x)=’,f]);
grid
hold off

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button2,
donde editamos las siguientes lı́neas de código

set(handles.edit1,’string’,’’)
set(handles.edit2,’string’,’’)
set(handles.edit3,’string’,’’)
set(handles.edit4,’string’,’’)
set(handles.edit5,’string’,’’)
set(handles.edit6,’string’,’’)
set(handles.edit7,’string’,’’)
set(handles.listbox1,’string’,’’);
set(handles.listbox2,’string’,’’);
set(handles.listbox3,’string’,’’);
set(handles.listbox4,’string’,’’);
set(handles.listbox5,’string’,’’);

Manual de Estudio
6 MÉTODO DEL MÜLLER 40

axes(handles.axes1)
plot(0,0)

Haciendo el mismo procedimiento que el anterior esta vez con el botón Push button3,
donde editamos las siguientes lı́neas de código

ans=questdlg(’Desea salir del programa’,’SALIR’,’Si’,’No’,’No’);


if strcmp(ans,’No’)
return;
end
clear,clc,close all

Ejemplo 5 Hallar la raı́z de la ecuación ln x − x + 2 = 0

Para Hallar la raı́z activamos nuestra aplicación, ejecutamos nuestro programa y tendre-
mos una salida como en la figura 12

Figura 12: Prueba de la aplicación

Manual de Estudio
6 MÉTODO DEL MÜLLER 41

V. Cuestionario
1. Hallar la raı́z de la ecuación ln(x) − x + 2 por el método de Müller

2. Encontrar una raı́z real de la ecuación polinomial.

f (x) = x3 + 2x2 + 10x − 20 = 0

con el método de Müller.

3. Encuentre las raı́ces complejas de la ecuación polinomial. f (x) = x2 + 4 = 0 con el


método de Müller.

4. Obtenga las aproximaciones, con una exactitud de 10−4 a todo los ceros reales del
siguiente polinomio aplicando el método de Müller

a) p(x) = x3 − 2x2 − 5
b) p(x) = x3 + 3x2 − 1
c) p(x) = x3 − x − 1
d ) p(x) = x4 + 2x2 − x − 3
e) p(x) = x3 + 4,001x2 + 4,002x + 1,101
f ) p(x) = x5 − x4 + 2x3 − 3x2 + x − 4

5. Aplique los métodos siguientes para obtener una solución con una exactitud de 10−4
para el problema

600x4 − 550x3 + 200x2 − 20x − 1 = 0, por 0,1 6 x 6 1

a) Método de bisección d ) Método de la posición falsa


b) Método de Newton e) Método de Müller
c) Método de la secante

Manual de Estudio
REFERENCIAS 42

Referencias
[1] David Kincaid y Ward Cheney. Análisis Numérico. Addison-Wesley Iberoamericana,
S.A., Estados Unidos, Primera Edición 1994

[2] Herón Morales Marchena. Matlab 7 para ciencias e ingenierı́a Megabyte, S.A., Perú,
Primera Edición 2005

[3] Liudmila Chainskaia y Elizabeth Doig Elementos de Análisis Numérico, Universidad


Catolica del Perú Fondo Editorial S.A., Segunda Edición 1999

[4] Richard L. Burden y J. Douglas Faires. Análisis Numérico Internacional Thomson


Editores, S.A., México, Sexta Edición 2016

Manual de Estudio