Está en la página 1de 28

1

Métodos numéricos: Conjunto de técnicas mediante las cuales es posible formular problemas matemáticos de tal
forma que puedan resolverse utilizando operaciones aritméticas.

Razones para usar métodos numéricos en la solución de un problema:

• Es imposible hallar la solución analítica o exacta

• La solución analítica es muy costosa aún más que la solución aproximada.

RAÍCES DE ECUACIONES

Definición (raíces). Sea la función 𝑓 con dominio 𝐷, una


raíz de 𝑓 o bien una raíz de la ecuación 𝑓(𝑥) = 0 es un
valor 𝑥0 que satisface la ecuación.

Remarca. Estamos interesados en las raíces reales.

Aproximación y errores de redondeo

Errores de redondeo: Son los producidos por el redondeo de las cantidades. Esto se debe a que la computadora
representa las cantidades con un número finito de dígitos.
(𝜋 ≈ 3.1416, √2 = 1.4142)
Errores de truncamiento: Son los producidos por la aproximación de operaciones y aproximación de
procedimientos matemáticos exactos.
𝑥3 𝑥5 𝑥7 𝑥9 𝑥 11 𝑏 𝑏−𝑎 𝑎+𝑏
(sen 𝑥 ≈ 𝑥 − + − + − , ∫𝑎 𝑓(𝑥)𝑑𝑥 ≈ (𝑓(𝑎) + 2𝑓 ( ) + 𝑓(𝑏)))
6 120 7! 9! 11! 4 2
Cifras significativas: Estas son las cifras que comienzan desde la primera cifra no nula izquierda hasta la última
cifra de la derecha, los ceros últimos de la derecha pueden ser significativos o no.
(0.045678 tiene 5 cifras significativas)

Notación científica: Una cantidad está expresada en


notación científica si se puede escribir en la forma:
𝑚 ⋅ 10𝐸
𝑚 se denomina mantisa, 1 ≤ 𝑚 < 10
𝐸 se denomina exponente, 𝐸 ∈ ℤ
(54 321.098 7 = 5.432 109 87 ⋅ 104 ;
𝑚𝑒 = 9.1 ⋅ 10−31 kg; 𝐷𝑇𝑆 = 1.495 978 707 ⋅ 108 Km)
Exactitud: Se define como la cercanía al valor real. El valor
real se denomina también valor exacto o valor verdadero.
(Para medir 𝜋, el valor 3.1416 es más exacto que 3.14, ya
que es más cercano)
Precisión: Se define como la proximidad entre un conjunto
de mediciones de una magnitud (menor dispersión significa
mayor precisión).
(Cálculos iguales en computadoras arrojan siempre el mismo
valor sin importar el número de repeticiones. Una regla con
precisión de mm medirá magnitudes siempre con el mismo
valor. Si una balanza mide una masa varias veces como: 5g,
5.01g, 5.02g, 5.02g, 4.99g, 4.98g, es bastante precisa ya que
las mediciones son bastante próximas)
2

Error verdadero o absoluto.

𝐸𝑡 = 𝑣𝑡 − 𝑣𝑎
Donde 𝑣𝑡 es el valor verdadero y 𝑣𝑎 es el valor aproximado

(𝑣𝑡 = 𝜋, 𝑣𝑎 = 3.1416 → 𝐸𝑡 = 𝜋 − 3.1416 = −7.3464102 ⋅ 10−6 )


Error relativo verdadero.
𝐸𝑡 𝑣𝑡 − 𝑣𝑎
𝑒𝑡 = =
𝑣𝑡 𝑣𝑡
Donde 𝑣𝑡 es el valor verdadero y 𝑣𝑎 es el valor aproximado
𝜋 − 3.1416
(𝑣𝑡 = 𝜋, 𝑣𝑎 = 3.1416 → 𝑒𝑡 = = −2.338 ⋅ 10−6 )
𝜋
Error relativo porcentual verdadero
𝐸𝑡 𝑣𝑡 − 𝑣𝑎
𝑒𝑡 = ⋅ 100% = ⋅ 100%
𝑣𝑡 𝑣𝑡
𝜋 − 3.1416
(𝑣𝑡 = 𝜋, 𝑣𝑎 = 3.1416 → 𝑒𝑡 = ⋅ 100% = −2.338 ⋅ 10−4 % = −0.0002338%)
𝜋
Error relativo aproximado
𝐸𝑎 𝑣𝑛 − 𝑣𝑛−1 𝑣actual − 𝑣anterior
𝑒𝑎 = = =
𝑣𝑛 𝑣𝑛 𝑣actual
Donde 𝑣𝑛 es el valor aproximado actual, 𝑣𝑛−1 es el valor aproximado anterior y 𝐸𝑎 = 𝑣𝑛 − 𝑣𝑛−1 es el error absoluto
aproximado
3.1416 − 3.142
(3.14; 3.141; 3.142; 3.1416 → 𝑒𝑎 = = −1.2732 ⋅ 10−4 = −0.00012732)
3.1416
Error relativo porcentual aproximado
𝐸𝑎 𝑣𝑛 − 𝑣𝑛−1 𝑣𝑎𝑐𝑡𝑢𝑎𝑙 − 𝑣𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝑒𝑎 = ⋅ 100% = ⋅ 100% = ⋅ 100%
𝑣𝑛 𝑣𝑛 𝑣𝑎𝑐𝑡𝑢𝑎𝑙
3.1416 − 3.142
(3.14; 3.141; 3.142; 3.1416 → 𝑒𝑎 = ⋅ 100% = −0.012732%)
3.1416
Remarca. El error relativo es más objetivo que el absoluto ya que es independiente de las unidades de la magnitud.

Nota. En el caso de un procedimiento con varias aproximaciones, se suele usar el criterio de parada

|𝑒𝑎 | ≤ 𝑒𝑠

Donde 𝑒𝑠 es la tolerancia. Cuando 𝑒𝑠 = (0.5 ⋅ 102−𝑛 )% el resultado será cierto en al menos 𝑛 cifras significativas.

Ejemplo. Aproximar 𝜋 con al menos 5 cifras significativas, para ello use la aproximación de Gregory-Leibniz dada por
la serie siguiente (use sumas parciales):

(−1)𝑛 4 4 4 4 4
𝜋 = ∑4⋅ = 4− + − + − +⋯
2𝑛 + 1 3 5 7 9 11
𝑛=0

𝑣1 = 4
4
𝑣2 = 4 − = 2.66667
3
3

4 4 4
𝑣3 = 4 − + = 𝑣2 + = 3.46667
3 5 5
4 4 4 4
𝑣4 = 4 − + − = 𝑣3 − = 2.89524
3 5 7 7
Utilice el error aproximado y una tolerancia adecuada.

Solución.

Para 5 cifras significativas tolerancia: 𝑒𝑠 = 0.5 ⋅ 102−5 % = 0.5 ⋅ 10−3 % = 0.0005%

𝑣𝑛 − 𝑣𝑛−1
𝑣𝑛 |𝑒𝑎 | = | ⋅ 100%| > 𝑒𝑠
𝑣𝑛
𝑣1 = 4 |𝑒𝑎 | = 100%, convenio (> 𝑒𝑠 )
2.66667 − 4
𝑣2 = 2.66667 |𝑒𝑎 | = | ⋅ 100%| = 49.9998125% > 𝑒𝑠
2.66667
3.46667 − 2.66667
𝑣3 = 3.46667 |𝑒𝑎 | = | ⋅ 100%| = 23.07690 > 𝑒𝑠
3.46667
2.89524 − 3.46667
𝑣4 = 2.89524 |𝑒𝑎 | = | ⋅ 100%| = 19.7369 > 𝑒𝑠
2.89524

𝑣𝑛 = sol con las 5 cifras sign. |𝑒𝑎 | ≤ 𝑒𝑠

La implementación en Matlab es:

