No Line Ales
-
Upload
jose-fernando-diaz-narvaez -
Category
Documents
-
view
344 -
download
0
Transcript of No Line Ales
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 1/59
Solución de ecuaciones no
lineales
Curso de Programación numérica
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 2/59
TemarioMétodos cerrados:
Métodos gráficos
Método de bisección
Método de la posición falsaMétodos abiertos
Iteración simple de punto fijo
Método de Newton-Raphson
Método de la secante
Raíces de polinomios
Método de Müller
Método de Bairstow
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 3/59
Métodos gráficos
Los métodos gráficos consisten en graficar la función f ( x) y
observar donde la función cruza el eje x.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 4/59
Ejemplo 1 0401
38.667 146843.0 xe
x x f
x f(x)
4 34.114889388 17.65345264
12 6.066949963
16 -2.268754208
20 -8.400624408
Encontrar la raíz de:
-15
-10
-5
05
10
15
20
25
30
35
40
0 5 10 15 20 25
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 5/59
Ejemplo 2
x f(x)
0.00 1.00
0.25 1.33
0.50 -0.89
0.75 0.31
1.00 -1.53
1.25 -0.89
1.50 0.44
1.75 -0.46
2.00 1.87
2.25 0.41
2.50 0.21
2.75 0.31
3.00 -1.903.25 -0.06
3.50 -0.90
3.75 0.05
4.00 1.59
4.25 -0.01
4.50 1.45
4.75 -0.48
5.00 -1.02
-2.50
-2.00
-1.50
-1.00
-0.50
0.00
0.50
1.00
1.50
2.00
2.50
0.00 1.00 2.00 3.00 4.00 5.00 6.00
Grafica de: f ( x) = sen 10 x + cos 3 x
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 6/59
Ejemplo 2 (cont.)
-0.02
0.00
0.02
0.04
0.06
0.08
0.10
0.12
4.18 4.20 4.22 4.24 4.26 4.28 4.30 4.32
Grafica de: f ( x) = sen 10 x + cos 3 x
x f(x)
4.20 0.08
4.21 0.054.22 0.02
4.23 0.00
4.24 -0.01
4.25 -0.01
4.26 -0.01
4.27 0.014.28 0.04
4.29 0.07
4.30 0.11
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 7/59
Tarea
Utilice Excel para los siguientes problemas.
Determine las raíces reales de: f ( x) = – 0.5 x2 + 2.5 x + 4.5
Gráficamente. Confirme utilizando la fórmula cuadrática.
Determine las raíces reales de: f ( x) = 5 x3 – 5 x2 + 6 x – 2
Gráficamente.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 8/59
Método de la bisecciónSe trata de encontrar los ceros de
f ( x) = 0
Donde f es una función continua en [a,b] con f (a) y f (b) con
signos diferentes.
y = f ( x)
x
y
a
b
f (b)
f (a)
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 9/59
Método de la bisección
De acuerdo con el teorema del valor medio, existe p [a,b] tal
que f ( p) = 0.
El método consiste en dividir a la mitad el intervalo y localizar
la mitad que contiene a p.
El procesos se repite hasta la lograr la precisión deseada.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 10/59
Método de la bisección
y = f ( x)
x
y
a b
f (b)
f (a)
p1=(a+b)/ 2
f ( p1)
p
Mitad del intervalo que
contiene a p
Primera iteración del algoritmo
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 11/59
Método de la bisección
y = f ( x)
x
y
a =p1
b
f (b)
f (a)
p2=(a+b)/ 2
f ( p2) p
Mitad del intervalo que
contiene a p
Segunda iteración del algoritmo
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 12/59
Método de la bisección
Algoritmo bisección
Entradas: extremos a,b; número de iteraciones ni; tolerancia tol
1. p=a; i=1; eps=1;
2. mientras f(p)0 y i ni eps>tol2.1. pa = p;
2.2. p = (a+b)/2
2.3. si f(p)*f(a)>0 entonces a=p;2.4. sino
2.5. si f(p)*f(b)>0 entonces b=p;
2.6. i = i + 1; eps = |p-pa|/p;
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 13/59
Bisección en C
double biseccion(double a, double b, double error, int ni){
double p,pa,eps;int i; p = a;i = 1;eps = 1; while(f(p) != 0 && i<ni && eps > error){
pa = p; p = (a+b)/2;if(f(p)*f(a)>0)
a = p;else
if(f(p)*f(b)>0) b = p;
i++;eps = fabs(p-pa)/p;
}return p;
}
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 14/59
Ejemplo
Función de ejemplo
Función en C:
double f(x){
return sqrt(x*x + 1) - tan(x);
}
)tan(12
x x
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 15/59
Tarea
Haga funciones en C para encontrar la solución de las
siguientes ecuaciones utilizando la función biseccion():
1. e x – x2 + 3 x – 2 = 0 para 0 <= x <= 1
2.
040138.667 146843.0 x
e
x
x f
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 16/59
Error en el método de bisecciónPara el método de bisección se sabe que la raíz esta dentro del intervalo, laraíz debe situarse dentro de Dx / 2, donde Dx = x b – x a .
La solución en este caso es igual al punto medio del intervalo
xr = ( xb + xa) / 2
Deberá expresarse por
xr = ( xb + xa) / 2 D x / 2
Error aproximado
2
abanterior
r
nuevo
r
x x x x 2
abnuevo
r x x x
%100ab
ab
a x x
x x
%100nuevo
r
anterior
r
nuevo
r
a x
x x
sustituyedo
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 17/59
Número de iteraciones
El error absoluto en la primera iteración es:
0000 x x x E aba D
El error absoluto en la iteración n-ésima es:
n
n
a
x E
2
0D
Si el error deseado es E ad ,El número de iteraciones
será:
D
D
ad
ad
E
x E xn
0
2
0
log2log
/ log
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 18/59
Volumen del abrevadero
h
r
L
r
ha
b
r
hsen b
a 2sectorarea r
r
hsen
1
22
b
a
r hsenr r /
2sectorarea 122
a
2212 / 2
triangularareasectorareaA hr hr hsenr
22
2
alturabase
2triangulararea hr h
2212
/ 2
hr hr hsenr L LAV
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 19/59
Tarea17. Un abrevadero de longitud L tiene una sección transversal
en forma de semicírculo con radio r (véase la figura) Cuando se
llena de agua hasta una distancia h de la parte superior, el
volumen V de agua es
V = L [ 0.5 r 2 – r 2 arcsen(h / r ) – h(r 2 – h2)1/2 ]
Escriba un programa en C amigable para el usuario que lea los
datos de este problema y encuentre la profundidad h del
abrevadero. Utilice el método de bisección para encontrar lasolución.
h
r
L
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 20/59
Resumen
Requiere que se conozca el intervalo en donde está la raíz.
Los valores de la función en los extremos deben tener signos
diferentes.
Converge lentamente, a cada paso el intervalo se divide en 2.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 21/59
Método de falsa posición
xl
xu
f ( xl)
f ( xu)
xr
Este método considera cual límite del
intervalo está más próximo a la raíz.
De la figura
ur
u
lr
l
x x
x f
x x
x f
ul
uluur
x f x f
x x x f x x
Despejando
f ( xr )
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 22/59
Ejemplo en Excel
xl xu xr f(xl) f(xu) f(xr)
12.0000000 16.0000000 14.9113077 6.0669500 -2.2687542 -0.2542775
12.0000000 14.9113077 14.7941976 6.0669500 -0.2542775 -0.027257212.0000000 14.7941976 14.7817001 6.0669500 -0.0272572 -0.0029076
12.0000000 14.7817001 14.7803676 6.0669500 -0.0029076 -0.0003100
12.0000000 14.7803676 14.7802255 6.0669500 -0.0003100 -0.0000330
040138.667 146843.0 x
e x
x f Encontrar la raíz de:
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 23/59
TareaEncuentre la raíz real de f ( x) = (0.8 – 0.3 x)/ x, por el método de
falsa posición. Utilice valores iniciales de 1 y 3, calcule el error
porcentual verdadero en cada iteración. Encuentre la raíz
analiticamente.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 24/59
Falsa posición en C
double falsaPosicion(double xl,double xu, double ee, int imax){double error,fl,fu,fr,xr,xrOld;int iter=0,il=0,iu=0;fl = f(xl);
fu = f(xu);do{
xrOld = xr;xr = xu - fu*(xl-xu)/(fl-fu);fr = f(xr);iter++;if(xr!= 0)error=fabs((xr-xrOld)/xr*100);
if(fl*fr<0){xu = xr;
fu = f(xu);iu = 0;il++;if(il>=2)
fl/=2;}
else{xl = xr;fl = f(xl);il = 0;iu++;if(iu>=2)
fu/=2;
else;error = 0;
}}while(error>ee && iter<=imax);return xr;
}
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 25/59
Iteración de punto fijo
Un punto fijo de una función g( x) es un número p tal que g( p) =
p.
Dado un problema f ( x) = 0, se puede definir una función g( x)con un punto fijo en p de diferentes maneras. Por ejemplo g( x)
= x – f ( x).
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 26/59
TeoremaSi g C [a, b] y g( x) C [a, b] para toda x C [a, b], entonces g tiene un
punto fijo en [a, b].
Si además g’( x) existe en (a, b) y una constante positiva k <1 existe con
|g’( x)| <= k , pata toda x (a, b),
Entonces el punto fijo en [a, b] es único.
y = g( x)
y
a b
a
b
p
p=g( p)
x
y = x
y = g( x)
y
a b
a
b
p
p=g( p)
x
y = x
|g’( x)>1|g’( x)<=1
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 27/59
Algoritmo de punto fijo
Obtener una solución a p = g ( p) dada un
aproxiamción inicial p0.
ENTRADA aproximación inicial p0; tolerancia TOL;
número máximo de iteraciones N 0.
1. Tome i = 1.
2. Mientras i <= N 0 hacer3. p = g ( p0)
4. Si | p – p0| < TOL entonces
5. Regresar p
6. i = i +1
7. p0 = p8. Fin mientras
9. Imprime ‘El procedimiento fracasó después de N 0
iteraciones’
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 28/59
Gráfica del algoritmo de punto
fijo
y = g( x)
y
x
y = x
p0
p1= g( p0)
p3 p2 p1
p2= g( p1)
p3= g( p2)
y = g( x)
y
x
y = x
p0
p1= g( p0)
p2 p1
p2= g( p1)
p3= g( p2)
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 29/59
Casos de no convergencia
y = g( x)
y
x
y = x
y = g( x)
y
x
y = x
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 30/59
Ejemplo
Sea la función: x3 + 4 x2 – 10 = 0 tiene una raíz en [1, 2]
Puede despejarse en:
a. x = g1( x) = x – x3 – 4 x2 +10
b. x = g2( x) = ½(10 – x3)½
c. x = g3( x) = (10/(4 + x))½
d. x = g4( x) = x – ( x3 + 4 x2 – 10)/(3 x2 + 8 x)
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 31/59
Iteraciones de punto fijo
(b)1.5
1.286953767
1.402540803
1.345458374
1.375170252
1.3600941921.367846967
1.363887003
1.365916733
1.364878217
1.365410061
1.365137820
1.3652772081.365205850
1.365242383
1.365229578
1.365230028
1.365230012
(c)1.5
1.348399724
1.367376371
1.364957015
1.365264748
1.3652255941.365230575
1.365229941
1.365230022
1.365230012
1.365230013
1.365230013
(a)1 1.5
2 -0.875
3 6.732421875
4 -469.72001200
5 1.02754555E8
6 -1.084933870E247 1.277055591E72
8 -2.082712908E216
9 NaN
10
11
12
1314
15
20
25
30
(d)1.5
1.373333333
1.365262014
1.365230013
1.365230013
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 32/59
Funciones graficadas en MathLab
a) b)
c) d)
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 33/59
Teorema de punto fijo
Si g C [a, b] y g( x) C [a, b] para toda x C [a, b], además supongamos
que existe g’( x) en (a, b) y una constante positiva k <1 cuando
|g
’( x
)| <= k, pata toda x
(a
,b
),Entonces, para cualquier punto p0 en [a, b] la sucesión definida por
pn = g( pn – 1), n >=1
Converge en el único punto fijo p en [a, b].
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 34/59
Corolario
Si g satisface las hipótesis de teorema del punto fijo, las cotas
de error que supone utilizar pn para aproximar a p están dadas
por
| pn – p| <= k n max( p0 – a, b – p0)
Y por
| pn
– p| <= k n | p1
– p0
|/ (1 – k ), para toda n>=1
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 35/59
Análisis del ejemplo
Caso (a)
g1( x) = x – x3 – 4 x2 +10
g1’( x) = 1 – 3 x2 – 8 x
g1’(1) = – 11, g1’(2) = – 28
No se cumple |g1’(x)| <1
Caso (b)
g2( x) = ½(10 – x3)½
g2’( x) = – 3/4 x2(10 – x3) – ½
g2’(1) = – 0.25, g1’(2) = – 2.1213
No se cumple |g1’(x)| <1
Caso (c)
g3( x) = (10/(4 + x))½
g3’( x) = ( – 5/3.16)(4 + x) – 1.5
<= ( – 5/3.16)(5) – 1.5 <= 0.15
Para toda x en [1, 2]
Caso (d)
g4( x) = x – ( x3 + 4 x2 – 10)/(3 x2 + 8 x)
Se cumple |g4’(x)| es aún menor queen el caso (c) para toda x en [1, 2]
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 36/59
Programa en Matlabfunction y = PuntoFijo(f_name, p0, tol, ni)
%f_name - nombre de la funcion%p0 - valor inicial de la raiz%tol – tolerancia%ni – número de iteracionesi = 1;
while i<=ni
p = feval(f_name,p0);if(abs(p0-p)<tol)y = p;
break;end i = i + 1;
p0 = p;end fprintf('No se encontro solucion.');
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 37/59
Función en Cdouble PuntoFijo(double p0, double tol, int ni){
int i = 1;double p;
while(i<=ni){ p = f(p0);
if(fabs((p0-p)/p)<tol)return p;
i++; p0 = p;}
std::cout << "NO solucion en :" << ni << “ iteraciones.
\n";return p;}
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 38/59
Método de Newton-Raphson
f ( xn) Pendiente = f ’ ( xn)
xn xn+1
La ecuación de la recta
tangente es:
y – f ( xn) = f ’ ( xn)( x – xn)
Cuando y = 0, x = xn+1 o sea
0 – f ( xn) = f ’ ( xn)( xn+1 – xn)
o
x x f x
f xn n n
n
1
( )
'( )
f ( x)
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 39/59
Algoritmo NewtonPara obtener una solución a f(x) = 0 dada una
aproximación p0.
ENTRADA aproximación inicial p0; tolerancia tol;
número máximo de iteraciones N0.
1. i = 1
2. Mientras i<=N0 hacer
2.1. p = p0 – f(p0)/f’(p0)
2.2. Si |p – p0|< tol entonces regrese p
2.3. i = i + 1
2.4. p0 = p
3. fracaso en encontrar la raíz en N0 iteraciones
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 40/59
Ejemplo
f(x) = x – cos(x) f’(x) = 1 + sen(x)
Tomando p0 = 0, se obtiene
pn f(pn) f’(pn) pn+1
0 -1 1 1
1 0.459698 1.8414 0.7503639
0.7503639 0.0189 1.6819 0.73911280.7391128 0.00005 1.6736 0.7390851
0.7390851 3E-10 1.6736 0.7390851
pn+1 = pn – (pn – cos(pn))/(1 + sen(pn))
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 41/59
Ejercicio
Encontrar la solución de
x3 + 4x2 – 10 = 0
En el intervalo [1, 2] con el método de Newton
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 42/59
Código en C
double Newton(double x0, double ee, int ni){int i = 0;double x,fx,dfx;
while(i<ni){fx = f(x0);
dfx = df(x0);x = x0-fx/dfx;if(fabs((x-x0)/x)<ee)return x;
i++;x0 = x;
}std::cout << "No solución en "<< i << " pasos\n";return x;
}
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 43/59
Ejemplo: cuenta de ahorros
El valor acumulado de una cuenta de ahorros puede calcularse con la ecuación de
anualidad vencida
A = P[(1 + i )n - 1 ] / i
En esta ecuación A es el monto de la cuenta, P es la cantidad que se deposita
periódicamente e i es la tasa de interés por periodo para los n periodos de depósito. A
un ingeniero le gustaría tener una cuenta de ahorros con un monto de $ 750,000
dólares al momento de retirarse dentro de 20 años, y puede depositar $ 1,500 dólares
mensuales para lograr dicho objetivo. ¿Cuál es la mínima tasa de interés a que puede
invertirse ese dinero, suponiendo que es un interés compuesto mensual?
Escriba un programa en C para este problema, el programa deberá pedir todos los
datos necesarios y utilizar el método de Newton para calcular el interés a que debe
invertirse el dinero.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 44/59
SoluciónPara estimar el valor inicial de i podemos desarrollar el
binomio (1 + i)n
para aproximarlo a la segunda potencia. Elresultado es Pnn
nP Ai
1
20
Se sugiere validar los datos de entrada. El capital a obtenerdebe ser mayor que el depósito por el número de abonos, es
decir
A > nP
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 45/59
Ejemplos resuelto en ExcelA = $750,000.00 i f(i) f'(i) i n+1
P = $1,500.00 0.009065551 4784.893234 2361961.89 0.00703974
n = 240 0.007039738 1297.701361 1175049.3 0.00593536
0.005935357 255.8695592 730982.881 0.00558532
A(calculado) $750,000.00 0.005585323 20.97312565 612780.041 0.0055511
0.005551096 0.18919948 601739.117 0.00555078
0.005550782 1.58807E-05 601638.103 0.005550780.005550782 -1.99179E-10 601638.094 0.00555078
i = 0.56%
A = $350,000.00 i f(i) f'(i) i n+1
P = $20,000.00 0.166666667 15099.14998 450849.857 0.133176249
n = 10 0.133176249 3212.297411 266179.3865 0.1211080820.121108082 346.4384394 209573.7649 0.11945502
A(calculado $350,000.00 0.11945502 6.113559001 202191.6408 0.119424783
0.119424783 0.002029206 202057.4231 0.119424773
0.119424773 2.47383E-10 202057.3785 0.119424773
0.119424773 6.54836E-11 202057.3785 0.119424773
i = 11.94%
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 46/59
Método alternativo para evaluar la
derivada (método de la secante)Es posible calcular la derivada en xn usando:
h
x f h x f x f nnn '
O utilizando
h
h x f x f x f nn
n'
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 47/59
Algoritmo Newton2Para obtener una solución a f(x) = 0 dada una
aproximación p0.
ENTRADA aproximación inicial p0; tolerancia tol;
número máximo de iteraciones N0.
1. i = 1
2. h = 0.001
3. Mientras i<=N0 hacer
2.1. y = f(p0)
2.2. y_deriv =(f(p0+h)-y)/h
2.3. p = p0 – y/y_deriv2.4. Si |p – p0|< tol entonces regrese p
2.5. i = i + 1
2.6. p0 = p
3. fracaso en encontrar la raíz en N0 iteraciones
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 48/59
Código en C
double Newton(double x0, double ee, int ni){int i = 0;double x,fx,dfx,h;h = 0.0001;
while(i<ni){
fx = f(x0);dfx = (f(x0+h)-fx)/h;x = x0-fx/dfx;if(fabs((x-x0)/x)<ee)return x;
i++;
x0 = x;}std::cout << "No solución en "<< i << " pasos\n";return x;
}
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 49/59
Programa en Matlab
function x = Newt_n(f_name, xO)% Iteración de Newton sin gráficosx = xO; xb = x-999;n=0; del_x = 0.01;
while abs(x-xb)>0.000001n=n+1; xb=x ;if n>300 break; end y=feval(f_name, x) ;y_driv=(feval(f_name, x+del_x) - y)/del_x;x = xb - y/y_driv ;
fprintf(' n=%3.0f, x=%12.5e, y=%12.5e, ', n,x,y)fprintf(' yd = %12.5e \n', y_driv)
end fprintf('\n Respuesta final = %12.6e\n', x) ;
Calcula derivada conincrementos
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 50/59
Raíz cuadrada con NewtonPara extraer la raíz cuadrada de un número se puede resolver la ecuación
f ( x) = x2 – c = 0
La derivada es
f’ ( x) = 2 x La fórmula de recurrencia de Newton es
xn+1 = xn – ( xn2 – c)/(2 xn)
= xn /2 + c /(2 xn)
= ( xn + c / xn)/2
Ejemplo: raíz cuadrada de 5 con x0 = 1.
xn xn+11 3.000000
3.000000 2.333333
2.333333 2.238095
2.238095 2.236069
2.236069 2.236068
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 51/59
DesventajasEn algunos casos la convergencia es muy lenta, considere
f ( x) = xn – 1
Se obtiene la siguiente secuencia empezando en x = 0.5
iteración x
0 0.5
1 51.65
2 46.485
3 41.83654 37,65285
..
-- 1.000000
D j ( )
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 52/59
Desventajas (cont.)
x0 x1
x2 x
f ( x)
x0 x1 x2 x
f ( x)
x0
x1
x
f ( x)
raíz cerca de punto de inflexiónmínimo local
varias raíces
x
f ( x)
la iteración en un mínimo
x0 x1
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 53/59
Ejemplo
Resolver utilizando Excel
sen x - e-x = 0 para 0<= x <= 1 y 3<= x <= 4 y 6<= x <= 7
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 54/59
Resultados
h= 0.1
xn f(xn) f'(xn) xn+1
0.00000000 -1.00000000 1.94995999 0.51283104
0.51283104 -0.10815190 1.41522716 0.58925121
0.58925121 0.00099615 1.33011566 0.58850229 0.58850229 -0.00004224 1.33095756 0.58853402
0.58853402 0.00000178 1.33092188 0.58853269
h= 0.01
xn f(xn) f'(xn) xn+1 0.00000000 -1.00000000 1.99499996 0.50125314
0.50125314 -0.12524617 1.47731614 0.58603267
0.58603267 -0.00347081 1.38411969 0.58854027
0.58854027 0.00001043 1.38133294 0.58853271
0.58853271 -0.00000004 1.38134134 0.58853274
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 55/59
Tarea #14
La carga en un circuito RLC serie esta dada por
t
L
R
LC eqt q L Rt
2
)2 /(
02
1cos
suponga q0 / q = 0.01 , t = 0.05 s, L = 5H y C = 10-6 F.
Encuentre el valor de la Resistencia R usando el método de
Newton. Haga un programa en C para este problema.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 56/59
Convergencia en el punto fijo
El algoritmo de punto fijo es de tipo lineal. Se puede demostrar
que el error verdadero en la iteración i+1 es:
E t ,i+1
= g’(x) E t ,i
donde
E t ,i = xr - xi
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 57/59
Convergencia en Newton Raphson
El algoritmo de Newton es de tipo cuadrático. Se puede
demostrar que el error verdadero en la iteración i+1 es:
E t ,i+1
= (- f ’’( xr )/2 f ’( x
r )) E 2
t ,i
Esto significa que el número de decimales exactos se duplica
con cada iteración.
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 58/59
Raíces múltiples
En el caso de que un polinomio tenga raíces múltiples, la
función tendrá pendiente igual a cero cuando cruce el eje x.
Tales casos no pueden detectarse en el método de bisección
si la multiplicidad es par.
En el método de Newton la derivada en la raíz es cero.
Generalmente el valor de la función tiende a cero más rápido
que la derivada y puede utilizarse el método de Newton
5/12/2018 No Line Ales - slidepdf.com
http://slidepdf.com/reader/full/no-line-ales 59/59
Ejemplo
n xn f(xn) f'(xn) xn+1
0 0.50000000 -0.62500000 2.75000000 0.72727273
1 0.72727273 -0.16904583 1.31404959 0.85591767
2 0.85591767 -0.04451055 0.63860849 0.92561694
3 0.92561694 -0.01147723 0.31413077 0.96215341
4 0.96215341 -0.00291894 0.15568346 0.98090260
5 0.98090260 -0.00073639 0.07748373 0.99040636
6 0.99040636 -0.00018496 0.03865069 0.99519176
7 0.99519176 -0.00004635 0.01930234 0.997593008 0.99759300 -0.00001160 0.00964539 0.99879578
9 0.99879578 -0.00000290 0.00482125 0.99939771
10 0.99939771 -0.00000073 0.00241026 0.99969881
Polinomio: f ( x) = ( x – 3) ( x – 1) ( x – 1)