Está en la página 1de 63

Contenido

Introduccin .......................................................................................................................... 3
Mtodos Numricos .......................................................................................................... 4
Procedimiento y Desarrollo ................................................................................................. 7
Primera etapa, funcin ............................................................. 8
Mtodo por Biseccin ....................................................................................................... 8
Resultado del Mtodo de Biseccin ................................................................................ 9
Cdigo del programa, mtodo por Biseccin ................................................................ 10
Mtodo de Falsa Posicin ............................................................................................... 11
Resultados del Mtodo de falsa posicin. ..................................................................... 12
Cdigo de programa, Mtodo de Falsa Posicin........................................................... 13
Mtodo de Newton-Raphson .......................................................................................... 14
Resultados del Mtodo de Newton-Raphson ................................................................ 14
Cdigo de programa, Mtodo de Newton-Raphson ...................................................... 15
Mtodo por Secante ........................................................................................................ 16
Resultados de Mtodo por Secante. .............................................................................. 16
Cdigo de programa, Mtodo por Secante .................................................................... 17
Mtodo de Races Mltiples ........................................................................................... 18
Resultados de Mtodo de Races Mltiples .................................................................. 18
Cdigo de programa, Mtodo de Races Mltiples. ...................................................... 19
Conclusiones de los mtodos para = .......................... 20
Segunda etapa, funcin + + .................................................... 22
Mtodo por Biseccin. .................................................................................................... 22
Resultado del Mtodo por Biseccin ............................................................................ 22
Cdigo de programa, Mtodo por Biseccin. ............................................................... 24
Mtodo de Falsa Posicin. .............................................................................................. 25
Resultados de Mtodo de Falsa Posicin ...................................................................... 25
Cdigo de programa, Mtodo de Falsa Posicin........................................................... 26
Mtodo de Newton-Raphson .......................................................................................... 27
Resultado del Mtodo de Newton-Raphson .................................................................. 27
Cdigo de programa, Mtodo de Newton-Raphson ...................................................... 28
Mtodo por Secante. ....................................................................................................... 29

Resultados de Mtodo por Secante. .............................................................................. 29


Cdigo de programa, Mtodo por Secante. ................................................................... 30
Mtodo de races mltiples............................................................................................. 31
Resultado de Mtodo de Races Mltiples .................................................................... 31
Cdigo de Programa, Mtodo de Races Mltiples....................................................... 32
Conclusiones de los mtodos para = + + ..................... 33
Tercera etapa. Calculo de 3 races para + ..................................... 35
Mtodo por Biseccin ..................................................................................................... 35
Resultado de Mtodo por Biseccin.............................................................................. 35
Cdigo de programa, mtodo por Biseccin. ................................................................ 38
Mtodo de Falsa posicin. .............................................................................................. 39
Resultado de mtodo por Falsa Posicin ...................................................................... 39
Cdigo de programa, Mtodo de Falsa Posicin........................................................... 41
Mtodo de Newton-Raphson .......................................................................................... 44
Resultado del Mtodo de Newton-Raphson .................................................................. 44
. ...................................................................................................................................... 45
Cdigo de programa, Mtodo de Newton Raphson ...................................................... 45
Mtodo por Secante ........................................................................................................ 47
Resultados del Mtodo por Secante. ............................................................................. 47
Cdigo del programa, Mtodo por secante ................................................................... 48
Mtodo de Races Mltiples ........................................................................................... 50
Resultados del Mtodo de Races Mltiples ................................................................. 50
Cdigo de programa, Mtodo de Races Mltiples ....................................................... 51
Conclusiones de los mtodos para ubicar 3 races ....................................................... 53
Etapa 4 Eliminacin Gaussiana y Seidel .......................................................................... 58
Mtodo de Gauss-Jordan. .............................................................................................. 58
Cdigo de programa, Mtodo de Gauss.Jordan ............................................................ 59
Mtodo de Gauss-Seidel ................................................................................................. 60
Cdigo de programa, Mtodo de Gauss Seidel. ............................................................ 61
Conclusin General ............................................................................................................ 62
Referencias. ......................................................................................................................... 63

Introduccin
Durante las ltimas dcadas, el ordenador se ha convertido en una de las herramientas ms
potentes y tiles de las que dispone el ingeniero. Debido a que su utilizacin abarca desde la
fase de diseo y validacin experimental, hasta la fase de construccin y/o produccin
industrial. Paralelamente a este auge tambin ha aparecido la necesidad de recurrir a
diferentes y cada vez ms sofisticados Mtodos Numricos.
Los Mtodos Numricos son tcnicas mediante las cuales es posible formular problemas de
tal forma que sean resueltas con operaciones aritmticas.
En el presente documento se expondr un Producto Integrador de Aprendizaje, dicho
producto contara con una serie de ejercicios resueltos y explicados por diversos mtodos que
fueron vistos durante el curso de Mtodos Numricos.
Este producto est basado en el planteamiento y resolucin de ejercicios matemticos por
medios de Software de programacin. El Software con el que se estar trabajando es RStudio.
El Software ser utilizado debido a que los clculos necesarios para la resolucin de los
ejercicios son demasiado tediosos para resolverlos inclusive con una calculadora, adems de
que es necesario tener conocimientos bsicos de programacin debido a que es muy utilizado
en los sectores industriales.
Los problemas planteados sern resueltos por diversos mtodos, con el objetivo de comparar
los resultados de un mismo problema con diferentes metodologas, esto, para concluir que
mtodo es ms eficiente y preciso. Adems de presentar un grfico dnde se mostrara el rea
por dnde pasa una funcin en el espacio bidimensional, adems de marcar las races de las
funciones a diferentes intervalos.

Mtodos Numricos

Los mtodos numricos nos vuelven aptos para entender esquemas numricos a fin de
resolver problemas matemticos, de ingeniera y cientficos en una computadora, reducir
esquemas numricos bsicos, escribir programas y resolverlos en una computadora y usar
correctamente el software existente para dichos mtodos y no solo aumenta nuestra habilidad
para el uso de computadoras sino que tambin amplia la pericia matemtica y la comprensi6n
de los principios cientficos bsicos.
Los mtodos vistos durante el curso y que son con los que se estar trabajando a lo largo del
documento son los siguientes.
Mtodo por Biseccin.
Mtodo por Falsa Posicin.
Mtodo de Newton- Raphson.
Mtodo por Secante.
Mtodo de Races Mltiples.
Eliminacin Gauss-Jordan
Gauss-Seidel
Mtodo por Biseccin: Es un algoritmo de bsqueda de races que funciona mediante la
divisin del intervalo a la mitad y seleccionando el intervalo que tiene la raz. Se basa en el
Teorema de Valor Intermedio, el cual establece que toda funcin continua f en un intervalo
cerrado [a,b] toma todos los valores que se hallen entre f(a) y f(b). Esto es que todo valor
entre f(a) y f(b) es la imagen de al menos un valor en el intervalo [a,b]. En caso de que f(a) y
f(b) tengan signos opuestos, el valor cero sera un valor intermedio entre f(j) y f(e), por lo que
con certeza existe un p en [a,b] que cumple f(p)=0. De esta forma, se asegura la existencia de
al menos una solucin de la ecuacin f(x)=0.
=

+
2

Frmula para calcular la


raz

Mtodo de Falsa posicin: Pretende conjugar la seguridad del mtodo por Biseccin con la
rapidez del mtodo de la Secante. Este mtodo, como el de Biseccin, parte de dos puntos
que rodean la raz f(x)=0, es decir, dos puntos Xi y Xu, tales que f(Xi)f(xu)<0. La siguiente
aproximacin, Xr, se calcula como la interseccin con el eje X de la recta que une a ambos
puntos. La asignacin del nuevo intervalo de bsqueda se realiza como en el mtodo de la
biseccin: entre ambos intervalos. [Xi,Xr] y [Xr,Xu], se toma el que cumpla f(X)f(Xr)
=

()( )
(Xi) ()

Frmula para calcular la


raz
Mtodo de Newton-Raphson: Es un algoritmo eficiente para encontrar races de una funcin
real. El mtodo de Newton-Raphson es un mtodo abierto, en el sentido de que no est
garantizada su convergencia global. La nica manera de alcanzar la convergencia es
seleccionar un valor inicial lo suficientemente cercano a la raz buscada. As, se ha de
comenzar la iteracin con un valor razonablemente cercano al cero (denominado punto de
arranque). La relativa cercana del punto inicial a la raz depende mucho de la naturaleza de
la propia funcin; si sta presenta mltiples puntos de inflexin o pendientes grandes en el
entorno de la raz, entonces las probabilidades de que el algoritmo diverja aumentan, lo cual
exige seleccionar un valor puesto cercano a la raz. Una vez que se ha hecho esto, el mtodo
linealiza la funcin por la recta tangente en ese valor supuesto.
+ 1 =

()
()

Frmula para calcular la


raz

Mtodo de Secante: El mtodo de la secante es un algoritmo de la raz de investigacin que


utiliza una serie de races de las lneas secantes para aproximar mejor la raz de una funcin
f(x). El mtodo de la secante se puede considerar como una aproximacin en diferencias
finitas del mtodo de Newton-Raphson. Este mtodo es de especial inters cuando el coste
computacional de derivar la funcin de estudio y evaluarla es demasiado elevado, por lo que
el mtodo de Newton resulta demasiado tedioso. Parte de dos puntos y estima la tangente por
una aproximacin mediante la siguiente expresin.
(0) =

(1) (0)
1

Mtodo de Races Mltiples: El Mtodo de Races mltiples, es una variante de Punto Fijo,
tambin es llamado Newton Modificado. Para que este mtodo trabaj se tiene que
garantizar que la convergencia en f(Xi) sea diferente de 0 donde Xi es la raz de la ecuacin
f(x)=0. Cundo la f(x) se aproxima a 0 disminuye su velocidad y puede suspenderse debido
a una divisin en 0.
Para garantizar que esto no ocurra este mtodo tiene una variacin y es respecto a la siguiente
funcin
+ 1 =

()()
[()]2 ()()

Mtodo de eliminacin Gauss-Jordan: Propone la eliminacin progresiva de variables en el


sistema de ecuaciones, hasta tener slo una ecuacin con una incgnita. Una vez resuelta
esta, se procede por sustitucin regresiva hasta obtener los valores de todas las variables.

Mtodo de Gauss-Seidel: Parte de una aproximacin lineal y se repite el proceso hasta llegar
a una solucin, que tendr un margen error tan minsculo como se desee. Se busca la solucin
de un sistema de ecuaciones lineales, en una notacin matricial.

Procedimiento y Desarrollo
A continuacin se presentaran las ecuaciones con sus respectivas resoluciones mediante el
Software y la representacin grfica de dichas adems de la ubicacin en el plano de sus
respectivas races. Adems de una comparacin de los datos obtenidos de las mismas
ecuaciones pero por diferentes mtodos.
Las primeras dos secciones sern de ecuaciones a las que solo se le encontr una raz por
medio del programa. Al final estar un conjunto de programas los cuales son capaces de
calcular y ubicar varias races a diferentes intervalos de una ecuacin.
Para que los programas encuentren varias races en necesario hacer ciclos y que calculen
valores y los tomen como nuevos valores iniciales para que encuentren el siguiente valor es
decir, calculan un valor con un dato, luego el valor calculado lo utilizan para calcular el
siguiente.
Adems de estos mtodos, se resolvern conjunto de ecuaciones mediante los mtodos de
Gauss-Lordan y Gauss-Seidel