%aproxPi.m
%Calcular pi de forma aproximada, usando el error relativo
%porcentual aproximado ea=(vn-v(n-1))/vn*100%
%con la aproximación pi=sum(4*(-1)^n/(2n+1))
vn = 4; %aprox de pi inicial, corresponde n = 0
ea = 100; %error relativo porcentual aproximado inicial
es = (0.5 * 10 ^ (2-5)); % tolerancia para tener al menos 5 cifras significativas
n = 1; %índice de la sumatoria
while abs(ea) > es
vnAnt = vn; %valor anterior
vn = vnAnt + 4*(-1)^n / (2*n+1);
ea = (vn - vnAnt) / vn * 100;
n = n + 1;
%pause(3)
end
fprintf('El valor aprox. de pi con 5 cifras significativas es %.4f\n',vn)
fprintf('El error es %.6f\n',ea)
fprintf('El número de aproximaciones es %i\n',n)

>> aproxPi
El valor aprox. de pi con 5 cifras significativas es 3.1416
El error es 0.000500
El número de aproximaciones es 127325
4

Series de Taylor

Teorema definición (Polinomios de Taylor). Si 𝑓 es una función real derivable (𝑛) veces continuamente, y existe la
(𝑛 + 1) derivada, todas en [𝑎, 𝑏], 𝑥0 ∈ [𝑎, 𝑏], el 𝑛-ésimo polinomio de Taylor se define mediante:

𝑓 ′′ (𝑥0 )(𝑥 − 𝑥0 )2 𝑓 ′′′ (𝑥0 )(𝑥 − 𝑥0 )3 𝑓 (𝑛)(𝑥0 )(𝑥 − 𝑥0 )𝑛


𝑃𝑛 (𝑥) = 𝑓(𝑥0 ) + 𝑓 ′ (𝑥0 )(𝑥 − 𝑥0 ) + + +⋯+
2! 3! 𝑛!
El error respecto la función original es:
𝑓(𝑛+1) (𝜉)(𝑥−𝑥0 )𝑛+1
𝑅𝑛 (𝑥) = 𝑓(𝑥) − 𝑃𝑛 (𝑥) = , 𝜉 ∈ [𝑎, 𝑏], 𝜉 = 𝜉(𝑥)
(𝑛+1)!

|𝑥1 −𝑥0 |𝑛+1


Cota del error en el punto 𝑥1 : 𝑅𝑛 (𝑥1 ) ≤ max |𝑓 (𝑛+1) (𝑡)| ⋅
𝑡∈[𝑎,𝑏] (𝑛+1)!

|𝑥−𝑥0 |𝑛+1
Cota intervalo [𝑎, 𝑏]: |𝑓(𝑥) − 𝑃𝑛 (𝑥)| = |𝑅𝑛 (𝑥)| ≤ max |𝑓 (𝑛+1) (𝑡)| ⋅ max
𝑡∈[𝑎,𝑏] 𝑥∈[𝑎,𝑏] (𝑛+1)!

Teorema. (serie de Taylor). Si 𝑓 es una función real derivable infinitamente sobre [𝑎, 𝑏], 𝑥0 ∈ [𝑎, 𝑏], la serie de
Taylor para la función se define por la siguiente serie y converge por puntos a 𝑓:

𝑓 ′′ (𝑥0 )(𝑥 − 𝑥0 )2 𝑓 ′′′ (𝑥0 )(𝑥 − 𝑥0 )3 𝑓 (𝑘) (𝑥0 )(𝑥 − 𝑥0 )𝑘
𝑓(𝑥) = 𝑓(𝑥0 ) + 𝑓 ′ (𝑥0 )(𝑥 − 𝑥0 ) + + +⋯ = ∑
2! 3! 𝑘!
𝑘=0

Ejemplo. 𝑓(𝑥) = 𝑒 𝑥 es indefinidamente derivable, 𝑥0 = 0, sobre ℝ

𝑓(𝑥) = 𝑒 𝑥 → 𝑓(𝑥0 ) = 𝑓(0) = 1

𝑓 ′ (𝑥) = 𝑒 𝑥 → 𝑓′(𝑥0 ) = 𝑓′(0) = 1


𝑓 ′′ (𝑥) = 𝑒 𝑥 → 𝑓′′(𝑥0 ) = 𝑓′′(0) = 1

𝑓 (𝑛)(𝑥) = 𝑒 𝑥 , 𝑛 ≥ 1 → 𝑓 (𝑛) (𝑥0 ) = 𝑓 (𝑛) (0) = 1, 𝑛 ≥ 1

1(𝑥 − 0)2 1(𝑥 − 0)3


𝑓(𝑥) = 𝑒 𝑥 = 1 + 1(𝑥 − 0) + + +⋯=
2! 3!
𝑥2 𝑥3 𝑥2 𝑥3 𝑥4 𝑥5
𝑒𝑥 = 1 + 𝑥 + + +⋯ =1+𝑥+ + + + +⋯
2! 3! 2! 3! 4! 5!
1 1 1 1
𝑒 =1+1+ + + + +⋯
2! 3! 4! 5!
𝑥3 𝑥5 𝑥7
Ejemplo. 𝑓(𝑥) = sin(𝑥) = 1 − 𝑥 + − + − ⋯ serie de Taylor
3! 5! 7!

Ejemplo.

a) Determine el tercer polinomio de Taylor 𝑃3 (𝑥) para la función 𝑓(𝑥) = (𝑥 − 1) ln 𝑥, en torno a 𝑥0 = 1.


b) Use 𝑃3 (0.5) para aproximar 𝑓(0.5).
c) Determine el error real |𝑓(0.5) − 𝑃3 (0.5)| y una cota para este error
d) Calcule una cota para el error |𝑓(𝑥) − 𝑃3 (𝑥)| a través de la fórmula, en el intervalo [0.4, 1.4].
1
Respuestas: a) 𝑃3 (𝑥) = (𝑥 − 1)2 − 2 (𝑥 − 1)3 , b) 𝑃3 (0.5) = 0.3125, c) 0.03407, d) |𝑓(𝑥) − 𝑃3 (𝑥)| ≤ 1.43438 en [0.4, 1.4]

𝑓 ′′ (𝑥0 )(𝑥 − 𝑥0 )2 𝑓 ′′′ (𝑥0 )(𝑥 − 𝑥0 )3


𝑃𝑛 (𝑥) = 𝑓(𝑥0 ) + 𝑓 ′ (𝑥0 )(𝑥 − 𝑥0 ) + + + ⋯+
2! 3!
𝑓 (𝑛)(𝑥0 )(𝑥 − 𝑥0 )𝑛
𝑛!
5

𝑛 = 3, 𝑥0 = 1

𝑓 ′′ (𝑥0 )(𝑥 − 𝑥0 )2 𝑓 ′′′ (𝑥0 )(𝑥 − 𝑥0 )3


𝑃3 (𝑥) = 𝑓(𝑥0 ) + 𝑓 ′ (𝑥0 )(𝑥 − 𝑥0 ) + +
2! 3!
𝑓(𝑥 ) = (𝑥 − 1) ln 𝑥 → 𝑓 (𝑥0 ) = 𝑓 (1) = 0
𝑥 − 1 ′
𝑓 ′ (𝑥 ) = ln 𝑥 + , 𝑓 (𝑥 0 ) = 0
𝑥
2 𝑥 − 1
𝑓 ′′ (𝑥 ) = − → 𝑓 ′′ (𝑥0 ) = 2
𝑥 𝑥2
2 ∗ (𝑥 − 1) 3
𝑓 ′′′ (𝑥 ) = − 2 → 𝑓 ′′′ (𝑥0 ) = −3
𝑥3 𝑥
8 6 ∗ (𝑥 − 1)
𝑓 (4) (𝑥) = −
𝑥3 𝑥4
2(𝑥 − 1)2 (−3)(𝑥 − 1)3
𝑃3 (𝑥 ) = 0 + 0(𝑥 − 1) + +
2! 3!
(𝑥 − 1)3
𝑃3 (𝑥 ) = (𝑥 − 1)2 −
2
0.53
b) 𝑃3 (0.5) = 0.52 + 2
= 0.3125

c) |𝑓(0.5) − 𝑃3 (0.5)| = |(0.5 − 1) ln 0.5 − 0.3125| = 0.0340736

Cota para el error en el cálculo 𝑃(𝑥1 )


|𝑥1 −𝑥0 |4
𝑅3 (𝑥1 ) ≤ max |𝑓 (4) (𝑡)| ⋅
𝑡∈[𝑎,𝑏] 4!

𝑥1 = 0.5

𝐴 = max |𝑓 (4) (𝑡)|


𝑡∈[𝑎,𝑏]

a=0.4 %inciso d)

b = 1.4

df4 = abs(diff(f,4));

A = max(df4(a:0.01:b))

A= 2125/8

|𝑥1 − 𝑥0 |4 2125 |0.5 − 1|4


𝑅3 (𝑥1 ) ≤ 𝐴 ⋅ = ⋅ = 0.691731770833333
4! 8 4!
|𝑥−𝑥0 |𝑛+1
d) |𝑓 (𝑥) − 𝑃3 (𝑥 )| = |𝑅𝑛 (𝑥)| ≤ max |𝑓 (𝑛+1) (𝑡)| ⋅ max
𝑡∈[𝑎,𝑏] 𝑥∈[𝑎,𝑏] (𝑛+1)!

|𝑥 − 1|4
|𝑓 (𝑥 ) − 𝑃4 (𝑥 )| ≤ max |𝑓 (4) (𝑡)| ⋅ max
𝑡∈[0.4,1.4] 𝑥∈[0.4,1.4] 4!

𝐴= max |𝑓 (4) (𝑡)| = 2125/8 (anterior inciso)


𝑡∈[0.4,1.4]

|𝑥 − 1|4
𝐵= max
𝑥∈[0.4,1.4] 4!
g(x)=abs(x-1)^4/24

B=max(g(a:0.01:b))

𝐵 = 27/5000
6

Cota para el error en el intervalo [𝑎, 𝑏] = [0.4,1.4]

2125 27
|𝑓(𝑥 ) − 𝑃3 (𝑥 )| ≤ 𝐴𝐵 = ⋅ = 1.434375
8 5000
Métodos gráficos

Dado el problema: encontrar las raíces de la ecuación 𝑓(𝑥) = 0, gráficamente significa encontrar las intersecciones
con el eje 𝑋.

Ejemplo. Resolver gráficamente 𝑥 5 − sin 𝑥 + 4 = 0

Solución: 𝑥 = −1.379

Ejercicio: hallar la otra solución.

Para dos funciones 𝑓 y 𝑔 reales, encontrar las raíces de la ecuación 𝑓(𝑥) = 𝑔(𝑥) gráficamente es hallar los puntos de
intersección (las abscisas)
7

Ejemplo. Resolver 𝑥 3 ∗ cos(𝑥) − 2 = 𝑥 7 + 2 de forma gráfica

Solución 𝑥 = −1.24425; 𝑦 = −2.61791

Métodos numéricos. El problema es encontrar las raíces reales de la función real 𝑓 sobre un dominio [𝑎, 𝑏], i.e.,
resolver la ecuación 𝑓(𝑥) = 0, 𝑥 ∈ [𝑎, 𝑏] con métodos iterativos (métodos repetitivos que calculen a la larga
soluciones más exactas).

Estudiaremos dos métodos numéricos:

1. Método de la bisección
2. Método de Newton-Raphson

Ambos métodos consideran la hipótesis del siguiente teorema.

Teorema del valor intermedio. Si 𝑓 es continua sobre [𝑎, 𝑏] y 𝑓(𝑎) y 𝑓(𝑏) tienen signos opuestos
(𝑓(𝑎) ∗ 𝑓(𝑏) < 0) entonces 𝑓 tiene al menos una raíz en [𝑎, 𝑏], esto es, existe 𝑥0 ∈ (𝑎, 𝑏) tal que 𝑓(𝑥0 ) = 0
8

Método de la bisección.

Para una función continua en un intervalo [𝑥𝑙 , 𝑥𝑟 ] que tiene una raíz (𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑟 ) < 0), el método consiste en
dividir el intervalo a la mitad, hay que escoger la mitad que contenga a la raíz, el procedimiento se repite o itera
sobre este intervalo.

Cota para el error absoluto del método luego de 𝑛 iteraciones para el intervalo original [𝑎, 𝑏]:
𝑏−𝑎
𝐸𝑡 = 𝑥𝑡 − 𝑥𝑎 → |𝐸𝑡 | ≤ 𝑛
2
𝑏−𝑎
iterMax = ⌈log 2 ⌉
𝑒𝑠

Algoritmo 1

Algoritmo de la bisección con criterio de parada |𝑒𝑎 | ≤ 𝑒𝑠 .


Datos: 𝐼 = [𝑥𝑙 , 𝑥𝑟 ], una función 𝑓 continua sobre 𝐼 y 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑟 ) < 0, tolerancia 𝑒𝑠 .
Salida: 𝑥𝑎 = valor aproximado, 𝑒𝑎 = error porcentual aproximado, iter = iteraciones
𝑥 +𝑥
1. 𝑥𝑎 = 𝑙 𝑟
2
2. Sean 𝑒𝑎 = 100, iter = 1
3. Hacer mientras |𝑒𝑎 | > 𝑒𝑠 :
𝑥𝑎,𝑎𝑛𝑡 = 𝑥𝑎
Si 𝑓(𝑥𝑎 ) = 0 entonces 𝑒𝑎 = 0;
Sino hacer:
Si 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑎 ) < 0, entonces hacer:
𝑥𝑟 = 𝑥𝑎 (𝑥𝑙 = 𝑥𝑙 )
Sino hacer:
𝑥𝑙 = 𝑥𝑎 (𝑥𝑟 = 𝑥𝑟 )
𝑥 +𝑥
𝑥𝑎 = 𝑙 𝑟
2
𝑥𝑎 −𝑥𝑎,𝑎𝑛𝑡
𝑒𝑎 = ∗ 100
𝑥𝑎
iter = iter + 1
9

Algoritmo 2

Algoritmo de la bisección con criterio de parada el error absoluto máximo 𝑒𝑠 : |𝐸𝑡 | ≤ 𝑒𝑠


Datos: 𝐼 = [𝑥𝑙 , 𝑥𝑟 ], una función 𝑓 continua sobre 𝐼 y 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑟 ) < 0, tolerancia 𝑒𝑠 .
Salida: 𝑥𝑎 = valor aproximado, iter = iteraciones
𝑥 −𝑥
1. Sea iterMax = redondear al techo log 2 𝑟 𝑙
𝑒𝑠
2. Hacer para iter = 1,2,3, … , iterMax:
𝑥 +𝑥
𝑥𝑎 = 𝑙 𝑟
2
Si 𝑓(𝑥𝑎 ) = 0 entonces
Terminar bucle de repetición;
Sino hacer:
Si 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑎 ) < 0, entonces hacer:
𝑥𝑟 = 𝑥𝑎 (𝑥𝑙 = 𝑥𝑙 )
Sino hacer:
𝑥𝑙 = 𝑥𝑎 (𝑥𝑟 = 𝑥𝑟 )

Algoritmo 3

Algoritmo de la bisección con criterio de parada |𝑓(𝑥𝑎 )| ≤ 𝑒𝑠 .


Datos: 𝐼 = [𝑥𝑙 , 𝑥𝑟 ], 𝑓 es continua sobre 𝐼 y 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑟 ) < 0, 𝑒𝑠 tolerancia
Salida: 𝑥𝑎 = valor aproximado, iter = iteraciones
𝑥 +𝑥
1. Sea 𝑥𝑎 = 𝑙 𝑟
2
2. Sea iter = 1
3. Hacer mientras |𝑓(𝑥𝑎 )| > 𝑒𝑠 :
Si 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑎 ) < 0, entonces hacer:
𝑥𝑟 = 𝑥𝑎 (𝑥𝑙 = 𝑥𝑙 )
Sino hacer:
𝑥𝑙 = 𝑥𝑎 (𝑥𝑟 = 𝑥𝑟 )
𝑥 +𝑥
𝑥𝑎 = 𝑙 𝑟
2
iter = iter + 1
10

Implementación del algoritmo 1 en Matlab:

%biseccion2020.m
%Algoritmo de la bisección con criterio de parada |ea |<=es.
%Datos: I=[xl,xr], una función f continua sobre I y f(xl)*f(xr)<0, tolerancia es.
%Salida: xa=valor aproximado, ea=error porcentual aproximado, iter=iteraciones
%Datos
syms x
f(x) = input('f(x) = ');
disp('Ingrese el intervalo [xl,xr] que cumpla f(xl)*f(xr)<0')
xl = input('xl = ');
xr = input('xr = ');
es = input('Tolerancia es = '); %tolerancia