Primera etapa, funcin () ()()


Para la funcin () cos() () 2 encontrar la raz por los mtodos de
Biseccin, Falsa Posicin, Newton-Raphson, Secante y Races Multiples, graficar la funcin
as como ubicar la raz cuando y=0. Adems de comparar los resultados entre mtodos
mediante tablas.
Para calcular y encontrar estos valores en necesario insertar los valores as como los
intervalos y la funcin en Rstudio, en la parte del Script.

Mtodo por Biseccin


Primeramente se tienen que insertar valores para establecer un rango del grfico y pedirle al
grafico dnde y con que buscar los que necesitamos, la tabla de a continuacin, muestra los
valores determinados para que el programa haga lo deseado.
Datos insertados en el programa
Valores
Valores en R
El valor de X es una secuencia de 1 a 10, En el Script se puso x<-seq(0,10,0.01)
incrementndose de centsima por centsima
La funcin es () cos() () 2 En el Script se puso fdex<- x*log(x) cos(x)*sin(x) - 2*x
Primer intervalo 1
En el Script se puso xi<- 1
Segundo intervalo 10
xu<- 10
Ya lo dems en parte del programa y del Mtodo mismo, como el clculo de Xr, que se
determina as =

+
2

en el Script se puso Xr<- (xi+xu)/2. Los qu se hizo despus fue

solo evaluar nuestra ecuacin () cos() () para los valores de Xi, Xu y Xr,
quedando de esta manera en R
fdexi<- xi*log(xi) - cos(xi)*sin(xi) - 2*xi
fdexu<- xu*log(xu) - cos(xu)*sin(xu) - 2*xu
fdexr<- xr*log(xr) - cos(xr)*sin(xr) - 2*xr
La siguiente parte ya es pura programacin, y para que el clculo sea acertado, se hizo 50
veces, para eso se utiliz el comando for. A continuacin se muestran los resultados
obtenidos por este mtodo.

Resultado del Mtodo de Biseccin

A Continuacin, se presentara el grafico de la funcin, as como los valores obtenidos, y el


cdigo para el programa en R.
Grfico

de

f(x)=

()

cos() () 2 la lnea roja representa


la funcin, y el punto azul es la raz de la
funcin. El resultado se dio despus de 50
interacciones.

La tabla que se presentar a continuacin, son los resultados de las primeras y ltimas 5
interacciones del programa.

1
2
3
4
5
46
47
48
49
50

Xi
1
5.5
5.5
6.625
7.1875
7.61532432498504
7.61532432498504
7.61532432498504
7.61532432498507
7.61532432498509

Xu
10
10
7.75
7.75
7.75
7.6153243249852
7.6153243249851
7.615324324985
7.615324324985
7.615324324985

Xr
5.5
7.75
6.625
7.1875
7.46875
7.61532432498517
7.6153243249851
7.61532432498507
7.61532432498509
7.6153243249851

Error
0
0.2903
-0.1698
0.0782
0.0376
1.6794 e-15
-8.3973 e-15
-4.1986 e-15
2.0993 e-15
1.0496e-15

Comprobacin de que el programa


corri, a continuacin se adjuntara
el cdigo.