%Algoritmo:
close, fplot(f,[xl, xr]), hold on %no es paso del algoritmo 1 de bisección
xa = (xl + xr) / 2
ea = 100 %error aproximado porcentual
iter = 1;
while abs(ea) > es
xaAnt = xa;
if f(xa) == 0
ea = 0;
else
if f(xl) * f(xa) < 0
%xl = xl
xr = xa;
else
xl = xa;
%xr = xr
end
xa = (xl + xr) / 2
ea = (xa - xaAnt) / xa * 100
iter = iter + 1
end
end

%Mostrar resultados
fprintf('La solucion aprox. es: %.4f\n', xa)
fprintf('El error porcentual aprox. es: %f\n', ea)
fprintf('El numero de iteraciones es: %i\n', iter)
plot(xa,0,'ro'), grid on
text(xa,0,sprintf('(%.4f,0)',xa)) %sprintf genera una arreglo de caracteres
11

Ejemplo. Por el método de la bisección manualmente encontrar una solución positiva aproximada para la ecuación
siguiente, con una tolerancia de 5%, trabajar con redondeo a 3 decimales:

𝑓(𝑥) = 𝑥 4 − 𝑥 − 10

Gráficamente determinar los puntos iniciales (enteros positivos más próximos a la raíz) necesarios para este método.

Solución

Intervalo [𝑥𝑙 , 𝑥𝑟 ] = [1,2], 𝑒𝑠 = 5%; usar 3 decimales; 𝑓(𝑥) = 𝑥 4 − 𝑥 − 10

iter 𝑥𝑙 𝑥𝑟 𝑥𝑙 + 𝑥𝑟 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑎 ) |𝑒𝑎 | > 𝑒𝑠


𝑥𝑎 = 𝑥𝑎 − 𝑥𝑎,𝑎𝑛𝑡
2 | ∗ 100%| > 𝑒𝑠
𝑥𝑎
1 1 2 1+2 𝑓(1) ∗ 𝑓(1.5) 100 > 5
= 1.5 515
2
= =+
8
2 1.5 2 1.75 𝑓(1.5) 1.75 − 1.5
| ⋅ 100| = 14.3 > 5
∗ 𝑓(1.75) 1.75
62521
= =+
4096
3 1.75 2 1.875 − 1.875 − 1.75
| ⋅ 100| = 6.7 > 5
1.875
4 1.75 1.875 1.812 + 3.4 > 5 𝑛𝑜

Solución 𝑥 = 1.812 y la cantidad de iteraciones es 4


12

Ejemplo. Por el método de bisección manualmente encontrar una solución positiva aproximada para la ecuación
siguiente, con una tolerancia absoluta de 0.1, trabajar con redondeo a 3 decimales:

𝑓(𝑥) = 𝑥 4 − 𝑥 − 10

Gráficamente determinar los puntos iniciales (enteros positivos más próximos a la raíz) necesarios para este método.

Solución

Determinando puntos iniciales (enteros positivos más


cercanos)
>> syms x
>> ezplot(‘x^4-x-10’, [-5:0.1:5])
>> grid on

Se eligen los enteros más cercanos 1 y 2, [𝑥𝑙 , 𝑥𝑟 ] = [1,2]

Estimemos el número de iteraciones con la fórmula teórica:


𝑥𝑟 − 𝑥𝑙
iter = ⌈log 2 ⌉
𝑒𝑠
2−1
iter = ⌈log 2 ⌉=4
0.1
𝒙𝒍 + 𝒙𝒓
𝐢𝐭𝐞𝐫 𝒙𝒍 𝒙𝒓 𝒙𝒂 = 𝒇(𝒙𝒍 ) ∗ 𝒇(𝒙𝒂 )
𝟐
1 1 2 1.500 64.375

2 1,5 2 1.750 15.264

3 1.750 2.000 1.875 −1.149

4 1.750 1.875 1.813 2.419

La raíz es: 1.813


13

Ejemplo. Por el método de la bisección manualmente encontrar una solución positiva aproximada para la ecuación
siguiente, con una tolerancia de 2%, trabajar con redondeo a 6 decimales:

𝑥
𝑓 (𝑥 ) = cos ( ) + 𝑥 − 𝜋 = 0
2
Gráficamente determinar los puntos iniciales (enteros positivos más próximos a la raíz) necesarios para este método.

Solución

[𝑥𝑙 , 𝑥𝑟 ] = [3, 4]; 𝑒𝑠 = 2%; 6 decimales

iter 𝑥𝑙 𝑥𝑟 𝑥𝑙 + 𝑥𝑟 𝑥𝑎,𝑎𝑛𝑡 𝑓(𝑥𝑎 ) 𝑓(𝑥𝑙 ) ∗ 𝑓(𝑥𝑎 ) 𝑥𝑎 − 𝑥𝑎,𝑎𝑛𝑡


𝑥𝑎 = |𝑒𝑎 = | ∗ 100%|
2 𝑥𝑎
> 𝑒𝑠
1 3 4 3.5 3.5 0.18 − 100 > 2
2 3 3.5 3.25 3.25 0.05 − 7.7 > 2
3 3 3.25 3.125 3.125 −0.008 + 4>2
4 3.125 3.25 3.1875 1.96 > 2 no

La solución es 3.1875 y el número de iteraciones es 4


14

Método de Newton-Raphson

Algoritmo 1

Algoritmo con criterio de parada |𝑓(𝑥𝑎 )| ≤ 𝑒𝑠


Datos: Una función 𝑓: [𝑎, 𝑏] → ℝ con 𝑓 ∈ 𝐶 2 [𝑎, 𝑏] y 𝑓 ′ (𝑥) ≠ 0 en [𝑎, 𝑏] y 𝑓(𝑎) ∗ 𝑓(𝑏) < 0;
𝑥𝑎 una solución aproximada inicial; la tolerancia 𝑒𝑠 .
Salida: 𝑥𝑎 =valor aproximado, iter=iteraciones

1. Hacer iter := 0
2. Hacer mientras |𝑓(𝑥𝑎 )| > 𝑒𝑠 :

𝑓(𝑥𝑎 )
𝑥𝑎 : = 𝑥𝑎 −
𝑓′ (𝑥𝑎 )

Si 𝑥𝑎 ∉ [𝑎, 𝑏] entonces lanzar el mensaje:


''No se llega a la solución con la exactitud deseada.
Se sugiere elegir un valor inicial más cercano al dado''

Y termina algoritmo.
Sino hacer:
iter := iter+1

Algoritmo 2

Algoritmo con criterio de parada |𝑒𝑎 | ≤ 𝑒𝑠


Datos: Una función 𝑓: [𝑎, 𝑏] → ℝ con 𝑓 ∈ 𝐶 2 [𝑎, 𝑏] y 𝑓 ′ (𝑥) ≠ 0 en [𝑎, 𝑏] y 𝑓(𝑎) ∗ 𝑓(𝑏) < 0;
𝑥𝑎 una solución aproximada inicial; la tolerancia 𝑒𝑠 .
Salida: 𝑥𝑎 = valor aproximado, 𝑒𝑎 = error porcentual aproximado, iter = iteraciones

1. Hacer iter := 0; 𝑒𝑎 = 100


2. Hacer mientras |𝑒𝑎 | > 𝑒𝑠 :
𝑥𝑎,𝑎𝑛𝑡 ∶= 𝑥𝑎
𝑓(𝑥𝑎,𝑎𝑛𝑡 )
𝑥𝑎 : = 𝑥𝑎,𝑎𝑛𝑡 −
𝑓′ (𝑥𝑎,𝑎𝑛𝑡 )
Si 𝑥𝑎 ∉ [𝑎, 𝑏] entonces lanzar el mensaje:
''No se llega a la solución con la exactitud deseada.
Se sugiere elegir un valor inicial más cercano al dado''
Y termina algoritmo.
Sino hacer:
𝑥 −𝑥
𝑒𝑎 ∶= 𝑎 𝑎,𝑎𝑛𝑡 ∗ 100
𝑥𝑎
iter := iter+1
15

Implementación del algoritmo 1 en Matlab.

%newtonRaphson2020Tol.m
% Algoritmo con criterio de parada |f(xa )|<=es
% Datos: Una función f:[a,b]->R con f es de clase C2 en [a,b]
%y f'(x)~=0 en [a,b] y f(a)*f(b)<0;
% xa una solución aproximada inicial; la tolerancia es.
% Salida: xa=valor aproximado, iter=iteraciones

%Datos
syms x
f(x) = input('f(x) = ');
disp('Ingrese el intervalo [a,b]')
a = input('a = ');
b = input('b = ');
xa = input('Ingrese el valor inicial xa = ')
es = input('Ingrese la tolerancia, tal que |f(xa)| al final sea <= es : ');

df(x) = diff(f); %derivada


mostrar = true; %mostrar respuestas por defecto

%Algoritmo 1
iter = 1;
while abs(f(xa)) > es
xa = double(xa - f(xa) / df(xa))
if (xa < a || xa > b) %xa fuera del intervalo
fprintf(['No se llega a la solución con la exactitud deseada.'...
'\n Se sugiere elegir un valor inicial más cercano al dado\n'])
mostrar = false;
break; %terminar algoritmo
else
iter = iter + 1;
end
end

%Mostrar resultados
if mostrar
fprintf('La sol. aproximada es %.3f\n', xa)
fprintf('El número de iteraciones es %i\n', iter)
fplot(f)
hold on
plot(xa,0,'ro')
text(xa,0,sprintf('(%.4f,0)',xa))
grid on
end
16

Ejemplo. Por el método de Newton-Raphson manualmente encontrar una solución positiva aproximada para la
ecuación siguiente, con una tolerancia de 0.1 para |𝑓(𝑟)|, trabajar con redondeo a 3 decimales:

𝑓(𝑥) = 𝑥 4 − 𝑥 − 10

Use el intervalo [1,3] y aproximación inicial 1.5.

Solución.

[𝑎, 𝑏] = [1,3]; 𝑥𝑎 = 1.5

𝑓(𝑥) = 𝑥 4 − 𝑥 − 10
𝑒𝑠 = 0.1
𝑓 ′ (𝑥) = 4𝑥 3 − 1
Usar 3 decimales
iter 𝑓(𝑥𝑎 ) |𝑓(𝑥𝑎 )| > 𝑒𝑠 = 0.1
𝑥𝑎 : = 𝑥𝑎 −
𝑓′(𝑥𝑎 )
0 1.5 6.4 > 0.1
1 2.015 ∈ [𝑎, 𝑏] = [1,3] 4.4704 > 0.1
2 1.874 ∈ [𝑎, 𝑏] 0.4593 > 0.1
3 1.856 ∈ [𝑎, 𝑏] 0.0102 > 0.1 no

La solución aproximada es 1.856, con 3 iteraciones.


17

Ejemplo. Por el método de Newton-Raphson manualmente encontrar la raíz más grande aproximada para la función
siguiente, con una tolerancia de 0.1% para |𝑒𝑎 |, trabajar con redondeo a 4 decimales:

𝑓(𝑥) = 𝑒 𝑥 − 𝑥 sin(4𝑥) + 1
Solución.

𝑓(𝑥) = 𝑒 𝑥 − 𝑥 sin(4𝑥) + 1
[𝑎, 𝑏] = [−5,3]; 𝑥𝑎 = −1.75; 𝑒𝑠 = 0.1; 4 decimales

iter 𝑥𝑎 |𝑒𝑎 | > 𝑒𝑠 = 0.1


1 −1.75 100 > 𝑒𝑠
2 −1.7539 ∈ [𝑎, 𝑏] 0.2245 > 𝑒𝑠
3 −1.7540 ∈ [𝑎, 𝑏] 0.00092560 > 𝑒𝑠

Solución aproximada 𝑥𝑎 = −1.7540; 3 iteraciones (2 iteraciones adicionales)

Ejercicio. Escribir un programa para graficar la curva de ecuación −25𝑥 2 − 20𝑥𝑦 − 96𝑥 − 9𝑦 3 − 35𝑦 − 70 = 0

con 𝑥 ∈ [−1,1]
18

Raíces de sistemas de ecuaciones no lineales

Método de Newton para sistemas de ecuaciones.´

Consideremos la función:

𝐹: ℝ𝑛 → ℝ𝑛
𝐹1 (𝑋)
𝐹 (𝑋)
𝐹(𝑋) = ( 2 ) ; 𝑋 = (𝑥1 , 𝑥2 , … , 𝑥𝑛 )

𝐹𝑛 (𝑋)
Se quiere resolver la ecuación 𝐹(𝑋) = 0, lo cual desglosado es un sistema de 𝑛 ecuaciones y 𝑛 incógnitas:

𝐹1 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 0
𝐹2 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 0
𝐹(𝑋) = 0: {

𝐹𝑛 (𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 0
Usamos la idea del método de Newton-Raphson unidimensional. Sea 𝑋 ∗ la solución exacta de 𝐹(𝑋) = 0, y sea 𝑋0
una solución próxima a 𝑋 ∗ ; la serie de Taylor para la función es:

𝐹(𝑋 ∗ ) = 𝐹(𝑋0 ) + 𝐹 ′ (𝑋0 )(𝑋∗ − 𝑋0 ) + 𝒪(‖𝑋 ∗ − 𝑋0 ‖2 )


Despreciando el último término:

𝐹(𝑋 ∗ ) ≈ 𝐹(𝑋0 ) + 𝐹 ′ (𝑋0 )(𝑋∗ − 𝑋0 )


Y como 𝑋 ∗ es solución de 𝐹(𝑋) = 0:

0 ≈ 𝐹(𝑋0 ) + 𝐹 ′ (𝑋0 )(𝑋 ∗ − 𝑋0 )


→ 𝐹 ′ (𝑋0 )(𝑋 ∗ − 𝑋0 ) ≈ −𝐹(𝑋0 )
Suponiendo que 𝐹′(𝑋0 ) es invertible, se tiene:
−1
𝑋 ∗ − 𝑋0 ≈ −(𝐹 ′ (𝑋0 )) 𝐹(𝑋0 )
−1
𝑋 ∗ ≈ 𝑋0 − (𝐹 ′ (𝑋0 )) 𝐹(𝑋0 )
−1
𝑋𝑛+1 = 𝑋𝑛 − (𝐹 ′ (𝑋𝑛 )) 𝐹(𝑋𝑛 )

Nota. 𝐹′ es la matriz jacobiana que se obtiene al derivar 𝐹:


𝜕𝐹1
𝜕𝑥
𝜕𝐹2
𝜕𝐹 𝜕𝐹 𝜕𝐹
𝐹′ = 𝜕𝑥 o 𝐹′ = ( ⋯ )
𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛

𝜕𝐹𝑛
( 𝜕𝑥 )
𝜕𝐹1 𝜕𝐹1 𝜕𝐹1

𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛
𝜕𝐹2 𝜕𝐹2 𝜕𝐹2

𝐹 = 𝜕𝑥1 ⋯
𝜕𝑥2 𝜕𝑥𝑛
⋮ ⋮ ⋱ ⋮
𝜕𝐹𝑛 𝜕𝐹𝑛 𝜕𝐹𝑛

(𝜕𝑥1 𝜕𝑥2 𝜕𝑥𝑛 )
19

𝑓(𝑥, 𝑦) 0
En el caso de dos variables para 𝐹(𝑥, 𝑦) = ( )=( )
𝑔(𝑥, 𝑦) 0
−1
𝑋𝑛+1 = 𝑋𝑛 − (𝐹 ′ (𝑋𝑛 )) 𝐹(𝑋𝑛 )

𝑥𝑛+1 𝑥𝑛 𝑓 𝑓𝑦 −1 𝑓
(𝑦 ) = (𝑦 ) − (𝑔𝑥 𝑔𝑦 ) (𝑔)
𝑛+1 𝑛 𝑥

𝑥𝑛+1 𝑥𝑛 1 𝑔𝑦 −𝑓𝑦 𝑓
(𝑦 ) = ( 𝑦 ) − ( )( )
𝑛+1 𝑛 det −𝑔𝑥 𝑓𝑥 𝑔
𝑓𝑔𝑦 − 𝑓𝑦 𝑔
𝑥𝑛+1 = 𝑥𝑛 −
det
𝑓𝑥 𝑔 − 𝑓𝑔𝑥
𝑦𝑛+1 = 𝑦𝑛 −
det
Donde det = 𝑓𝑥 𝑔𝑦 − 𝑓𝑦 𝑔𝑥

y los lados de la derecha evaluar en (𝑥𝑛 , 𝑦𝑛 )


20

Algoritmo de Newton para sistemas

Algoritmo 1

Algoritmo con criterio de parada el número de iteraciones


Datos: Una función 𝐹: 𝐷 ⊂ ℝ𝑛 → ℝ𝑛 con 𝐹 ∈ 𝐶 2 (ℝ𝑛 ) y 𝐹 ′ (𝑋) no singular en 𝐷, 𝑋0 ∈ ℝ𝑛 una solución
aproximada inicial (no se especificará en este algoritmo el dominio 𝐷), e iter el número de iteraciones
‖𝑋𝑎−𝑋𝑎,𝐴𝑛𝑡 ‖
Salida: 𝑋𝑎 = valor aproximado, 𝑒𝑎 = ⋅ 100% error porcentual aproximado
‖𝑋𝑎 ‖

Hacer para 𝑖 = 1,2, … , iter:


𝑋𝑎,𝐴𝑛𝑡 ∶= 𝑋𝑎
−1
𝑋𝑎 ∶= 𝑋𝑎,𝐴𝑛𝑡 − (𝐹 ′ (𝑋𝑎,𝐴𝑛𝑡 )) 𝐹(𝑋𝑎,𝐴𝑛𝑡 )

‖𝑋𝑎 −𝑋𝑎,𝐴𝑛𝑡 ‖
𝑒𝑎 = ⋅ 100
‖𝑋𝑎 ‖

Algoritmo 2

Algoritmo con criterio de parada 𝑒𝑎 ≤ 𝑒𝑠


Datos: Una función 𝐹: 𝐷 ⊂ ℝ𝑛 → ℝ𝑛 con 𝐹 ∈ 𝐶 2 (ℝ𝑛 ) y 𝐹 ′ (𝑋) no singular en 𝐷, 𝑋0 ∈ ℝ𝑛 una solución
aproximada inicial (no se especificará en este algoritmo el dominio 𝐷), y 𝑒𝑠 la tolerancia
‖𝑋𝑎 −𝑋𝑎,𝐴𝑛𝑡 ‖
Salida: 𝑋𝑎 =valor aproximado, 𝑒𝑎 = ⋅ 100% error porcentual aproximado y el número de iteraciones
‖𝑋𝑎 ‖
iter

1. Hacer iter = 1 y 𝑒𝑎 = 100


2. Hacer mientras 𝑒𝑎 > 𝑒𝑠 :
𝑋𝑎,𝐴𝑛𝑡 ∶= 𝑋𝑎
−1
𝑋𝑎 ∶= 𝑋𝑎,𝐴𝑛𝑡 − (𝐹 ′ (𝑋𝑎,𝐴𝑛𝑡 )) 𝐹(𝑋𝑎,𝐴𝑛𝑡 )

‖𝑋𝑎 −𝑋𝑎,𝐴𝑛𝑡 ‖
𝑒𝑎 = ⋅ 100
‖𝑋𝑎 ‖
iter = iter + 1
21

Implementación en Matlab del algoritmo 1

% newtonRaphsonSistemas2020.m
% Algoritmo con criterio de parada el número de iteraciones
% Datos: Una función F:D -> R^n, F es C^2 (R^n)
% y F'(X) es no singular en D,
% X0 en R^n una solución aproximada inicial (no se especificará en
% este algoritmo el dominio D), e iter el número de iteraciones
% Salida: Xa=valor aproximado, ea=|Xa-X(a,Ant)| / |Xa | * 100% error
% porcentual aproximado
% Caso de n=2
syms x y
disp('Ingrese las funciones componentes: F=[f; g]=0')
f(x,y) = input('f = ');
g(x,y) = input('g = ');
disp('Ingrese las aproximaciones iniciales:')
%primera iteración:
xa = input('x0 = ');
ya = input('y0 = ');
iter = input('Número de iteraciones adicionales = ');

%Algoritmo
F(x,y) = [f; g];
DF(x,y) = [diff(F, x) diff(F,y)]; %matriz jacobiana
invDF(x,y) = inv(DF(x,y));
Xa = [xa; ya]
for i = 1 : 1 : iter
XaAnt = Xa;
Xa = double(XaAnt - invDF(XaAnt(1), XaAnt(2)) * F(XaAnt(1), XaAnt(2)))
ea = norm(Xa-XaAnt) / norm(Xa) * 100
end

%Resultados finales
%fprintf('x = %.4f; y = %.4f\n', Xa(1), Xa(2))
%fprintf('Error porcentual aproximado = %.6f %%\n', ea)
ezplot(f), hold on, ezplot(g)
plot(Xa(1),Xa(2),'ro')
text(Xa(1),Xa(2),sprintf('(%.4f,%.4f)',Xa(1),Xa(2)))
22

Ejemplo. Realice el desarrollo completo (manuscrito) de la resolución del siguiente sistema de ecuaciones no lineales
por el método de Newton considerando: valores iniciales 𝑥0 = −0.5 , 𝑦0 = 4; con 2 iteraciones.

𝑥 2 − 𝑥𝑦 2 = 11
{
𝑦 2 − 4𝑥𝑦 = 28
Solución.
−1
𝐹(𝑋) = 0 → 𝑋𝑘+1 = 𝑋𝑘 − (𝐹 ′ (𝑋𝑘 )) 𝐹(𝑋𝑘 )

𝑓(𝑥, 𝑦) 𝑥 2 − 𝑥𝑦 2 − 11 0
𝐹(𝑥, 𝑦) = ( )=( 2 )=( )
𝑔(𝑥, 𝑦) 𝑦 − 4𝑥𝑦 − 28 0
𝑥𝑘+1 𝑥𝑘 ′ −1
(𝑦 ) = (𝑦 ) − (𝐹 (𝑥𝑘 , 𝑦𝑘 )) 𝐹(𝑥𝑘 , 𝑦𝑘 )
𝑘+1 𝑘
La matriz jacobiana:
𝜕𝑓 𝜕𝑓
𝜕𝐹 𝜕𝐹 𝜕𝑥 𝜕𝑦 2𝑥 − 𝑦 2 −2𝑥𝑦
𝐹 ′ (𝑥, 𝑦) = ( )= =( )
𝜕𝑥 𝜕𝑦 𝜕𝑔 𝜕𝑔 −4𝑦 2𝑦 − 4𝑥
(𝜕𝑥 𝜕𝑦 )
det(𝐹 ′ ) = (2𝑥 − 𝑦 2 )(2𝑦 − 4𝑥) − (−4𝑦)(−2𝑥𝑦)
−1 1 2𝑦 − 4𝑥 2𝑥𝑦
(𝐹 ′ (𝑥, 𝑦)) = ( )
det(𝐹 )′ 4𝑦 2𝑥 − 𝑦 2
𝑎 𝑏 −1 1 𝑑 −𝑏
Nota. ( ) = ( )
𝑐 𝑑 𝑎𝑑−𝑏𝑐 −𝑐 𝑎
Primera iteración:
𝑘 = 0:
−1
𝑋1 = 𝑋0 − (𝐹 ′ (𝑋0 )) 𝐹(𝑋0 )
𝑥1 𝑥0 −1
(𝑦 ) = (𝑦 ) − (𝐹 ′ (𝑥0 , 𝑦0 )) 𝐹(𝑥0 , 𝑦0 )
1 0
𝑥0 = −0.5 , 𝑦0 = 4
′ 2
det(𝐹 ) = (2(−0.5) − 4 )(2(4) − 4(−0.5)) − (−4(4))(−2(−0.5)(4)) = −106
−1 1 2(4) − 4(−0.5) 2(−0.5)(4) 1 10 −4
(𝐹 ′ (−0.5,4)) = ′ ( 2 )= ( )
det(𝐹 ) 4(4) 2(−0.5) − 4 −106 16 −17
(−0.5)2 − (−0.5)(4)2 − 11 −2.75
𝐹(−0.5,4) = ( 2 )=( )
(4) − 4(−0.5)(4) − 28 −4
𝑥1 −0.5 1 10 −4
(𝑦 ) = ( )− ( ) 𝐹(−0.5,4)
1 4 −106 16 −17
𝑥1 −0.5 1 10 −4 −2.75
(𝑦 ) = ( )− ( )( )
1 4 −106 16 −17 −4
𝑥1 −0.5 1 −11.5
(𝑦 ) = ( )− ( )
1 4 −106 24
𝑥1 −0.60849
(𝑦 ) = ( )
1 4.22642
−0.60849 −0.5
‖( )−( )‖
𝑒𝑎 = 4.22642 4 ⋅ 100% = 5.87986%
−0.60849
‖( )‖
4.22642

𝑘 = 1:
−1
𝑋2 = 𝑋1 − (𝐹 ′ (𝑋1 )) 𝐹(𝑋1 )
𝑥2 𝑥1 −1
(𝑦 ) = (𝑦 ) − (𝐹 ′ (𝑥1 , 𝑦1 )) 𝐹(𝑥1 , 𝑦1 )
2 1
𝑥1 = −0.60849 , 𝑦1 = 4.22642
23

det(𝐹 ′ ) = −120.76202
−1 1 2 ∗ (4.22642) − 4 ∗ (−0.60849) 2(−0.60849) ∗ 4.22642
(𝐹 ′ (−0.60849,4.22642)) = −120.76202 ( )
4 ∗ 4.22642 2 ∗ (−0.60849) − 4.226422
1 10.88680 −5.14347
= ( )
−120.76202 16.90568 −19.07961

(−0.60849)2 − (−0.60849) ∗ (4.22642)2 − 11 0.23949


𝐹(−0.60849,4.22642) = ( )=( )
(4.22642)2 − 4(−0.60849) ∗ (4.22642) − 28 0.14956
𝑥2 −0.60849 1 10.88680 −5.14347 0.23949
(𝑦 ) = ( )− ( )( )
2 4.22642 −120.76202 16.90568 −19.07961 0.14956
𝑥2 −0.59327
(𝑦 ) = ( )
2 4.23632
‖𝑋𝑎 − 𝑋𝑎,𝐴𝑛𝑡 ‖
𝑒𝑎 = ⋅ 100%
‖𝑋𝑎 ‖
−0.59327 −0.60849
‖( )−( )‖
4.23632 4.22642
𝑒𝑎 = ⋅ 100% = 0.42445%
−0.59327
‖( )‖
4.23632
La solución aproximada es 𝑥 = −0.59327; 𝑦 = 4.23632
Ejemplo. Realice el desarrollo completo (manuscrito) de la resolución del siguiente sistema de ecuaciones no lineales por el
método de Newton considerando 2 iteraciones adicionales y tomar como punto inicial el de coordenadas enteras más cercano a
la solución. Solo halle una de las soluciones.

𝑥 3 sin(𝑥) + 2𝑦 = 3
{ 3
𝑦 − 4cos(𝑥) = 2

Solución.

𝑥0 = 3; 𝑦0 = −1
−1
𝐹(𝑋) = 0 → 𝑋𝑘+1 = 𝑋𝑘 − (𝐹 ′ (𝑋𝑘 )) 𝐹(𝑋𝑘 )

𝑓(𝑥, 𝑦) 𝑥3 sin(𝑥) + 2𝑦 − 3 0 𝑥𝑘+1 𝑥𝑘 −1


𝐹(𝑥, 𝑦) = ( )=( 3 ) = ( ) → (𝑦 ) = (𝑦 ) − (𝐹 ′ (𝑥𝑘 , 𝑦𝑘 )) 𝐹(𝑥𝑘 , 𝑦𝑘 ), 𝑘 ≥ 0
𝑔(𝑥, 𝑦) 𝑦 − 4 cos(𝑥) − 2 0 𝑘+1 𝑘
24

𝜕𝑓 𝜕𝑓
𝜕𝑥 𝜕𝑦 3𝑥 2 sin(𝑥) + 𝑥 3 cos 𝑥 2
𝐹 ′ (𝑥, 𝑦) = =( )
𝜕𝑔 𝜕𝑔 4 sin(𝑥) 3𝑦 2
(𝜕𝑥 𝜕𝑦 )

det(𝐹 ′ (𝑥, 𝑦)) = (3 ∗ 𝑥 2 ∗ sin(𝑥) + 𝑥 3 ∗ cos(𝑥)) ∗ (3 ∗ 𝑦 2 ) − 2 ∗ (4 ∗ sin(𝑥))

1 3𝑦 2 −2
𝐹 ′ (𝑥, 𝑦)−1 = ( )
det(𝐹 ′ (𝑥, 𝑦)) −4 sin(𝑥) 3𝑥 2 sin(𝑥) + 𝑥 3 cos 𝑥

Primera iteración adicional: Si 𝑘 = 0:


𝑥1 𝑥0 −1
(𝑦 ) = (𝑦 ) − (𝐹 ′ (𝑥0 , 𝑦0 )) 𝐹(𝑥0 , 𝑦0 )
1 0

𝑥0 = 3, 𝑦0 = −1

det 𝐹′(𝑥0 , 𝑦0 ) = −69.8876

1 3𝑦02 −2 −0.0429 0.0286


𝐹 ′ (𝑥0, 𝑦0 )−1 = ( )=( )
−69.8876 −4 sin(𝑥0 ) 3𝑥02 sin(𝑥0 ) + 𝑥03 cos 𝑥0 0.0081 0.3279

−1.1898
𝐹(𝑥0 , 𝑦0 ) = ( )
0.9600
𝑥1 𝑥0 −1
(𝑦 ) = (𝑦 ) − (𝐹 ′ (𝑥0 , 𝑦0 )) 𝐹(𝑥0 , 𝑦0 )
1 0

𝑥1 3 −0.0429 0.0286 −1.1898 2.9214


(𝑦 ) = ( ) − ( )( )=( )
1 −1 0.0081 0.3279 0.9600 −1.3052
‖𝑋𝑎 − 𝑋𝑎,𝐴𝑛𝑡 ‖
𝑒𝑎 = ⋅ 100
‖𝑋𝑎 ‖

2.9214 3
‖( )− ( )‖
𝑒𝑎 = −1.3052 −1 ⋅ 100% = 9.849610868415191%
2.9214
‖( )‖
−1.3052
Segunda iteración adicional: Si 𝑘 = 1:
𝑥2 𝑥1 −1
(𝑦 ) = (𝑦 ) − (𝐹 ′ (𝑥1 , 𝑦1 )) 𝐹(𝑥1 , 𝑦1 )
2 1

𝑥1 = 2.9214, 𝑦1 = −1.3052

det 𝐹′(𝑥1 , 𝑦1 ) = −97.5137

1 3𝑦12 −2 −0.0524 0.0205


𝐹 ′ (𝑥1 , 𝑦1 )−1 = ( )=( )
−97.5137 −4 sin(𝑥1 ) 3𝑥12 sin(𝑥1 ) + 𝑥13 cos 𝑥1 0.0090 0.1922

−0.1646
𝐹(𝑥1 , 𝑦1 ) = ( )
−0.3200
𝑥2 𝑥1 −1
(𝑦 ) = (𝑦 ) − (𝐹 ′ (𝑥1 , 𝑦1 )) 𝐹(𝑥1 , 𝑦1 )
2 1

𝑥1 2.9214 −0.0524 0.0205 −0.1646 2.9193


(𝑦 ) = ( )−( )( )=( )
1 −1.3052 0.0090 0.1922 −0.3200 −1.2422
‖𝑋𝑎 − 𝑋𝑎,𝐴𝑛𝑡 ‖
𝑒𝑎 = ⋅ 100
‖𝑋𝑎 ‖

2.9193 2.9214
‖( )−( )‖
𝑒𝑎 = −1.2422 −1.3052 ⋅ 100% = 1.986857620290921%
2.9193
‖( )‖
−1.2422

Solución aproximada: 𝑥 = 2.9193; 𝑦 = −1.2422


25

Referencia: Richard Burden, “Análisis numérico”, 10ma edición

Sistemas de ecuaciones lineales

Un sistema de 𝑛 ecuaciones lineales con 𝑛 incógnitas (cuadrado) es de la forma:


𝐸1 : 𝑎11 𝑥1 + 𝑎12 𝑥2 + ⋯ + 𝑎1𝑛 𝑥𝑛 = 𝑏1
𝐸 : 𝑎 𝑥 + 𝑎22 𝑥2 + ⋯ + 𝑎2𝑛 𝑥𝑛 = 𝑏2
{ 2 21 1

𝐸𝑛 : 𝑎𝑛1 𝑥1 + 𝑎𝑛2 𝑥2 + ⋯ + 𝑎𝑛𝑛 𝑥𝑛 = 𝑏𝑛
En forma matricial es 𝐴𝑋 = 𝐵 donde
𝑎11 𝑎12 … 𝑎1𝑛 𝑏1 𝑥1
𝑎21 𝑎22 … 𝑎2𝑛 𝑏2 𝑥2
𝐴=( ⋮ ⋮ ⋱ ⋮ );𝐵 = ( ⋮ );𝑋 = ( ⋮ )
𝑎𝑛1 𝑎𝑛2 ⋯ 𝑎𝑛𝑛 𝑏𝑛 𝑥𝑛

𝐴 se denomina matriz de coeficientes, 𝐵 vector de términos independiente y 𝑋 vector de incógnitas.

Método de eliminación de Gauss simple

Como en álgebra lineal, el método de eliminación se aplica a sistemas de ecuaciones lineales para escalonar el
sistema.

El método de Gauss simple se aplica a sistemas que no requieren cambios de orden en las ecuaciones. Entonces
sucesivamente, se identifica un elemento de la diagonal (pivote), luego hay que restar múltiplos de la fila del pivote a
las filas siguientes con el fin de tener ceros debajo del pivote.

Consideramos la matriz aumentada

𝐴̃ = [𝐴|𝐵]

donde, excepto en la primera columna, no se espera que los valores de 𝑎𝑖𝑗 concuerden con los de la matriz original
𝐴̃. La matriz 𝐴̃ representa un sistema lineal con la misma solución establecida como el sistema original.

El sistema lineal nuevo es triangular,


26

El cuál se resuelve con sustitución hacia atrás

Algoritmo (extraído del texto de Burden, “Análisis numérico”, 10ma edición)


27

Algoritmo de eliminación de Gauss con pivoteo parcial escalado

Sistema bien condicionado: Se dice que un sistema está bien condicionado si pequeños cambios en los coeficientes
producen pequeños cambios en la solución, caso contrario se dice que está mal condicionado.

Escalamiento. Para evitar problemas de mal condicionamiento, se debe colocar en la posición del pivote al elemento
de la columna que es más grande en relación con las entradas en su fila. De esta manera en cada etapa 𝑖 de la
eliminación, se elegirá para ser el pivote el elemento de la fila 𝑝 ≥ 𝑖 tal que
|𝑎𝑝𝑖 | |𝑎𝑘𝑖 |
= max
𝑠𝑝 𝑖≤𝑘≤𝑛 𝑠𝑘

Donde los 𝑠𝑖 se denominan factores de escala y están definidos por

𝑠𝑖 = max |𝑎𝑖𝑗 |
1≤𝑗≤𝑛

Luego si 𝑝 ≠ 𝑖, se intercambian las filas 𝑝 e 𝑖.

Ejemplo. Resuelva el sistema lineal con aritmética de redondeo de tres dígitos


2.11𝑥1 − 4.21𝑥2 + 0.921𝑥3 = 2.01,
{ 4.01𝑥1 + 10.2𝑥2 − 1.12𝑥3 = −3.09,
1.09𝑥1 + 0.987𝑥2 + 0.832𝑥3 = 4.21
Tenemos 𝑠1 = 4.21, 𝑠2 = 10.2, y 𝑠3 = 1.09. Por lo que,

La matriz aumentada (𝐴|𝑏) se define mediante

|𝑎31 |
Puesto que es el más grande, realizamos (𝐸1 ) ↔ (𝐸3 ) para obtener
𝑠3

Calcule los multiplicadores

Realice las primeras dos eliminaciones para producir

Puesto que
28

Realizamos (𝐸1 ) ↔ (𝐸3 )

El multiplicador 𝑚32 se calcula a través de

y el siguiente paso de eliminación en la matriz

Finalmente, la sustitución hacia atrás da la solución 𝑥, la cual, para tres dígitos decimales, es

𝑥1 = −0.431, 𝑥2 = 0.430, y 𝑥3 = 5.12.


Eliminación gaussiana con pivoteo parcial escalado

Datos: la matriz aumentada del sistema lineal de ecuaciones 𝐴 = [𝑎𝑖𝑗 ] 1 ≤ 𝑖 ≤ 𝑛, 1 ≤ 𝑗 ≤ 𝑛 + 1. 𝑎(𝑖, 𝑗) = 𝑎𝑖𝑗
Salida: solución 𝑥1 , . . . , 𝑥𝑛 o mensaje de que el sistema lineal no tiene solución única.

Paso 1. Para 𝑖 = 1,2, … , 𝑛:


𝑠𝑖 : = máx |𝑎𝑖𝑗 |
𝑗=1,2,…,𝑛
Si 𝑠𝑖 = 0 entonces SALIDA (‘no existe solución única’);
PARE.
también determine 𝑁𝑅𝑂𝑊(𝑖) = 𝑖.
Paso 2. Hacer para 𝑖 = 1,2, … , 𝑛 − 1:
Paso 3. Si 𝑝 es el entero más pequeño con 𝑖 ≤ 𝑝 ≤ 𝑛 y
|𝑎(𝑁𝑅𝑂𝑊(𝑝),𝑖))| |𝑎(𝑁𝑅𝑂𝑊(𝑗),𝑖)|
= máx
𝑠(𝑁𝑅𝑂𝑊(𝑝)) 𝑖≤𝑗≤𝑛 𝑠(𝑁𝑅𝑂𝑊(𝑗))
Paso 4. Si 𝑎(𝑁𝑅𝑂𝑊(𝑝), 𝑖) = 0 entonces SALIDA (‘no existe solución única’);
PARE.
Paso 5. Si NROW(i) ≠ NROW(p) entonces determine 𝑁𝐶𝑂𝑃𝑌 = 𝑁𝑅𝑂𝑊(𝑖 );
𝑁𝑅𝑂𝑊(𝑖) = 𝑁𝑅𝑂𝑊(𝑝);
𝑁𝑅𝑂𝑊(𝑝) = 𝑁𝐶𝑂𝑃𝑌.
(Intercambio de fila simulado.)
Paso 6. Para 𝑗 = 𝑖 + 1, … , 𝑛 haga los pasos 7 y 8.
Paso 7. Determine 𝑚(𝑁𝑅𝑂𝑊( 𝑗 ), 𝑖 ) = 𝑎(𝑁𝑅𝑂𝑊( 𝑗 ), 𝑖)/𝑎(𝑁𝑅𝑂𝑊(𝑖 ), 𝑖).
Paso 8. Realice (𝐸𝑁𝑅𝑂𝑊(𝑗) − 𝑚(𝑁𝑅𝑂𝑊( 𝑗 ), 𝑖 ) · 𝐸𝑁𝑅𝑂𝑊(𝑖) ) → (𝐸𝑁𝑅𝑂𝑊(𝑗) ).
Paso 9. Si 𝑎(𝑁𝑅𝑂𝑊(𝑛), 𝑛) = 0 entonces SALIDA (‘no existe solución única’);
PARE.
Paso 10. Determine 𝑥𝑛 = 𝑎(𝑁𝑅𝑂𝑊(𝑛), 𝑛 + 1)/𝑎(𝑁𝑅𝑂𝑊(𝑛), 𝑛).
(Inicie sustitución hacia atrás.)
Paso 11. Para 𝑖 = 𝑛 − 1, . . . , 1
𝑎(𝑁𝑅𝑂𝑊(𝑖),𝑛+1)−∑𝑛
𝑗=𝑖+1 𝑎(𝑁𝑅𝑂𝑊(𝑖),𝑗)∗ 𝑥𝑗
determine 𝑥𝑖 =
𝑎(𝑁𝑅𝑂𝑊(𝑖),𝑖)
Paso 12. SALIDA (𝑥1 , . . . , 𝑥𝑛 ); (Procedimiento completado con éxito.)
PARE.

También podría gustarte