Cdigo del programa, mtodo por Biseccin


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- x*log(x) - cos(x)*sin(x) - 2*x
plot(x,fdex,type='l',main = expression(f(x) == x*log(x) - cos(x)*sin(x) - 2*x),col='red')
arrows(-20,0,20,0)
arrows(0,-20,0,20)
xi<- 1
xu<- 10
xr<- (xi+xu)/2
fdexi<- xi*log(xi) - cos(xi)*sin(xi) - 2*xi
fdexu<- xu*log(xu) - cos(xu)*sin(xu) - 2*xu
fdexr<- xr*log(xr) - cos(xr)*sin(xr) - 2*xr
tabla1 <- matrix(0,51,5)
tabla1[1,1] <- 'I'
tabla1[1,2] <- 'xi'
tabla1[1,3] <- 'xu'
tabla1[1,4] <- 'xr'
tabla1[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla1[i+1,1]<- i
tabla1[i+1,2]<- xi
tabla1[i+1,3]<- xu
xr[i+1]<-(xi+xu)/2
tabla1[i+1,4]<- xr[i+1]
fdexi<- xi*log(xi) - cos(xi)*sin(xi) - 2*xi
fdexu<- xu*log(xu) - cos(xu)*sin(xu) - 2*xu
fdexr<- xr[i+1]*log(xr[i+1]) - cos(xr[i+1])*sin(xr[i+1]) - 2*xr[i+1]
paso<-fdexi*fdexr
if ( fdexi*fdexr < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla1[i+1,5] <- error
}
points(xr[50],0,col='blue',pch=19)
print(tabla1)

10

Mtodo de Falsa Posicin

De igual manera que con el mtodo de Biseccin, contando con la misma ecuacin f(x)=
() cos() () 2, y tomando en cuenta los mismos valores para X, Xi y Xu,
excepto para Xr, que se calcula diferente, tenemos el Mtodo de Falsa Posicin.
Para el clculo de Xr en el mtodo de falsa posicin se tiene en cuenta esta ecuacin:
=

()( )
(Xi) ()

De igual manera, la ecuacin se evala sustituyendo x por Xi, Xu y Xr. Para los valores de
fdexi, fdexu y fdxr.
Una vez planteadas las caractersticas de nuestro programa y cumpliendo con las
especificaciones de nuestro ciclo de 50 interacciones, solo queda correr el programa.
Datos insertados en el programa
Valores
Valores en R
El valor de X es una secuencia de 1 a 10, En el Script se puso x<-seq(0,10,0.01)
incrementndose de centsima por centsima
La funcin es () cos() () 2 En el Script se puso fdex<- x*log(x) cos(x)*sin(x) - 2*x
Primer intervalo 1
En el Script se puso xi<- 1
Segundo intervalo 10
xu<- 10

La tabla anterior muestra los datos insertados en nuestro programa, como se puede ver los
datos son exactamente iguales, por lo que nuestros resultados deberan de ser muy
aproximados.

11

Resultados del Mtodo de falsa posicin.

El grfico a simple vista se ve igual, pero


para verificar las diferencias al final de
esta parte estar un apartado con las
diferencias de los valores de las races

Tabla de valores obtenidos de las primeras y ltimas 5 interacciones

1
2
3
4
5
46
47
48
49
50

Xi
1
5.39723718475468
6.86705209962738
6.86705209962738
7.56932749485169
7.61532432498509
7.61532432498509
7.61532432498509
7.61532432498509
7.61532432498509

Xu
10
10
10
7.7211894509717
7.7211894509717
7.6153243249851
7.6153243249851
7.6153243249851
7.6153243249851
7.6153243249851

Xr
5.39723718475468
6.86705209962738
7.7211894509717
7.56932749485169
7.61410179960599
7.61532432498509
7.61532432498509
7.61532432498509
7.61532432498509
7.61532432498509

Error
-0.0190
0.2140
0.1106
-0.0200
0.0058
0
0
0
0
0

Comprobacin de que programa


funciono, a continuacin est el
cdigo.

12

Cdigo de programa, Mtodo de Falsa Posicin.


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- x*log(x) - cos(x)*sin(x) - 2*x
plot(x,fdex,type='l',main = expression(f(x) == x*log(x) - cos(x)*sin(x) - 2*x), col='red')
arrows(-20,0,20,0)
arrows(0,-20,0,20)
xi<- 1
xu<- 10
xr<- (xi+xu)/2
tabla1 <- matrix(0,51,5)
tabla1[1,1] <- 'I'
tabla1[1,2] <- 'xi'
tabla1[1,3] <- 'xu'
tabla1[1,4] <- 'xr'
tabla1[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla1[i+1,1]<- i
tabla1[i+1,2]<- xi
tabla1[i+1,3]<- xu

fdexi<- xi*log(xi) - cos(xi)*sin(xi) - 2*xi


fdexu<- xu*log(xu) - cos(xu)*sin(xu) - 2*xu
xr[i+1]<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
tabla1[i+1,4]<- xr[i+1]
fdexr<- xr[i+1]*log(xr[i+1]) - cos(xr[i+1])*sin(xr[i+1]) - 2*xr[i+1]
paso<-fdexi*fdexr
if ( fdexi*fdexr < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla1[i+1,5] <- error
}
points(xr[50],0,col='red',pch=19)
print(tabla1)

13

Mtodo de Newton-Raphson

Este mtodo es totalmente distinto a los dos anteriores, puesto que en este mtodo se necesita
determinar la derivada manualmente para poder encontrar mediante trazos de lneas
tangenciales la aproximacin de la raz de la funcin.
Los valores otorgados son los mismos, pero solo para definir nuestra grfica y necesitamos
la derivada de nuestra funcin.
La lnea tangencial cruza el eje x, representando la raz de nuestra funcin.
La derivada de nuestra funcin () cos() () 2 es log() + sen()2
cos()2 1
Resultados del Mtodo de Newton-Raphson

La lnea negra representa la grfica de la


funcin, la roja, la de la derivada de la
funcin, el punto rojo es la aproximacin de
la lnea tangencial a la raz.

Tabla de todas las interacciones.


X1 raz
7.612598
7.615326
7.615324
7.615324
7.615324

E1 Error
3.933795e-06
2.209788e-12
-1.776357e-15
1.776357e-15
-1.776357e-15
Comprobacin
programa

de

que

funciono,

continuacin est el cdigo.

14

Cdigo de programa, Mtodo de Newton-Raphson


remove(list=ls())
graphics.off()

x<- seq(0,10,0.01)
f <- x*log(x) - cos(x)*sin(x) - 2*x
f1 <- log(x) + (sin(x))^2 - (cos(x))^2 - 1
plot(x,f,'l', main = expression(f(x) == x*log(x) - cos(x)*sin(x) - 2*x))
arrows(-200,0,200,0,length=0.1)
arrows(0,-70,0,70,length=0.1)
lines(x,f1,'l', col='red')
x1<- locator(1)$x
e1 <- 1
for( i in 1:1000){
x <- x1[i]
f <- x*log(x) - cos(x)*sin(x) - 2*x
f1 <- log(x) + (sin(x))^2 - (cos(x))^2 - 1

x1[i+1] <- x1[i]- (f/f1)


xt <- x1[i+1]
e1[i] <- xt*log(xt) - cos(xt)*sin(xt) - 2*xt
if ( i>2){
if (e1[i] == e1[i-1] ){break}
}
if ( i>2){ if (abs(e1[i]) == e1[i-1] ){break} }
}
x<- xt
fx1 <- x*log(x) - cos(x)*sin(x) - 2*x
points(xt,fx1,pch=19,col='Brown')
print('Raz')
print(c(xt,0))
R <- x*log(x) - cos(x)*sin(x) - 2*x
print('Error primera raz:')
print(R)
En este programa se utiliz el comando locator para visualizar el valor de la raz cuando la
grfica de la funcin intersecta el eje x

15

Mtodo por Secante

Ahora encontraremos la raz de la funcin f(x)= () cos() () 2 utilizando


el mtodo por secante, es parecido al Mtodo de Newton, solo que en vez de trazar rectas
tangenciales, se van a trazar rectas secantes a la curva de nuestra ecuacin para verificar la
interseccin con el eje x para calcular la raz buscada. Y evitando usar la derivada de nuestra
funcin
Los valores para buscar nuestra raz sern los mismos.
Resultados de Mtodo por Secante.
Tabla de todas las interacciones.
Xi1 Raz
E1 Error
20.000000
-2.454649e+00
3.120238
1.954209e+01
5.148318
-2.668580e+00
7.664010
-1.477479e+00
7.512668
9.457374e-02
7.613851
-1.907774e-01
7.615372
-2.825609e-03
7.615324
9.142899e-05

Grfico de la funcin y ubicacin de la


aproximacin de la raz de la funcin.

Comprobacin de que el programa


funcion, a continuacin el cdigo de
este programa

16

Cdigo de programa, Mtodo por Secante


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- x*log(x) - cos(x)*sin(x) - 2*x
plot(x,fdex,type='l',main = expression(f(x) == x*log(x) - cos(x)*sin(x) - 2*x ),col='gold')
arrows(0,0,20,0)
arrows(0,-10,0,49)

x01 <- 1
xi1<- 20
e1 <-0
epor1 <- 0
for(i in 1:8){
x <- xi1[i]
fdexi<- x*log(x) - cos(x)*sin(x) - 2*x
x <- x01[i]
fdex0<- x*log(x) - cos(x)*sin(x) - 2*x
xi1[i+1] <- xi1[i] - (fdexi*(x01[i] - xi1[i]))/(fdex0 - fdexi)
x01[i+1] <- xi1[i]
xlist <- xi1[i+1]
e1[i] <- x*log(x) - cos(x)*sin(x) - 2*x
epor1[i]<- abs(((xi1[i+1]-xi1[i])/xi1[i+1])*100)
if (fdexi*fdex0 == 0 ){

break }

}
points(xlist,0,pch=19,col='red')
print('Primer raiz')
print(xlist)

17

Mtodo de Races Mltiples

Ahora se tiene que resolver el mismo ejercicio pero ahora con el mtodo de Races Mltiples
o, Newton modificado. Usando la misma ecuacin f(x)= () cos() () 2 y
la primera y segunda derivada de la funcin
1ra.- Derivada= () + ()2 1
1

2da.- Derivada= 4() cos() +

Utilizando los mismos valores e intervalos para la localizacin de nuestra nica raz.
Resultados de Mtodo de Races Mltiples

Tabla de todas las interacciones


X raz

E error

7.565225

-1.651194e-03

7.614463

3.908620e-07

7.615324

-2.309264e-14

7.615324

1.776357e-15

7.615324

-1.776357e-15
En el grfico, la lnea negra representa la
funcin, la lnea roja, es la primera
derivada, y la azul, la segunda derivada de
la funcin.
El punto, es la raz en la interseccin en el
eje x.

Comprobacin de que el programa


funciona.
A continuacin, el cdigo.

18

Cdigo de programa, Mtodo de Races Mltiples.


remove(list=ls())
graphics.off()

x<-seq(0,10,0.01)
fdexi<- x*log(x) - cos(x)*sin(x) - 2*x
f1dexi<- log(x) +(sin(x))^2 - (cos(x))^2 - 1
f2dexi<- 4*sin(x) *cos(x) + 1/x
plot(x,fdexi,type='l',main = expression(f(x) == x*log(x) - cos(x)*sin(x) - 2*x))
lines(x,f1dexi, col='red')
lines(x,f2dexi, col='blue')
arrows(-200,0,200,0,length=0.1)
arrows(0,-700,0,700,length=0.1)
x<- locator(1)$x
e1 <- 0
for (i in 1:50){
fdexi<- x[i]*log(x[i]) - cos(x[i] )*sin(x[i]) - 2*x[i]
f1dexi<- log(x[i]) +(sin(x[i]))^2 - (cos(x[i]))^2 - 1
f2dexi<- 4*sin(x[i] ) *cos(x[i]) + 1/(x[i])
x[i+1]<- x[i] - (fdexi * f1dexi)/((f1dexi)^2 - fdexi*f2dexi)
xp <- x[i+1]
e1[i]<- xp*log(xp) - cos(xp)*sin(xp) - 2*xp
if(e1[i] == 0){break}
if ( i>2){ if (abs(e1[i]) == e1[i-1] ){break} }
}
points(xp,0,pch=19)
print('Primera Raz')
print(xp)
print(' Valor inicial de x')
print(x[1])

19

Conclusiones de los mtodos para () = () () ()


Terminamos de ver la primera etapa del Producto Integrador de Aprendizaje, dnde se vieron
los mtodos vistos en clase para determinar una nica raz para una misma ecuacin, con los
datos exactamente iguales, ahora, se presentara una serie de tablas de los diferentes mtodos
de manera sucesiva para comparar los resultados obtenidos.

1
2
3
4
5
46
47
48
49
50

Mtodo por Biseccin. Primeras y ltimas 5 interacciones.


Xi
Xu
Xr
Error
1
10
5.5
0
5.5
10
7.75
0.2903
5.5
7.75
6.625
-0.1698
6.625
7.75
7.1875
0.0782
7.1875
7.75
7.46875
0.0376
7.61532432498504 7.6153243249852 7.61532432498517
1.6794 e-15
7.61532432498504 7.6153243249851 7.6153243249851
-8.3973 e-15
7.61532432498504 7.615324324985 7.61532432498507
-4.1986 e-15
7.61532432498507 7.615324324985 7.61532432498509
2.0993 e-15
7.61532432498509 7.615324324985
7.6153243249851
1.0496e-15

Mtodo de Falsa posicin. Primeras y ltimas 5 interacciones.


Xi
Xu
Xr
Error
1
1
10
5.39723718475468
-0.0190
2 5.39723718475468
10
6.86705209962738
0.2140
3 6.86705209962738
10
7.7211894509717
0.1106
4 6.86705209962738 7.7211894509717 7.56932749485169
-0.0200
5 7.56932749485169 7.7211894509717 7.61410179960599
0.0058
46 7.61532432498509 7.6153243249851 7.61532432498509
0
47 7.61532432498509 7.6153243249851 7.61532432498509
0
48 7.61532432498509 7.6153243249851 7.61532432498509
0
49 7.61532432498509 7.6153243249851 7.61532432498509
0
50 7.61532432498509 7.6153243249851 7.61532432498509
0
Mtodo de Newton-Raphson. Tabla de todas las interacciones.
X1 raz
E1 Error
7.612598
3.933795e-06
7.615326
2.209788e-12
7.615324
-1.776357e-15
7.615324
1.776357e-15
7.615324
-1.776357e-15
Mtodo por Secante. Tabla de todas las interacciones.
Xi1 Raz
E1 Error
20.000000
-2.454649e+00
3.120238
1.954209e+01
5.148318
-2.668580e+00

20

7.664010
-1.477479e+00
7.512668
9.457374e-02
7.613851
-1.907774e-01
7.615372
-2.825609e-03
7.615324
9.142899e-05
Mtodo de Races Mltiples. Tabla de todas las interacciones
X raz
E error
7.565225
-1.651194e-03
7.614463
3.908620e-07
7.615324
-2.309264e-14
7.615324
1.776357e-15
7.615324
-1.776357e-15

l mtodo ms eficiente para encontrar la raz en este caso es el Mtodo de Newton-Raphson,


ya que con solo tres interacciones encontr la raz. Tambin el mtodo de races mltiples
determino la raz con tres interacciones, pero como el mtodo de Newton-Raphson solo
requiere de una derivada, es ms eficiente que l de races mltiples en esta ocasin.
El mtodo por Secante determin la aproximacin de la raz a las 8 interacciones. Tambin
el de Falsa Posicin la determin en 8, pero es una aproximacin, el valor encontrado por los
tres anteriores es de 7.615324 y el de Falsa Posicin dio un valor de 7.61532430634221,
siendo este el ms cercano al de los dems.
l mtodo por Biseccin encontr un valor aproximado al de los primeros 3 al realizar 23
interacciones, 7.61532413959503. Siendo el menos eficaz debido al nmero de interacciones
y mostrando poca exactitud en sus resultados.

21

Segunda etapa, funcin () + () +


Para la funcin 2 3() + 5() + 20 encontrar la raz por los mtodos de
Biseccin, Falsa Posicin, Newton-Raphson, Secante y Races Multiples, graficar la funcin
as como ubicar la raz en la interseccin del eje x. Adems de comparar los resultados entre
mtodos mediante tablas.
Para continuar, no es necesario escribir todo el programa, en esta etapa, solo se requiere de
cambiar las funciones y modificar las evaluaciones con la nueva funcin y verificar que no
haya una perturbacin en l programa para evitar errores.

Mtodo por Biseccin.

Se tienen que insertar valores para establecer un rango del grfico y pedirle al grafico dnde
y con que buscar los que necesitamos, la tabla de a continuacin, muestra los valores
determinados para que el programa haga lo deseado.
La raz o Xr se calcula =

+
2

Cmo se dijo anteriormente, ente caso solo se cambia la ecuacin anterior por esta 2
3() + 5() + 20, en el programa, teniendo cuidado de cambiarla totalmente de
todas partes, incluyendo en las reas donde se est evaluando Xi, Xu y Xr. As como del rea
del grfico.
Resultado del Mtodo por Biseccin

Grfico de la funcin 2 3() +


5() + 20, con su raz marcada en la
interseccin con el eje x.

22

La tabla que se presentar a continuacin, son los resultados de las primeras y ltimas 5
interacciones del programa.

1
2
3
4
5
46
47
48
49
50

Xi
1
1
3.25
4.375
4.375
4.87580608626476
4.87580608626489
4.87580608626489
4.87580608626489
4.87580608626489

Xu
10
5.5
5.5
5.75
4.9375
4.87580608626502
4.87580608626502
4.87580608626502
4.87580608626495
4.8758060862649

Xr
5.5
3.25
4.375
4.9375
4.65625
4.87580608626489
4.87580608626495
4.87580608626492
4.8758060862649
4.8758060862649

Error
0
-0.6923
0.2571
0.1139
-0.0604
2.6231e-14
1.3115e-14
-6.5577e-15
-3.2788e-15
-1.6394e-15

Comprobacin de que l programa


funciona, a continuacin, el cdigo del
programa

23

Cdigo de programa, Mtodo por Biseccin.


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- -x^2 - 3*sin(x) + 5*cos(x) + 20
plot(x,fdex,type='l',main = expression(f(x) == -x^2 - 3*sin(x) + 5*cos(x) + 20))
arrows(-200,0,200,0)
arrows(0,-200,0,250)
xi<- 1
xu<- 10
xr<- (xi+xu)/2
fdexi<- -xi^2 - 3*sin(xi) + 5*cos(xi) + 20
fdexu<- -xu^2 - 3*sin(xu) + 5*cos(xu) + 20
fdexr<- -xr^2 - 3*sin(xr) + 5*cos(xr) + 20
tabla1 <- matrix(0,51,5)
tabla1[1,1] <- 'I'
tabla1[1,2] <- 'xi'
tabla1[1,3] <- 'xu'
tabla1[1,4] <- 'xr'
tabla1[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla1[i+1,1]<- i
tabla1[i+1,2]<- xi
tabla1[i+1,3]<- xu
xr[i+1]<-(xi+xu)/2
tabla1[i+1,4]<- xr[i+1]
fdexi<- -xi^2 - 3*sin(xi) + 5*cos(xi) + 20
fdexu<- -xu^2 - 3*sin(xu) + 5*cos(xu) + 20
fdexr<- -xr[i+1]^2 - 3*sin(xr[i+1]) + 5*cos(xr[i+1]) + 20
paso<-fdexi*fdexr
if ( fdexi*fdexr < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla1[i+1,5] <- error
}
points(xr[50],0,pch=19)
print(tabla1)

24

Mtodo de Falsa Posicin.


De la misma manera se toma como base el programa de la ecuacin anterior en la primera
etapa y se cambia la funcin nuevamente por esta 2 3() + 5() + 20.
Para calcular Xr, se tiene:
=

()( )
(Xi) ()

Como ya se dijo, es solo cuestin de cambiar la ecuacin en el programa anterior para


determinar las races y los grficos.
Resultados de Mtodo de Falsa Posicin
La tabla que se presentar a continuacin, son los resultados de las primeras y ltimas 5
interacciones del programa.

1
2
3
4
5
46
47
48
49
50

Xi
1
2.69641459282428
3.26158497163021
3.62868708950327
3.91031830955862
4.87580595222528
4.87580599636844
4.87580602597397
4.87580604582953
4.87580605914608

Xu
10
10
10
10
10
10
10
10
10
10

Xr
2.69641459282428
3.26158497163021
3.62868708950327
3.91031830955862
4.13761061648727
4.87580599636844
4.87580602597397
4.87580604582953
4.87580605914608
4.8758060680771

Error
0
0.17328089
0.10116665
0.07202258
0.05493322
1.34991865e-9
9.05351057e-9
4.07226313e-9
2.73114797e-9
1.83170131e-9

Comprobacin de que l programa


funciona y el grfico, a continuacin, el
cdigo del programa.

25

Cdigo de programa, Mtodo de Falsa Posicin.


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- -x^2 - 3*sin(x) + 5*cos(x) + 20
plot(x,fdex,type='l',main = expression(f(x) == -x^2 - 3*sin(x) + 5*cos(x) + 20))
arrows(-200,0,200,0)
arrows(0,-200,0,250)
xi<- 1
xu<- 10
fdexi<- -xi^2 - 3*sin(xi) + 5*cos(xi) + 20
fdexu<- -xu^2 - 3*sin(xu) + 5*cos(xu) + 20
xr<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
fdexr<- -xr^2 - 3*sin(xr) + 5*cos(xr) + 20
tabla1 <- matrix(0,51,5)
tabla1[1,1] <- 'I'
tabla1[1,2] <- 'xi'
tabla1[1,3] <- 'xu'
tabla1[1,4] <- 'xr'
tabla1[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla1[i+1,1]<- i
tabla1[i+1,2]<- xi
tabla1[i+1,3]<- xu
fdexi<- -xi^2 - 3*sin(xi) + 5*cos(xi) + 20
fdexu<- -xu^2 - 3*sin(xu) + 5*cos(xu) + 20
xr[i+1]<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
tabla1[i+1,4]<- xr[i+1]
fdexr<- -xr[i+1]^2 - 3*sin(xr[i+1]) + 5*cos(xr[i+1]) + 20
paso<-fdexi*fdexr
if ( fdexi*fdexr < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla1[i+1,5] <- error
}
points(xr[50],0,pch=19)
print(tabla1)

26

Mtodo de Newton-Raphson
Para la funcin 2 3() + 5() + 20. Tenemos como derivada 2
3 cos() 5()
Usando los mismos datos e intervalos dnde buscara nuestro programa, y cambiando la
funcin por esta 2 3() + 5() + 20 y su derivada en sus respectivas
posiciones.
Este programa tiene incluido el comando locator con el cual encontramos el valor
aproximado de la raz.
Resultado del Mtodo de Newton-Raphson

Aqu el grfico de la funcin, la lnea

Corroboracin de que el programa

negra es la funcin, la roja representa la

funciona. Al final se anexara el cdigo

derivada de la misma. El punto, es la

del programa.

posicin aproximada de la raz


Mtodo de Newton-Raphson. Tabla de todas las interacciones.
X1 raz
E1 Error
4.983420
-6.053616e-01
4.881721
-3.149010e-02
4.875825
-1.006709e-04
4.875806
-1.039005e-09
4.875806
0.000000e+00
4.875806
0.000000e+00

27

Cdigo de programa, Mtodo de Newton-Raphson


remove(list=ls())
graphics.off()

x<- seq(0,10,0.01)

f <- -x^2 - 3*sin(x) + 5*cos(x) + 20


f1 <- -2*x - 3*cos(x) - 5*sin(x)

plot(x,f,'l', main = expression(f(x) == -x^2 - 3*sin(x) + 5*cos(x) + 20))


arrows(-200,0,200,0,length=0.1) ###Cambiar depende que tan larga las flechas##
arrows(0,-700,0,700,length=0.1)
lines(x,f1,'l', col='red')

x1<- locator(1)$x
e1 <- 1
for( i in 1:1000){
x <- x1[i]
f <- -x^2 - 3*sin(x) + 5*cos(x) + 20
f1 <- -2*x - 3*cos(x) - 5*sin(x)

x1[i+1] <- x1[i]- (f/f1)


xt <- x1[i+1]
e1[i] <- -x^2 - 3*sin(x) + 5*cos(x) + 20
if ( i>2){
if (e1[i] == e1[i-1] ){break}
}
if ( i>2){ if (e1[i] == e1[i-1] ){break} }
}
x <- xt
fx1 <- -x^2 - 3*sin(x) + 5*cos(x) + 20
points(xt,fx1,pch=19)
print('Raz')
print(c(xt,fx1))

R <- -x^2 - 3*sin(x) + 5*cos(x) + 20


print('Error primera raz:')
print(R)

28

Mtodo por Secante.


Repitiendo el programa pasado de este mtodo, solo se cambia la funcin, ya que estamos
tomando en cuenta los mismos valores y los mismos intervalos.
Tenemos la funcin 2 3() + 5() + 20, encontrar el valor de la races y su
ubicacin grafica en un plano. As como la grfica de la funcin.
Resultados de Mtodo por Secante.
Tabla de todas las interacciones.
Xi1 Raz
1
10
2.696415
3.261585
4.501884
5.143598
4.820841
4.868315
4.876034
4.875805
4.875806
4.875806

Grfico de la funcin y
aproximacin de su raz(punto)

E1 Error
6.924823e+00
4.757129e+00
1.622047e+00
-1.477479e+00
-1.641367e+00
2.830620e-01
-3.958677e-02
-1.209940e-03
4.940365e-06
6.127223e-10
0.000000e+00
0.000000e+00

Comprobacin del funcionamiento


del programa

la

29

Cdigo de programa, Mtodo por Secante.


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- -x^2 - 3*sin(x) + 5*cos(x) + 20
plot(x,fdex,type='l',main = expression(f(x) == -x^2 - 3*sin(x) + 5*cos(x) + 20))
arrows(-200,0,200,0,length=0.1)
arrows(0,-700,0,700,length=0.1)
x01 <- 1
xi1<- 10
e1 <-0
epor1 <- 0
for(i in 1:100){
x <- xi1[i]
fdexi<- -x^2 - 3*sin(x) + 5*cos(x) + 20
x <- x01[i]
fdex0<- -x^2 - 3*sin(x) + 5*cos(x) + 20
if (fdexi-fdex0 == 0 ){ break }
xi1[i+1] <- xi1[i] - (fdexi*(x01[i] - xi1[i]))/(fdex0 - fdexi)
x01[i+1] <- xi1[i]
xlist <- xi1[i+1]
e1[i] <- -xlist^2 - 3*sin(xlist) + 5*cos(xlist) + 20
epor1[i]<- abs(((xi1[i+1]-xi1[i])/xi1[i+1])*100)
if ( i>2){
if (e1[i] == e1[i-1] ){break}
}
}
points(xlist,0,pch=19)
print('Primer raiz')
print(xlist)

30

Mtodo de races mltiples


Con la funcin 2 3() + 5() + 20, y sus dos primeras derivadas encontrar el
valor de la raz en la interseccin con el eje x
1ra derivada 2 3 cos() 5()
2da derivada 2 + 3() 5 cos()
Utilizando el mismo programa para la funcin anterior en este mismo mtodo, solo
cambiando las funciones, las derivadas y las evaluaciones. Y usando los mismos valores para
las variables.
Resultado de Mtodo de Races Mltiples
Tabla de todas las interacciones
X raz
5.007106
4.866639
4.875760
4.875806
4.875806

E error
4.840153e-02
2.427040e-04
6.039500e-09
0.000000e+00
-0.000000e+00

Grfico de la funcin en negro, la


lnea roja representa la primera
derivada, la azul, la segunda
derivada, la raz, el punto negro

Comprobacin del programa

31

Cdigo de Programa, Mtodo de Races Mltiples


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdexi<- -x^2 - 3*sin(x) + 5*cos(x) + 20
f1dexi<- -2*x - 3*cos(x) - 5*sin(x)
f2dexi<- -2 + 3*sin(x) - 5*cos(x)
plot(x,fdexi,type='l',main = expression(f(x) == -x^2 - 3*sin(x) + 5*cos(x) + 20))
lines(x,f1dexi, col='red')
lines(x,f2dexi, col='blue')
arrows(-200,0,200,0,length=0.1)
arrows(0,-700,0,700,length=0.1)

x1<- locator(1)$x
e1 <- 0
for (i in 1:500){
x <- x1[i]
fdexi<- -x^2 - 3*sin(x) + 5*cos(x) + 20
f1dexi<- -2*x - 3*cos(x) - 5*sin(x)
f2dexi<- -2 + 3*sin(x) - 5*cos(x)
x1[i+1]<- x1[i] - (fdexi * f1dexi)/((f1dexi)^2 - fdexi*f2dexi)
xp <- x1[i+1]
e1[i]<- -xp^2 - 3*sin(xp) + 5*cos(xp) + 20
if ( i>2){
if (e1[i] == e1[i-1] ){break}
}
}
points(xp,0,pch=19)
print('Primera Raz')
print(xp)
print(' Valor inicial de x')
print(x1[1])

32

Conclusiones de los mtodos para () = () + () +


La segunda etapa del Producto Integrador resumindolo es exactamente lo mismo, solo que
con diferentes ecuaciones, a continuacin se presentarn una serie de tablas de la misma
forma que en la etapa anterior. Con el fin de comparar nuevamente los mtodos.

1
2
3
4
5
46
47
48
49
50

1
2
3
4
5
46
47
48
49
50

Mtodo por Biseccin. Primeras y ltimas 5 interacciones.


Xi
Xu
Xr
Error
1
10
5.5
0
1
5.5
3.25
-0.6923
3.25
5.5
4.375
0.2571
4.375
5.75
4.9375
0.1139
4.375
4.9375
4.65625
-0.0604
4.87580608626476 4.87580608626502
4.87580608626489
2.6231e-14
4.87580608626489 4.87580608626502
4.87580608626495
1.3115e-14
4.87580608626489 4.87580608626502
4.87580608626492
-6.5577e-15
4.87580608626489 4.87580608626495
4.8758060862649
-3.2788e-15
4.87580608626489
4.8758060862649
4.8758060862649
-1.6394e-15
Mtodo de Falsa posicin. Primeras y ltimas 5 interacciones.
Xi
Xu
Xr
Error
1
10
2.69641459282428
0
2.69641459282428
10
3.26158497163021
0.17328089
3.26158497163021
10
3.62868708950327
0.10116665
3.62868708950327
10
3.91031830955862
0.07202258
3.91031830955862
10
4.13761061648727
0.05493322
4.87580595222528
10
4.87580599636844
1.34991865e-9
4.87580599636844
10
4.87580602597397
9.05351057e-9
4.87580602597397
10
4.87580604582953
4.07226313e-9
4.87580604582953
10
4.87580605914608
2.73114797e-9
4.87580605914608
10
4.8758060680771
1.83170131e-9

Mtodo de Newton-Raphson. Tabla de todas las interacciones.


X1 raz
E1 Error
4.983420
-6.053616e-01
4.881721
-3.149010e-02
4.875825
-1.006709e-04
4.875806
-1.039005e-09
4.875806
0.000000e+00
4.875806
0.000000e+00
Mtodo de Secante. Tabla de todas las interacciones.
Xi1 Raz
E1 Error
1
6.924823e+00

33

10
2.696415
3.261585
4.501884
5.143598
4.820841
4.868315
4.876034
4.875805
4.875806
4.875806

4.757129e+00
1.622047e+00
-1.477479e+00
-1.641367e+00
2.830620e-01
-3.958677e-02
-1.209940e-03
4.940365e-06
6.127223e-10
0.000000e+00
0.000000e+00

Mtodo de Races Mltiples. Tabla de todas las interacciones


X raz
5.007106
4.866639
4.875760
4.875806
4.875806

E error
4.840153e-02
2.427040e-04
6.039500e-09
0.000000e+00
-0.000000e+00

Nuevamente el mtodo de Newton-Raphson, result ser el ms eficiente al calcular el valor


ms aproximado posible con solo 4 interacciones. El de Races Mltiples tambin logr
encontrarlo en 4 interacciones pero, necesita de ms tiempo para programarse y es un poco
ms tedioso porque requiere de la segunda derivada. El valor hallado es de 4.875806.
El de secante encontr ese mismo valor pero con 11 interacciones.
Esta vez, el mtodo de biseccin resulto ser mejor, ya que con 27 interacciones encontr un
muero cercano a 4.875806. Encontr un valor de 4.87580604106188. Mientras que el de falsa
posicin encontr un nmero ms cercano, pero con la cantidad de 47 interacciones, este
nmero es 4.87580602597397.

34

Tercera etapa. Calculo de 3 races para () + ()


Antes habamos calculado una sola raz para una funcin que intersectaba una vez el eje de
las x, ahora tenemos una ecuacin que intersecta al eje de las x tres veces, en la que se tiene
que calcular la raz de cada interseccin.
Esto se calcula mediante con un ciclo, con el valor aproximado de la raz anterior,
aproximndose al valor de la siguiente

Mtodo por Biseccin


Determinar por el Mtodo de Biseccin los valores de las races en las intersecciones en el
eje x de la siguiente funcin.
() = log() + 10() 6
Para que nuestro programa funcione es necesario utilizar otro comando for y tambin
modificar los if. El cdigo estar al final para referencia.
Tambin es necesario insertar los valores dnde estar el rea dnde nuestro programa
trabajar.
Datos insertados en el programa
Valores
Valores en R
El valor de X es una secuencia de 1 a 10, En el Script se puso x<-seq(0,10,0.01)
incrementndose de centsima por centsima
La funcin es () = log() + 10() En el Script se puso fdex<- x*log(x) +
10*sin(x)-6
6
Primer intervalo comienza con el valor de i-0.9 En el Script se puso xi<-i-0.9
Segundo intervalo i+1
La i es el nmero de las interacciones.

xu<-i+1

Resultado de Mtodo por Biseccin


Con el cdigo terminado, solo queda correr el programa para determinar nuestros valores
deseados. A continuacin las tablas de los valores obtenidos de las primeras 5 y ltimas
interacciones para las tres races.

35

1
2
3
4
5
46
47
48
49
50

Tabla, primera raz, primeras y ltimas 5 interacciones.


Xi
Xu
Xr Raz
0.1
2
1.05
0.1
1.05
0.575
0.575
1.05
0.8125
0.575
0.8125
0.69375
0.575
0.69375
0.634375
0.67694194545783 0.676941945457884 0.676941945457857
0.67694194545783 0.676941945457857 0.676941945457843
0.67694194545783 0.676941945457843 0.676941945457837
0.67694194545783 0.676941945457837 0.676941945457833
0.67694194545783 0.676941945457833 0.676941945457831

1
2
3
4
5
46
47
48
49
50

Tabla, segunda raz, primeras y ltimas 5 interacciones.


Xi
Xu
Xr Raz
Error
1.1
3
2.05
0
2.05
3
2.525
0.188118
2.525
3
2.7625
0.085972
2.7625
3
2.88125
0.041214
2.7625
2.88125
2.821875
-0.021040
2.83130120619357
2.83130120619363
2.8313012061936 9.410991e-15
2.83130120619357
2.8313012061936
2.83130120619358 -4.705495e-15
2.83130120619357
2.83130120619359
2.83130120619358 -2.352747e-15
2.83130120619357
2.83130120619358
2.83130120619358 -1.097949e-15
2.83130120619358
2.83130120619358
2.83130120619358 6.273994e-16

1
2
3
4
5
46
47
48
49
50

Tabla, tercera raz, primeras y ltimas 5 interacciones.


Xi
Xu
Xr Raz
Error
4.1
7
6.05
0
5.05
6.05
5.575
-0.085201
5.525
6.05
5.8125
0.040860
57625
6.05
5.93125
0.020021
5.7625
5.93125
5.871875
-0.010111
5.83848788906276
5.83848788906281
5.83848788906278 4.715866e-15
5.83848788906276
5.83848788906278
5.83848788906277 -4.705495e-15
5.83848788906276
5.83848788906277
5.83848788906276 -1.216997e-15
5.83848788906276
5.83848788906276
5.83848788906276 -6.084989e-16
5.83848788906276
5.83848788906276
5.83848788906276 3.042494e-16

36

Error
0
-0.8260869
0.2923076
-0.1711711
-0.0935960
3.985337e-14
-1.984468e-14
-1.000434e-14
-5.084175e-15
-2.460084e-15

Grfico de la funcin.
Las races estn representadas por los
puntos. Primera raz, segunda raz, tercera
raz, de izquierda a derecha.

La primera raz graficada tiene como valor 0.676941945457831


La segunda raz graficada tiene como valor 2.83130120619358
La tercera raz graficada tiene como valor 5.83848788906276

Comprobacin de que el programa funcion

37

Cdigo de programa, mtodo por Biseccin.


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- x*log(x) + 10*sin(x)-6
plot(x,fdex,type='l',main = expression(f(x) == x*log(x) + 10*sin(x) -6))
arrows(0,0,40,0)
arrows(0,-150,0,80)
for (i in 1:10){
xr<- (xi+xu)/2
tabla1 <- matrix(0,51,5)
tabla1[1,1] <- 'I'
tabla1[1,2] <- 'xi'
tabla1[1,3] <- 'xu'
tabla1[1,4] <- 'xr'
tabla1[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla1[i+1,1]<- i
tabla1[i+1,2]<- xi
tabla1[i+1,3]<- xu
xr[i+1]<-(xi+xu)/2
tabla1[i+1,4]<- xr[i+1]
fdexi<- xi*log(xi) + 10*sin(xi)-6
fdexu<- xu*log(xu) + 10*sin(xu)-6
fdexr<- xr[i+1]*log(xr[i+1]) + 10*sin(xr[i+1])-6
paso<-fdexi*fdexr
if ( fdexi*fdexr < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
if ( fdexi*fdexr <= 0.01){
points(xr[50],0,pch=19)
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla1[i+1,5] <- error
}
c <- xr[50]*log(xr[50]) + 10*sin(xr[50])-6
if(c >-0.1 & c<0.1){
print(tabla1)
}
}

38

Mtodo de Falsa posicin.


De igual manera que con el mtodo anterior, tenemos que determinar el valor de las races
en los puntos que la funcin intersecta el eje x. La funcin f(x)=log(x)+10sen(x)-6 ser
nuevamente nuestra funcin principal para este ejercicio.
Recordando que para determinar el valor de races para el mtodo de falsa posicin, la
ecuacin

es
=

()( )
(Xi) ()

Para que nuestro programa funciones es necesario un ciclo, y es necesario calcular el valor
aproximado de nuestra primera raz, ya que con este valor calcular el siguiente y as
sucesivamente hasta llegar al nmero de races posibles
Resultado de mtodo por Falsa Posicin
Utilizando los mismo datos se escribe el programa (el cdigo esta al finalizar) y se especifican
los valores para que los ciclos trabajen de manera adecuada para poder encontrar valores
aproximados.

1
2
3
4
5
46
47
48
49
50

1
2
3
4
5
46
47
48
49

Tabla, primera raz, primeras y ltimas 5 interacciones


Xi
Xu
Xr
1
8
0.0668769423162434
1
0.0668769423162434 0.715765559935331
0.715765559935331 0.0668769423162434 0.679891892780739
0.679891892780739 0.0668769423162434 0.677149442846599
0.677149442846599 0.0668769423162434 0.676956450631913
0.676941945457831 0.0668769423162434 0.676941945457831
0.676941945457831 0.0668769423162434 0.676941945457831
0.676941945457831 0.0668769423162434 0.676941945457831
0.676941945457831 0.0668769423162434 0.676941945457831
0.676941945457831 0.0668769423162434 0.676941945457831
Tabla, segunda raz, primeras y ltimas 5 interacciones
Xi
Xu
Xr
2
4
2.71656167323074
2.71656167323074
4
2.83798428506373
2.71656167323074
2.83798428506373
2.83114215455158
2.83114215455158
2.83798428506373
2.8313010160568
2.8313010160568
2.83798428506373
2.83130120596633
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358
2.83130120619358

39

Error
0
0.906565
-0.052763
-0.004049
-0.000285
0
0
0
0
0
Error
0
0.038257
0.001251
3.341483e-5
8.861014e-7
0
0
0
0

50

1
2
3
4
5
46
47
48
49
50

2.83130120619358
2.83130120619358
2.83130120619358
Tabla, tercera raz, primeras y ltimas 5 interacciones.
Xi
Xu
Xr
4
6
5.60790601249951
5.60790601249951
6
5.83098198859967
5.83098198859967
6
5.83828748271338
5.83828748271338
6
5.83848257466817
5.83848257466817
6
5.83848774816089
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276
5.83848788906276

0
Error
0
0.038257
0.001251
3.341483e-5
8.861014e-7
0
0
0
0
0

Grfico de la funcin. Las races estn


representadas por los puntos. Primera
raz, segunda raz, tercera raz, de
izquierda
a
derecha.

La primera raz graficada tiene como valor 0.676941945457831


La segunda raz graficada tiene como valor 2.83130120619358
La tercera raz graficada tiene como valor 5.83848788906276

Comprobacin

de

que

el

programa

funcino. Acontinuacin, el cdigo.

40

Cdigo de programa, Mtodo de Falsa Posicin.


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- x*log(x) + 10*sin(x)-6
plot(x,fdex,type='l',main = expression(f(x) == x*log(x) + 10*sin(x) -6),col='gold')
arrows(0,0,40,0)
arrows(0,-150,0,80)
xi<- 1
xu<- 8
fdexi<- xi*log(xi) + 10*sin(xi)-6
fdexu<- xu*log(xu) + 10*sin(xu)-6
xr<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
fdexr<- xr*log(xr) + 10*sin(xr)-6
tabla1 <- matrix(0,51,5)
tabla1[1,1] <- 'I'
tabla1[1,2] <- 'xi'
tabla1[1,3] <- 'xu'
tabla1[1,4] <- 'xr'
tabla1[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla1[i+1,1]<- i
tabla1[i+1,2]<- xi
tabla1[i+1,3]<- xu
fdexi<- xi*log(xi) + 10*sin(xi)-6
fdexu<- xu*log(xu) + 10*sin(xu)-6
xr[i+1]<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
tabla1[i+1,4]<- xr[i+1]
fdexr<- xr[i+1]*log(xr[i+1]) + 10*sin(xr[i+1])-6
paso<-fdexi*fdexr
if ( fdexi*fdexr < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla1[i+1,5] <- error
}
points(xr[50],0,pch=19)
print(tabla1)

41

xi<- 2
xu<- 4
fdexi<- xi*log(xi) + 10*sin(xi)-6
fdexu<- xu*log(xu) + 10*sin(xu)-6
xr<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
fdexr<- xr*log(xr) + 10*sin(xr)-6
tabla2 <- matrix(0,51,5)
tabla2[1,1] <- 'I'
tabla2[1,2] <- 'xi'
tabla2[1,3] <- 'xu'
tabla2[1,4] <- 'xr'
tabla2[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla2[i+1,1]<- i
tabla2[i+1,2]<- xi
tabla2[i+1,3]<- xu

fdexi<- xi*log(xi) + 10*sin(xi)-6


fdexu<- xu*log(xu) + 10*sin(xu)-6
xr[i+1]<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
tabla2[i+1,4]<- xr[i+1]
fdexr<- xr[i+1]*log(xr[i+1]) + 10*sin(xr[i+1])-6
paso<-fdexi*fdexr
if ( fdexi*fdexr < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla2[i+1,5] <- error
}
points(xr[50],0,pch=19)
print(tabla2)
xi<- 4
xu<- 6
fdexi<- xi*log(xi) + 10*sin(xi)-6
fdexu<- xu*log(xu) + 10*sin(xu)-6
xr<- xu - (fdexu*(xi - xu))/(fdexi-fdexu)
fdexr<- xr*log(xr) + 10*sin(xr)-6

42

tabla3 <- matrix(0,51,5)


tabla3[1,1] <- 'I'
tabla3[1,2] <- 'xi'
tabla3[1,3] <- 'xu'
tabla3[1,4] <- 'xr'
tabla3[1,5] <- 'Error Relativo'
for(i in 1:50){
tabla3[i+1,1]<- i
tabla3[i+1,2]<- xi
tabla3[i+1,3]<- xu

fdexi<- xi*log(xi) + 10*sin(xi)-6


fdexu<- xu*log(xu) + 10*sin(xu)-6
xr[i+1]<-xu - (fdexu*(xi - xu))/(fdexi-fdexu)
tabla3[i+1,4]<- xr[i+1]
fdexr<- xr[i+1]*log(xr[i+1]) + 10*sin(xr[i+1])-6
paso<-fdexi*fdexr
if ( paso < 0){
xu <- xr[i+1]
}
if (paso>0){
xi<-xr[i+1]
}
error <- (xr[i+1] - xr[i])/xr[i+1]
tabla3[i+1,5] <- error
}
points(xr[50],0,pch=19)
print(tabla3)

43

Mtodo de Newton-Raphson
Para este mtodo necesitaremos la derivada de nuestra funcin
Funcin
() = log() + 10() 6
Derivada
log() + 10 cos() + 1
Para este mtodo tendremos el comando locator, para determinar la aproximacin final de
nuestra raz.
Resultado del Mtodo de Newton-Raphson
Tabla, primera raz, todas las interacciones
X1 Raz
E1 Error
0.6962014
1.609715e-01
0.6768323
-9.216758e-04
0.6769419
-2.877464e-08
0.6769419
0.000000e+00
0.6769419
0.000000e+00
0.6769419
0.000000e+00
Tabla, segunda raz, todas las interacciones
X2 Raz
E2 Error
2.827967
2.492776e-02
2.831303
-1.513985e-05
2.831301
-5.528022e-12
2.831301
1.776357e-15
Tabla, tercera raz, todas las interacciones
X3 Raz
E2 Error
5.836126
2.952750
5.838489
2.943257
5.838488
2.943262
5.838488
2.943262
La lnea amarilla representa la
funcin, mientras que la amarilla
representa la derivada de la misma.
Los tres puntos, son las races. La
primera raz tiene valor de
0.6769419. La segunda es de
2.831301. Y la tercera de 5.838488.

44

.
Comprobacin de que el programa
funciona. El cdigo se muestra
enseguida.

Cdigo de programa, Mtodo de Newton Raphson


remove(list=ls())
graphics.off()
x<- seq(0,10,0.01)
f <- x*log(x) + 10*sin(x)-6
f1 <- log(x) + 10*cos(x) +1
plot(x,f,'l', main = expression(f(x) == x*log(x) + 10*sin(x)-6),col='gold')
arrows(-200,0,200,0,length=0.1)
arrows(0,-70,0,70,length=0.1)
lines(x,f1,'l', col='red')
x1<- locator(1)$x
e1 <- 1
for( i in 1:100){
x <- x1[i]
f <- x*log(x) + 10*sin(x)-6
f1 <- log(x) + 10*cos(x) +1
x1[i+1] <- x1[i]- (f/f1)
xt <- x1[i+1]
e1[i] <- x*log(x) + 10*sin(x)-6
if ( i>2){ if (e1[i] == e1[i-1] ){break} }
}
x <- xt
fx1 <- x*log(x) + 10*sin(x)-6
points(xt,fx1,pch=19,col='Brown')
print('Raz primera')
print(xt)
R <- x*log(x) + 10*sin(x)-6
print('Error primera raz:')
print(R)
x2<- locator(1)$x
e2 <- 1

45

for( i in 1:100){
x <- x2[i]
f <- x*log(x) + 10*sin(x)-6
f1 <- log(x) + 10*cos(x) +1

x2[i+1] <- x2[i]- (f/f1)


xt <- x2[i+1]
e2[i] <- x*log(x) + 10*sin(x)-6
if ( i>2){ if (e2[i] == e2[i-1] ){break} }
}
x <- xt
fx1 <- x*log(x) + 10*sin(x)-6
points(xt,fx1,pch=19,col='Brown')
print('Raz Segunda')
print(xt)
R <- 3*x*cos(x/4) + 1
print('Error Segunda raz:')
print(R)
x3<- locator(1)$x
e3 <- 1
for( i in 1:100){
x <- x3[i]
f <- x*log(x) + 10*sin(x)-6
f1 <- log(x) + 10*cos(x) +1
x3[i+1] <- x3[i]- (f/f1)
xt <- x3[i+1]
e3[i] <-3*x*cos(x/4) + 1
if ( i>2){ if (e3[i] == e3[i-1] ){break} }
}
x <- xt
fx1 <- x*log(x) + 10*sin(x)-6
points(xt,fx1,pch=19,col='Brown')
print('Raz Tercera')
print(xt)

R <- x*log(x) + 10*sin(x)-6


print('Error primera raz:')
print(R)

46

Mtodo por Secante


Para la misma ecuacin () = log() + 10() 6 aplicar el mtodo por secante para
la determinacin de las races de la misma cuando su grfica intersecta el eje x.
De la misma manera que en los mtodos anteriores, se insertan los mismos valores y de igual
forma el programa mediante ciclos nos dar un valor aproximado de las races de la funcin
cuando esta intersecte el eje x.
Resultados del Mtodo por Secante.
Tabla, primera raz, todas las interacciones.
X1 raz
E1 Error
1.0000000
1.564091e-01
0.6956525
-1.991925e-02
0.6745735
1.077685e-04
0.6769548
7.251791e-08
0.6769420
-2.646772e-13
0.6769419
8.881784e-16
0.6769419
0.000000e+00
0.6769419
0.000000e+00
Tabla, segunda raz, todas las interacciones
X1 Raz
E1 Error
10.000000
1.388985e+01
6.971501
7.637763e+01
25.227411
-6.236873e-01
2.913559
-2.032004e+00
3.094295
-1.659627e-02
2.833519
-5.233511e-04
2.831371
-2.087618e-07
2.831301
-2.633449e-12
Tabla, tercera raz, todas las interacciones
X1 Raz
E1 Error
7.000000
-1.652009e+00
5.694055
-9.723432e-02
5.830229
3.034268e-03
5.838745
-4.785770e-06
5.838487
-2.335119e-10
5.838488
1.776357e-15

47

Grfico de la funcin
Los tres puntos, son las races. La
primera raz tiene valor de 0.6769419.
La segunda es de 2.831301. Y la tercera
de 5.838488.

Comprobacin de que el programa


funciona. El cdigo se muestra
enseguida.

Cdigo del programa, Mtodo por secante


remove(list=ls())
graphics.off()
x<-seq(0,10,0.01)
fdex<- x*log(x) + 10*sin(x)-6
plot(x,fdex,type='l',main = expression(f(x) == x*log(x) + 10*sin(x)-6 ))
arrows(-200,0,200,0,length=0.1)
arrows(0,-700,0,700,length=0.1)
x01 <- 0.5
xi1<- 1
e1 <-0
epor1 <- 0
for(i in 1:8){
x <- xi1[i]
fdexi<- x*log(x) + 10*sin(x)-6
x <- x01[i]
fdex0<- x*log(x) + 10*sin(x)-6
xi1[i+1] <- xi1[i] - (fdexi*(x01[i] - xi1[i]))/(fdex0 - fdexi)
x01[i+1] <- xi1[i]
xlist <- xi1[i+1]
e1[i] <- xlist*log(xlist) + 10*sin(xlist)-6
epor1[i]<- abs(((xi1[i+1]-xi1[i])/xi1[i+1])*100)
if (fdexi*fdex0 == 0 ){
break
}
}

48

points(xlist,0,pch=19)
print('Primer raiz')
print(xlist)
x02 <- 5
xi2<- 10
e2 <-0
epor2 <- 0
for(i in 1:8){
x <- xi2[i]
fdexi<- x*log(x) + 10*sin(x)-6
x <- x02[i]
fdex0<- x*log(x) + 10*sin(x)-6
xi2[i+1] <- xi2[i] - (fdexi*(x02[i] - xi2[i]))/(fdex0 - fdexi)
x02[i+1] <- xi2[i]
xlist <- xi2[i+1]
e2[i] <- xlist*log(xlist) + 10*sin(xlist)-6
epor2[i]<- abs(((xi2[i+1]-xi2[i])/xi2[i+1])*100)
if (fdexi*fdex0 == 0 ){
break
}
}
points(xlist,0,pch=19)
print('Segunda raiz')
print(xlist)
x03 <- 5
xi3<- 7
e3<-0
epor3 <- 0
for(i in 1:6){
x <- xi3[i]
fdexi<- x*log(x) + 10*sin(x)-6
x <- x03[i]
fdex0<- x*log(x) + 10*sin(x)-6
xi3[i+1] <- xi3[i] - (fdexi*(x03[i] - xi3[i]))/(fdex0 - fdexi)
x03[i+1] <- xi3[i]
xlist <- xi3[i+1]
e3[i] <- xlist*log(xlist) + 10*sin(xlist)-6
epor3[i]<- abs(((xi3[i+1]-xi3[i])/xi3[i+1])*100)
if (fdexi-fdex0 == 0 ){
break
}
}
points(xlist,0,pch=19)
print('Tercer raiz')
print(xlist)

49

Mtodo de Races Mltiples


Con la funcin () = log() + 10() 6 y sus dos primeras derivadas encontrar el
valor de la raz en la interseccin con el eje x, mediante el Mtodo de Races Mltiples.
1ra derivada log() + 10 cos() + 1
1

2da derivada 10 +

Resultados del Mtodo de Races Mltiples


Tabla, primera raz todas las interacciones
X1 Raz
E1 Error
0.6962014
9.448769e-04
0.6770544
3.026325e-08
0.6769419
8.881784e-16
0.6769419
0.000000e+00
0.6769419
0.000000e+00
0.6769419
0.000000e+00
Tabla, segunda raz todas las interacciones
X2 Raz
E2 Error
2.756909
1.027303e-02
2.829928
2.564162e-06
2.831301
1.580958e-13
2.831301
-1.776357e-15
Tabla, tercera raz, todas las interacciones
X3 Raz
E3 Raz
5.838487
-1.256771e-05
5.838488
-2.544631e-12
5.838488
1.776357e-15
5.838488
1.776357e-15
5.836126
1.776357e-15
La lnea negra representa la
funcin, la lnea roja es la primera
derivada de la funcin. La lnea
azul es la segunda derivada.
Los puntos representa los valores
aproximados de las races.

50

Comprobacin de que el programa


funciona. El cdigo se presenta enseguida.

Cdigo de programa, Mtodo de Races Mltiples


remove(list=ls())
graphics.off()

x<-seq(0,10,0.01)

fdexi<- x*log(x) + 10*sin(x)-6


f1dexi<- log(x) + 10*cos(x) +1
f2dexi<- -10*sin(x) + 1/x
plot(x,fdexi,type='l',main = expression(f(x) == x*log(x) + 10*sin(x)-6))
lines(x,f1dexi, col='red')
lines(x,f2dexi, col='blue')
arrows(-200,0,200,0,length=0.1)
arrows(0,-700,0,700,length=0.1)

x1<- locator(1)$x
e1 <- 0
for (i in 1:500){
x <- x1[i]
fdexi<- x*log(x) + 10*sin(x)-6
f1dexi<- log(x) + 10*cos(x) +1
f2dexi<- -10*sin(x) + 1/x
x1[i+1]<- x1[i] - (fdexi * f1dexi)/((f1dexi)^2 - fdexi*f2dexi)
xp <- x1[i+1]
e1[i]<- xp*log(xp) + 10*sin(xp)-6

51

if ( i>2){ if (e1[i] == e1[i-1] ){break} }


}
points(xp,0,pch=19)
print('Segunda Raz')
print(xp)
print(' Valor inicial de x')
print(x1[1])

x2<- locator(1)$x
e2<- 0
for (i in 1:500){
x <- x2[i]
fdexi<- x*log(x) + 10*sin(x)-6
f1dexi<- log(x) + 10*cos(x) +1
f2dexi<- -10*sin(x) + 1/x
x2[i+1]<- x2[i] - (fdexi * f1dexi)/((f1dexi)^2 - fdexi*f2dexi)
xp <- x2[i+1]
e2[i]<- xp*log(xp) + 10*sin(xp)-6
if ( i>2){ if (e2[i] == e2[i-1] ){break} }
}
points(xp,0,pch=19)
print('Primer Raz')
print(xp)
print(' Valor inicial de x')
print(x2[1])
x3<- locator(1)$x
e3<- 0
for (i in 1:500){
x <- x3[i]
fdexi<- x*log(x) + 10*sin(x)-6
f1dexi<- log(x) + 10*cos(x) +1
f2dexi<- -10*sin(x) + 1/x
x3[i+1]<- x3[i] - (fdexi * f1dexi)/((f1dexi)^2 - fdexi*f2dexi)
xp <- x3[i+1]
e3[i]<- xp*log(xp) + 10*sin(xp)-6
if ( i>2){ if (e3[i] == e3[i-1] ){break} }
}
points(xp,0,pch=19)
print('Primer Raz')
print(xp)
print(' Valor inicial de x')
print(x3[1])

52

Conclusiones de los mtodos para ubicar 3 races


Comparaciones de los mtodos para la primera raz

1
2
3
4
5
46
47
48
49
50

1
2
3
4
5
46
47
48
49
50

Tabla, primera raz, primeras y ltimas 5 interacciones. Biseccin


Xi
Xu
Xr Raz
Error
0.1
2
1.05
0
0.1
1.05
0.575
-0.8260869
0.575
1.05
0.8125
0.2923076
0.575
0.8125
0.69375
-0.1711711
0.575
0.69375
0.634375
-0.0935960
0.67694194545783 0.676941945457884 0.676941945457857 3.985337e-14
0.67694194545783 0.676941945457857 0.676941945457843 -1.984468e-14
0.67694194545783 0.676941945457843 0.676941945457837 -1.000434e-14
0.67694194545783 0.676941945457837 0.676941945457833 -5.084175e-15
0.67694194545783 0.676941945457833 0.676941945457831 -2.460084e-15
Tabla, primera raz, primeras y ltimas 5 interacciones. Falsa posicin
Xi
Xu
Xr
Error
1
8
0.0668769423162434
0
1
0.0668769423162434 0.715765559935331
0.906565
0.715765559935331 0.0668769423162434 0.679891892780739
-0.052763
0.679891892780739 0.0668769423162434 0.677149442846599
-0.004049
0.677149442846599 0.0668769423162434 0.676956450631913
-0.000285
0.676941945457831 0.0668769423162434 0.676941945457831
0
0.676941945457831 0.0668769423162434 0.676941945457831
0
0.676941945457831 0.0668769423162434 0.676941945457831
0
0.676941945457831 0.0668769423162434 0.676941945457831
0
0.676941945457831 0.0668769423162434 0.676941945457831
0
Tabla, primera raz, todas las interacciones. Newton-Raphson
X1 Raz
E1 Error
0.6962014
1.609715e-01
0.6768323
-9.216758e-04
0.6769419
-2.877464e-08
0.6769419
0.000000e+00
0.6769419
0.000000e+00
0.6769419
0.000000e+00
Tabla, primera raz, todas las interacciones. Secante
X1 raz
E1 Error
1.0000000
1.564091e-01
0.6956525
-1.991925e-02
0.6745735
1.077685e-04
0.6769548
7.251791e-08
0.6769420
-2.646772e-13
0.6769419
8.881784e-16
0.6769419
0.000000e+00
0.6769419
0.000000e+00

53

Tabla, primera raz todas las interacciones. Races Mltiples


X1 Raz
E1 Error
0.6962014
9.448769e-04
0.6770544
3.026325e-08
0.6769419
8.881784e-16
0.6769419
0.000000e+00
0.6769419
0.000000e+00
0.6769419
0.000000e+00
El mtodo de Newton al igual que el de races mltiples encontr el valor ms prximo con
solo 3 interacciones. Dando un valor de 0.6769419.
El de la secante lo hizo con 6 interacciones, encontrando el mismo valor de 0.6769419
El mtodo de biseccin encontr un valor aproximado a 0.6769419 de 0.676934814453125
con 14 interacciones
El mtodo de falsa posicin encuentra este valor 0.676941945457831 a las 14 interacciones
siendo ms eficaz que el de biseccin. Pero en todo caso, el ms eficaz es el mtodo de races
mltiples, ya que calculo el valor con el menor error.

1
2
3
4
5
46
47
48
49
50

1
2
3
4
5
46
47

Tabla, segunda raz, primeras y ltimas 5 interacciones. Biseccin.


Xi
Xu
Xr Raz
Error
1.1
3
2.05
0
2.05
3
2.525
0.188118
2.525
3
2.7625
0.085972
2.7625
3
2.88125
0.041214
2.7625
2.88125
2.821875
-0.021040
2.83130120619357
2.83130120619363
2.8313012061936 9.410991e-15
2.83130120619357
2.8313012061936
2.83130120619358 -4.705495e-15
2.83130120619357
2.83130120619359
2.83130120619358 -2.352747e-15
2.83130120619357
2.83130120619358
2.83130120619358 -1.097949e-15
2.83130120619358
2.83130120619358
2.83130120619358 6.273994e-16
Tabla, segunda raz, primeras y ltimas 5 interacciones. Falsa posicin.
Xi
Xu
Xr
Error
2
4
2.71656167323074
0
2.71656167323074
4
2.83798428506373
0.038257
2.71656167323074
2.83798428506373
2.83114215455158
0.001251
2.83114215455158
2.83798428506373
2.8313010160568
3.341483e-5
2.8313010160568
2.83798428506373
2.83130120596633
8.861014e-7
2.83130120619358
2.83130120619358
2.83130120619358
0
2.83130120619358
2.83130120619358
2.83130120619358
0

54

48
49
50

2.83130120619358
2.83130120619358
2.83130120619358

2.83130120619358
2.83130120619358
2.83130120619358

2.83130120619358
2.83130120619358
2.83130120619358

0
0
0

Tabla, segunda raz, todas las interacciones. Newton Raphson


X2 Raz
E2 Error
2.827967
2.492776e-02
2.831303
-1.513985e-05
2.831301
-5.528022e-12
2.831301
1.776357e-15
Tabla, segunda raz, todas las interacciones. Secante
X1 Raz
E1 Error
10.000000
1.388985e+01
6.971501
7.637763e+01
25.227411
-6.236873e-01
2.913559
-2.032004e+00
3.094295
-1.659627e-02
2.833519
-5.233511e-04
2.831371
-2.087618e-07
2.831301
-2.633449e-12
Tabla, segunda raz todas las interacciones. Races Mltiples
X2 Raz
E2 Error
2.756909
1.027303e-02
2.829928
2.564162e-06
2.831301
1.580958e-13
2.831301
-1.776357e-15
Para la segunda raz tenemos que el mtodo de races mltiples fue el que dio el resultado
ms aproximado, ya que dio el resultado en solo tres interacciones y con un error muy bajo.
El de Newton Raphson lo hizo a la tercer interaccin, pero el error es ms grande, hizo falta
que lo interaccionara 5 veces para llegar para dar la respuesta igual que el de raz mltiple.
Los valores encontrados fueron 2.831301 para la raz.
El mtodo por secante determin la raz a la octava interaccin, pero con un error ms grande.
El mtodo por Biseccin encontr el valor ms aproximado a las 17 interacciones y su
hallazgo fue de 2.83130111694336.
En el mtodo por Falsa Posicin dio un valor aproximado de 2.8313010160568, que es el
valor ms prximo. Con solo 4 interacciones. Siendo ms eficaz que el de Biseccin.

55

Nuevamente el de raz mltiple y el Newton Raphson son los ms eficientes, pero el de Races
Mltiples es mejor, ya que tiene menor error.

1
2
3
4
5
46
47
48
49
50

1
2
3
4
5
46
47
48
49
50

Tabla, tercera raz, primeras y ltimas 5 interacciones. Biseccin


Xi
Xu
Xr Raz
Error
4.1
7
6.05
0
5.05
6.05
5.575
-0.085201
5.525
6.05
5.8125
0.040860
57625
6.05
5.93125
0.020021
5.7625
5.93125
5.871875
-0.010111
5.83848788906276
5.83848788906281
5.83848788906278 4.715866e-15
5.83848788906276
5.83848788906278
5.83848788906277 -4.705495e-15
5.83848788906276
5.83848788906277
5.83848788906276 -1.216997e-15
5.83848788906276
5.83848788906276
5.83848788906276 -6.084989e-16
5.83848788906276
5.83848788906276
5.83848788906276 3.042494e-16
Tabla, tercera raz, primeras y ltimas 5 interacciones. Falsa Posicin
Xi
Xu
Xr
Error
4
6
5.60790601249951
0
5.60790601249951
6
5.83098198859967
0.038257
5.83098198859967
6
5.83828748271338
0.001251
5.83828748271338
6
5.83848257466817
3.341483e-5
5.83848257466817
6
5.83848774816089
8.861014e-7
5.83848788906276
5.83848788906276
5.83848788906276
0
5.83848788906276
5.83848788906276
5.83848788906276
0
5.83848788906276
5.83848788906276
5.83848788906276
0
5.83848788906276
5.83848788906276
5.83848788906276
0
5.83848788906276
5.83848788906276
5.83848788906276
0
Tabla, tercera raz, todas las interacciones. Newton Raphson
X3 Raz
E2 Error
5.836126
2.952750
5.838489
2.943257
5.838488
2.943262
5.838488
2.943262
Tabla, tercera raz, todas las interacciones. Secante
X1 Raz
E1 Error
7.000000
-1.652009e+00
5.694055
-9.723432e-02
5.830229
3.034268e-03
5.838745
-4.785770e-06
5.838487
-2.335119e-10
5.838488
1.776357e-15
Tabla, tercera raz, todas las interacciones. Races Mltiples
X3 Raz
E3 Raz

56

5.838487
-1.256771e-05
5.838488
-2.544631e-12
5.838488
1.776357e-15
5.838488
1.776357e-15
5.836126
1.776357e-15
Esta vez el mtodo de races mltiples fue el ms eficiente por su solo, ya que con solo dos
interacciones pudo encontrar el valor aproximado con un error muy pequeo.
Le sigue el mtodo de Newton Raphson, quien lleg al mismo valor de 5.838488 con tres
interacciones, mientras que el de Races Mltiples lo logr con tan solo dos.
El mtodo por secante encontr un valor semejante a la de races mltiples, pero con diez
interacciones. Pero el resultado de la dcima interaccin del mtodo por secante es
equivalente a la interaccin nmero 3 del de races mltiples.
Concluyendo, estas etapas, el mtodo de Races mltiples es l ms eficaz para este tipo de
ecuaciones y es el ms sencillo de los 5, solo cuando las derivadas de la funcin no sean
complejas.

57

Etapa 4 Eliminacin Gaussiana y Seidel


Mtodo de Gauss-Jordan.
Esto es llamado un sistema lineal de ecuaciones. El objetivo es reducir el sistema a otro
equivalente, que tenga las mismas soluciones. Las operaciones (llamadas elementales) son
estas:
Multiplicar una ecuacin por un escalar no nulo.
Intercambiar de posicin dos ecuaciones
Sumar a una ecuacin un mltiplo de otra.
Estas operaciones pueden representarse con matrices elementales que se usan tambin en
otros procedimientos como la factorizacin LU o hacer una diagonal por congruencia de una
matriz simtrica.
A continuacin se presentara un programa que resuelve unos sistemas de ecuaciones por
medio de matrices.
Para insertar una matriz en r se tiene que poner lo siguiente
x <- matrix(c(6,4,4,3,7,5,2,4,9,10,-24,20),3,4)
Ya despus insertamos en el programa los pasos para resolver el mtodo.
Estos fueron los resultados que solt el programa

58

Cdigo de programa, Mtodo de Gauss.Jordan


remove(list=ls())
graphics.off()#
#
#
x <- matrix(c(6,4,4,3,7,5,2,4,9,10,-24,20),3,4)
print (x)
if(x[1,1] == 0 ){
if(x[3,1] != 0){
xin[1,]<- x[3,]
x[3,]<- x[1,]
x[1,]<- xin[1,]}
if(x[3,1] == 0){
xin[1,]<- x[2,]
x[2,]<- x[1,]
x[1,]<- xin[1,]}
print(x)
}
print('paso 1')
x[1,] <- x[1,]*(1/x[1,1])
print(x)
print('paso 2')
x[2,] <- (-x[2,1])*x[1,] + x[2,]
x[3,] <- (-x[3,1])*x[1,] + x[3,]
print(x)
if(x[2,2] == 0){xin[1,] <- x[3,]
x[3,] <- x[2,]
x[2,] <- xin[1,]}
print('paso 3')
x[2,] <- x[2,]*(1/x[2,2])
print (x)
print('paso 4')
x[1,] <- (-x[1,2])*x[2,] + x[1,]
x[3,] <- (-x[3,2])*x[2,] + x[3,]
print (x)
if(x[3,3] != 0){
print('paso 5')
x[3,] <- x[3,]*(1/x[3,3])
print (x)
print('paso 6')
x[1,] <- (-x[1,3])*x[3,] + x[1,]
x[2,] <- (-x[2,3])*x[3,] + x[2,]
tabla <- matrix(c(x[1,4],x[2,4],x[3,4]),1,3)
print(x)
print(tabla)
}
if(x[3,3] == 0){print(x)
print('No tiene solucion')}

59

Mtodo de Gauss-Seidel
Mtodo iterativo utilizado para resolver sistemas de ecuaciones lineales.
Este mtodo puede aplicarse a cualquier sistema de ecuaciones lineales que produzca una
matriz (cuadrada, naturalmente pues para que exista solucin nica, el sistema debe tener
tantas ecuaciones como incgnitas) de coeficientes con los elementos de su diagonal nonulos, la convergencia del mtodo solo se garantiza si la matriz es diagonalmente dominante
o si es simtrica y, a la vez, definida positiva.

60

Cdigo de programa, Mtodo de Gauss Seidel.


remove(list=ls())
graphics.off()
#####ECUACIONES####
#6*x1 + 3*x2 + 2*x3 - 10
#4*x1 + 7*x2 + 4*x3 + 24
#4*x1 + 5*x2 + 9*x3 - 20
####INICIALIZACION####
x1<-0
x2<-0
x3<-0
error <- 0
for (i in 1:500){
#######ECUACIONES DESPEJADAS########
x1[i] <- -(3*x2[i] + 2*x3[i] - 10)/6
x2[i+1]<- -(4*x1[i] + 4*x3[i] + 24)/7
x3[i+1]<- -(4*x1[i] + 5*x2[i] - 20)/9
if ( i>2){
if (x1[i] - x1[i-1] == 0 ){break}
if (x2[i+1] - x2[i] == 0 ){break}
if (x3[i+1] - x3[i] == 0){break}
}
error[i] <- 6*x1[i] + 3*x2[i+1] + 2*x3[i+1] - 10
}
print(x1[NROW(x1)])
print(x2[NROW(x2)])
print(x3[NROW(x3)])
Lo que est entre ######es solo para aclarar que es, no afecta en nada al programa.

61

Conclusin General
Durante el curso de Mtodos Numricos, se estuvieron viendo en clase todos los vistos en
este documento. Se lleg a la conclusin de que el mejor Mtodo es el de Races Mltiples,
debido a su facilidad a la hora de programarlo, pero la desventaja es que en ecuaciones con
una derivada compleja puede que no sea tan eficiente.
l mtodo de Races Mltiples fue el que menos recursos necesito para poder entregarnos un
resultado muy aproximado, a diferencia de otros que ocuparon gran cantidad de recursos y
entregaron resultados sin precisin. Ya que en el mtodo de races mltiples se miraba que
arrojaba muchas veces el mismo resultado, indicando que esa era la respuesta ms
aproximada. En cambio el de biseccin, que fue el que resulto menos eficiente y menos
preciso daba decenas de resultados, y la mayora eran aproximaciones muy remotas al valor
promedio que se estaba buscando.
Cosa que cabe decir es que este curso fue tambin como un recordatorio sobre tcnicas de
programacin, puesto que todo fue hecho mediante software. Estas ramas guardan una gran
relacin entre ella y ambas son tiles para los mbitos acadmicos e industriales, pues
reducen el tiempo en que uno puede resolver algn problema determinado.

62

Referencias.
http://illuminatus.bizhat.com/metodos/nrpp.htm
http://aniei.org.mx/paginas/uam/CursoMN/curso_mn_12.html
http://es.slideshare.net/insutecvirtual/solucin-de-sistemas-lineales-mtodo-de-gauss
http://mmc.geofisica.unam.mx/edp/Herramientas/Fortran/MetodosNumericosIntroduccion
AplicacionesYProgramacionEnFortran.pdf
NAKAMURA, Schoichiro, Mtodos Numricos Aplicados con Software, Edit. Prentice
Hall, Mxico, 1992
STEVEN C.CHAPRA, RAYMOND P. Canale, Mtodos Numricos para Ingenieros con
Aplicaciones en Computadoras Personales, Edit. McGraw Hill, Mxico, S.A de C.V., 1987

63

También podría gustarte