Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MATLAB
i
ii
Introducción
Introducción iii
Contenido v
1 Representación Numerica y Errores 1
1.1 Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . 1
1.2 Representación de un número real en una máquina . . . . . . 5
1.3 Aritmética de precisión nita . . . . . . . . . . . . . . . . . . 12
1.4 Arimética en una Máquina . . . . . . . . . . . . . . . . . . . . 16
1.5 Pérdida de dígitos o cifras signicativas . . . . . . . . . . . . . 17
1.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 Ceros de Funciones 27
2.1 Método de Bisección . . . . . . . . . . . . . . . . . . . . . . . 28
2.1.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Método de la Regula Falsi . . . . . . . . . . . . . . . . . . . . 34
2.2.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 35
2.3 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . 36
2.3.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 39
2.4 Método de la Secante . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 46
2.5 Método del punto jo . . . . . . . . . . . . . . . . . . . . . . . 47
2.5.1 Convergencia . . . . . . . . . . . . . . . . . . . . . . . 50
2.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
v
CONTENIDO
Bibliografía 145
Índice alfabético 146
vi
Capitulo 1
Representación Numerica y Errores
En este capítulo se realiza una introducción a la aritmética de precisión nita
y al concepto de error numérico, la demostración se algunos teoremas clásicos
es omitida.
1
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
x = 13.625
= 1 × 101 + 3 × 100 + 6 × 10−1 + 2 × 10−2 + 5 × 10−3
y = 401.3
= 4 × 102 + 0 × 101 + 1 × 100 + 3 × 10−1 + 3 × 10−2 + 3 × 10−3 + · · ·
x = 13.625
= 8 + 4 + 1 + 0.5 + 0.125
= 23 + 22 + 20 + 2−1 + 2−3
= 1 × 23 + 1 × 22 + 1 × 20 + 1 × 2−1 + 1 × 2−3
= 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 + 1 × 2−1 + 0 × 2−2 + 1 × 2−3
2
Métodos Numéricos con MATLAB
3
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
y = 401.3
= 256 + 144 + 1 + 0.3125 + 0.01953125 + · · ·
= 1 × 162 + 9 × 161 + 1 × 160 + 5 × 16−1 + 5 × 16−2 + · · ·
n1 =
1101
n2 =
4
Métodos Numéricos con MATLAB
23
n3 =
D
MATLAB también posee la función bin2dec , que transforma un número
binario en su equivalente en base 10.
29
f l(x) = ±1 · d1 d2 d3 · · · dk × 2n
5
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
de precisión simple (32 bits), el primer bit está reservado para el signo del
número denotado por s en la ecuación (1.1) (1 para negativo y 0 para pos-
itivo), los ocho bits siguientes se utilizan para almacenar un patrón de bits
que representan al exponente n, los 23 bits restantes se usan para la mantisa,
pero sólo se almacena la parte de la mantisa denotada por f porque el dígito
principal siempre es 1. En la gura 1.1 se muestra la distribución de los 32
bits en un formato de precisión simple.
- 127 -5 0 2 128
6
Métodos Numéricos con MATLAB
7
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
Figure 1.3: Correspondencia entre el valor real y el valor sesgado del exponente
0 10000001001 10011000. . . 0
Signo del número Exponente Parte fraccionaria f de la mantisa
Los números que representa una máquina están dentro de un rango numérico
que depende del formato que esta utilice (ya que existen restricciones para
la mantisa y el exponente, impuestas por la longitud de palabra), esto quiere
decir que no todo número real se puede representar. Para un formato de
precisión simple (32 bits) el máximo número positivo (Mnp) es aproximada-
mente 3 × 1038 y el mínimo número positivo (mnp) es aproximadamente
10−38 . El mínimo número negativo (mnn) es 3 × 10−38 y el máximo número
negativo (Mnn) es −3 × 10−38 . En la Figura 1.4 se ilustran los intervalos de
números representables en el formato de precisión simple.
Cuando el número que se quiere representar es 0, se iguala a 0 cada uno de
los 31 últimos bits, de modo que el esquema descrito en la ecuación (1.1) se
omite en este caso. El bit de signo puede ser 0 ó 1. La magnitud más pequeña
diferente de 0 que se puede almacenar es limitada por esta excepción y es
2−126 ≈ 10−38 [1].
8
Métodos Numéricos con MATLAB
9
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
10
Métodos Numéricos con MATLAB
0 10001111 10010000000000000000001
1.10010000000000000000001
+ 1
1.10010000000000000000010
1.10010000000000000000001
− 1
1.10010000000000000000000
11
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
12
Métodos Numéricos con MATLAB
f l(x) = ±0 · d1 d2 d3 . . . dk × 10n
f l(x) = ±0 · d1 d2 d3 . . . δk × 10n
corte redondeo
4 dígitos f l(x) = 0.1481 × 103 = 148.1 f l(x) = 0.1482 × 103 = 148.2
3 dígitos f l(x) = 0.148 × 103 = 148 f l(x) = 0.148 × 103 = 148
2 dígitos f l(x) = 0.14 × 103 = 140 f l(x) = 0.15 × 103 = 150
13
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
14
Métodos Numéricos con MATLAB
15
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
Como el error relativo más grande en las operaciones es 0.295 × 10−4 los
resultados tienen 5 dígitos signicativos ya que 0.295 × 10−4 = 2.95 × 10−5 <
5 × 10−5 .
16
Métodos Numéricos con MATLAB
si se utiliza una máquina decimal que usa una mantisa a k dígitos (corte)
entonces
f l(x) =0 · d1 d2 d3 · · · dp dp+1 dp+2 · · · dk × 10n
f l(z) =0 · d1 d2 d3 · · · dp αp+1 αp+2 · · · αk × 10n
Ahora,
17
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
Para
√ evitar la pérdida de dígitos signicativos el enunciado
x + 1 − 1 se puede presentar también como
2
√ √ √x2 + 1 + 1 x2
x2 + 1 − 1 = x2 + 1 − 1 √ =√
x2 + 1 + 1 x2 + 1 + 1
x2 0.01 0.01
√ ≈ = = 0.498756 × 10−2
2
x +1+1 1.00499 + 1 2.00499
(redondeo a 6 dígitos)
√
El valor real de x2 + 1 − 1 en√x = 0.1 es 0.498756211 × 10−2 .
El error relativo con la expresión x2 + 1 − 1 es:
4.88793913 × 10−4 < 5 × 10−4 . (cuatro cifras signicativas).
x2
El error relativo con la expresión √ es:
x2 + 1 − 1
4.230523758 × 10−7 < 5 × 10−7 (siete cifras signicativas).
Ejemplo 1.16. El valor del polinomio 3.5x2 − 4.9x evaluado en x = 5.8 es
89.32.
Si se usa aritmética de 3 dígitos redondeo, se tiene x2 ≈ 33.6, 3.5x2 ≈ 118,
18
Métodos Numéricos con MATLAB
19
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
1.6 Ejercicios
1. Escriba los números 275.5, 79.625 y 22 + 2−10 en base 2, 8 y 16.
0 10011111 01110000000000000000101
20
Métodos Numéricos con MATLAB
1 01111111 11000000000000000000000
(a) 1.0110101
(b) 11.0010010001
√
13. Los números del ejercicio anterior son aproximadamente 2 y π . Halle
el error de dichas aproximaciones; es decir, halle
√ √
(a) 2 − 1.0110101 (use 2=1.41421356237309 . . . )
(b) π − 11.0010010001 (use π =3.14159265358979 . . . )
21
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
15. El término epsilon de la máquina es el menor valor positivo tal que la
máquina es capaz de distinguir entre (1 + ) y 1. Este valor depende
del hardware y de cómo el compilador de un lenguaje de programación
almacena la mantisa de un número de punto otante. El epsilon de la
máquina para una mantisa normalizada (1 · f ) donde f se almacena en
ubicaciones de n bits es igual a 2−n . Para una mantisa no normalizada
(·1f ) que se almacena en ubicaciones de n bits, el epsilon de la máquina
es 21−n . El error al almacenar una cantidad x tiene una cota superior
|x|. (Akai, p. 60-61).Determine el epsilon de su máquina.
16. El epsilon de la máquina (ver el problema 15) permite estimar una
cota superior para el error en una operación. Sea f (x, y)el resultado
verdadero de una operación sobre x y y y sea el epsilon de la máquina.
El error E al calcular y almacenar f (x, y) está acotado por
∂f ∂f
E 6 B = |f (x, y) | + (1 + ) x + y
∂x ∂y
Los términos con las derivadas parciales explican los errores en la op-
eración debidos a representaciones inexactas de x y y ; la multiplicación
por (1 + ) y la adición de |f (x, y)| explica los errores al almacenar
el resultado.
Con el resultado del problema 15 (o un valor cticio de 10−7 para
), estimar la cota superior B para el error en z en las operaciones
siguientes. (Akai, p. 61).
17. Aplique la aritmética de redondeo a tres dígitos para realizar los sigu-
ientes cálculos. Calcule los errores absolutos y relativos con el valor
exacto determinado por lo menos a 5 dígitos.
22
Métodos Numéricos con MATLAB
22
π−
(c) 1
7
17
20. Suponga que los puntos (x0 , y0 ) y (x1 , y1 ) se encuentran en una recta
y que y1 6= y0 . Se cuenta con dos fórmulas para hallar la intersección x
de la línea:
x0 y1 − x1 y0 (x1 − x0 )y0
x= x = x0 −
y1 − yo y1 − yo
n
X xi
21. El polinomio de Taylor de grado n para f (x) = ex es .
i=0
i!
Use este polinomio y la aritmética de corte a tres dígitos para encontrar
una aproximación a e−5 mediante cada uno de los siguientes métodos.
9 9
X (−5)i X (−1)i 5i
(a) e −5
≈ =
i=0
i! i=0
i!
1
(b) e−5 = 1/e5 ≈ 9
X (5)i
i=0
i!
23
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
√
(a) x2 + 1 − x
(b) x−3 (sin x − x)
(c) (cos x − e−x )/ sin x
(d) sinh x − tanh x
23. Suponga que a 6= 0 y que b2 −4ac > 0 y conside la ecuación ax2 +bx+c =
0. Sus raíces se pueden hallar mediante la conocida fórmula:
(a)
√ √
x1 = (−b + b2 − 4ac)/(2a) x2 =(−b − b2 − 4ac)/(2a)
(a) x2 − 1000.001x + 1 = 0
(b) x2 + 10000.0001x + 1 = 0
24
Métodos Numéricos con MATLAB
10−15
(b)
1015 ln(1 + 10−15 ) − 1
Sugerencia : Utilice la serie de Taylor para aproximar ln(1 + x)
0.13 × 10−15
(c) use radianes.
cos(10−10 ) − 1
Sugerencia : Utilice serie de Taylor para aproximar cos x
25
CAPITULO 1. REPRESENTACIÓN NUMERICA Y ERRORES
26
Capitulo 2
Ceros de Funciones
En este capitulo se estudia el problema de encontrar los valores que hacen
que una función de variable y valor real se anule (Figura 2.1), es decir; dada
una función f : R → R, debemos encontrar los valores de x para los cuales
f (x) = 0. Dada una función f (no necesariamente continua), un cero de f ,
es un número α tal que f (α) = 0.
27
CAPITULO 2. CEROS DE FUNCIONES
este problema.
f(a)
[ | ]
a c b
f(a)f(b) < 0
f(b)
28
Métodos Numéricos con MATLAB
longitud es igual a la mitad del intervalo original. Si f (a)f (c) > 0, entonces
f (c)f (b) < 0 y en este caso se renombra a c como a. En ambos casos se ha
generado un nuevo intervalo que contiene un cero de f , y el proceso puede
repetirse. Lo anterior genera las sucesiones {an }, {bn } y {cn } (gura 2.3).
Se deja como ejercicio para el lector demostrar que las dos primeras son
monótonas crecientes y decrecientes respectivamente, además se encuentran
acotadas, lo cual garantiza la convergencia de ambas sucesiones.
29
CAPITULO 2. CEROS DE FUNCIONES
1 0 2 1 0.158529
2 1 2 1.5 0.496242 0.333333
3 1 1.5 1.25 0.186231 0.2
4 1 1.25 1.125 0.015051 0.111111
5 1 1.125 1.0625 -0.071827 0.0588235
6 1.0625 1.125 1.09375 -0.028362 0.0285714
7 1.09375 1.125 1.109375 -0.006643 0.0140845
8 1.1093750 1.125 1.1171875 0.004208 0.0069930
9 1.1093750 1.1171875 1.11328125 -0.001216 0.0035087
30
Métodos Numéricos con MATLAB
2.1.1 Convergencia
Teorema 2.2 (Convergencia Bisección). Supongamos que f es continua en
n=0 la sucesión de puntos medios de los in-
[a, b] y f (a)f (b) < 0. Sea {cn }∞
tervalos generados por el método de bisección. Entonces {cn } converge a un
punto α ∈ [a, b] tal que f (α) = 0 y, además
b−a
|cn − α| 6 , n>1
2n
Proof. El teorema del valor intermedio garantiza la existencia de α ∈ [a, b]
tal que f (α) = 0. Por construcción del método, para todo n > 1, se tiene
que
b−a
bn − an = n−1 (2.1)
2
Además α esta en cada intervalo (an , bn ). La distancia entre cn y α no puede
superar la mitad de la longitud de cada intervalo, es decir
b n − an
|α − cn | 6
2
De (2.1) se tiene que
b−a
b−a
|α − cn | 6 2n−1
= (2.2)
2 2n
Aplicando limite cuando n → ∞, en la desigualdad anterior se tiene que la
sucesión de puntos medios converge a al cero α. q
31
CAPITULO 2. CEROS DE FUNCIONES
32
Métodos Numéricos con MATLAB
33
CAPITULO 2. CEROS DE FUNCIONES
posible hallar los ceros trabajando con la derivada f 0 (x), que se anula en un
cero de multiplicidad mayor a 1. A continuación se da un codigo basico en
MATLAB, que implementa el método de Bisección, Se deja como ejercicio
para el lector, cambiar el codigo para que dada una tolerancia, calcule el
número de iteraciones necesarias para que la aproximación al cero cumpla
con la tolerancia (2.2).
Algoritmo 1 (Algoritmo Bisección). Dada una función continua f, dos
números a y b tales que, a<b y f(a)*f(b)< 0 y una tolerancia tol> 0.
while (b-a)/2 > tol
c=(a+b)/2;
if f(c)==0
a=c;
b=c;
end
if sign(f(a))==sign(f(b))
a=c;
else
b=c;
end
end
34
>%%,-5)?) 5)& &%()$'%& -*. .%(')& @% ,%$*. -%$@
%$(%..)@) %$'.% @*& +'%.)@*& &7(%&+B*&2
Métodos Numéricos con MATLAB
#&'% ,<
%'*@*
,* %5 ,<
%'*@* @
87% %5 *.@%$ @%
>%/%.%$(+)G
!"# $%&' ()*"
# "
567" .-) 8-97
# ! ,%-:: NCO: B*52
2.2.1 Convergencia
Teorema 2.3 (Convergencia Regula Falsi). Sea f una función dos veces
00
%
w−α
f (x)
M= max 0 <1 (2.3)
2 x∈[a,b] f (x)
con92 # w =1
w = b o!"#$ %* +1 el método
a según el caso, entonces ! de !la 1 % +
Regula Falsi!2 $
converge a α.
! "
Proof. Ver referencia [9]. $ %
;2 #%&" $ 1 $ +! q
35 +! +
M2 3+ &+E$* %!! "1 &+E$* #%&" $ !!: A)(%. $ 1 #
)@%,<
)& &+E$* # !! 1 &+E$* # !! A)(%.
CAPITULO 2. CEROS DE FUNCIONES
Algoritmo 2 (Algoritmo Regula Falsi). Dada una función f dos veces difer-
enciable, dos números a y b tales que, a<b y f(a)*f(b)< 0 y una tolerancia
tol> 0.
c=a;
while abs(f(c)) > tol
c=(a*f(b)-b*f(a))/(f(b)-f(a));
if f(c)==0
a=c;
b=c;
end
if sign(f(a))==sign(f(b))
a=c;
else
b=c;
end
end
f 00 (z)
0
f (x) = f (x0 ) + f (x0 )(x − x0 ) + (x − x0 )2 , (2.4)
2
z esta entre x0 y x.
36
Métodos Numéricos con MATLAB
f 00 (z)
0 = f (x0 ) + f 0 (x0 )(α − x0 ) + (α − x0 )2 (2.5)
2
f (xn )
xn+1 = xn − ,n>0 (2.7)
f 0 (xn )
37
CAPITULO 2. CEROS DE FUNCIONES
f (x) = 3x + sin x − ex
0
f (x) = 3 + cos x − ex
f (x0 ) (−1) 1
x 1 = x0 − 0
=0− =
f (x0 ) 3 3
f (x1 ) 1 −0.068417728
x2 = x1 − 0 = − = 0.360170713
f (x1 ) 3 2.549344521
f (x2 ) −6.2798651 × 10−4
x 3 = x2 − 0 = 0.360170713 − = 0.33357967
f (x2 ) 2.502262549
38
Métodos Numéricos con MATLAB
(x − xn )2 00
f (x) = f (xn ) + (x − xn )f 0 (xn ) + f (zn ), zn ∈ (xn , x)
2
Haciendo x = α y teniendo en cuenta que f (α) = 0 se tiene,
(α − xn )2 00
0 = f (xn ) + (α − xn )f 0 (xn ) + f (zn ), zn ∈ (xn , α)
2
00
f (xn ) 2 f (zn )
0= 0 + (α − xn ) + (α − xn )
f (xn ) 2f 0 (xn )
00
f (xn ) 2 f (zn )
−α = −xn + 0 + (α − xn )
f (xn 2f 0 (xn )
00
f (xn ) 2 f (zn )
−α = − xn − 0 + (α − xn )
f (xn ) 2f 0 (xn )
2.3.1 Convergencia
Teorema 2.4 (Convergencia Newton). Sea f una función dos veces diferen-
ciable en un intervalo alrededor de α con f (α) = 0 y f 0 (α) 6= 0. Si x0 esta lo
sucientemente cerca a α, la iteración (2.7) del método de Newton converge
a α.
39
CAPITULO 2. CEROS DE FUNCIONES
Una condición inicial x0 ∈ I tal que M |ε0 | < 1. Usando (2.8) se tiene que
|ε1 | ≤ M |ε0 |2 = M |ε0 ||ε0 | < |ε0 | ≤ ε
luego x1 ∈ I , ya que:
|ε1 | < ε
|x1 − α| < ε
−ε < x1 − α < ε
−ε + c < x1 < ε + c
x1 ∈ [c − ε, c + ε]
Además,
M |ε1 | ≤ M 2 |ε0 |2 < 1
M |ε1 | ≤ (M |ε0 |)2 < 1
Suponga que xn ∈ I y M |εn | < 1, entonces
|εn+1 | ≤ M |εn |2 = M |ε0 ||ε0 | < |εn | ≤ ε
Por lo tanto xn+1 ∈ I y
M |εn+1 | ≤ (M |εn |)2 < 1 (2.9)
Se tiene que xn ∈ I y M |εn | < 1 para todo n. Además, de (2.9) se tiene
n
M |εn+1 | ≤ (M |ε0 |)2
1 n
|εn+1 | ≤ (M |ε0 |)2
M
Al ser M |ε0 | < 1, limn→∞ εn = 0 y por lo tanto xn → α. Tomando limites
en (2.8)
εn+1 f 00 (c)
lim 2 = 0
n→∞ εn 2f (c)
Por la continuidad de f 00 y porque zn → α cuando n → ∞
q
40
Métodos Numéricos con MATLAB
es decir, si
1
|x0 − α| < 00
maxx∈I ff 0 (x)
1 (x)
2
lo cual indica, que tan cerca debe estar x0 del cero α. La estructura de la
condición anterior, indica que el método presentara problemas de convergen-
cia, si una de las iteraciones se anula en la primera o segunda derivada de f .
Más adelante se trabajar un algunas ejemplos donde el método de Newton
no converge.
Por otro lado, la relación de los errores que se describe en (2.8), indica
que cada error es proporcional a la segunda potencia del error previo. Es
decir, que si se comienza con una aproximación del cero de f con 1 dígito
correcto, después de una iteración se tendría dos dígitos correctos; después
de dos iteraciones cuatro dígitos correctos; y después de tres iteraciones ocho
dígitos correctos, etc.
Ejemplo 2.4. Halle una expresión para aproximar
√ la raíz cuadrada de un
número R > 0. Use la expresión para aproximar 5.
√
x= R
x2 = R
x2 − R = 0, x es la raíz cuadrada de R
41
CAPITULO 2. CEROS DE FUNCIONES
!
1 5
x1 = x0 + = 2.25
2 x0
!
1 5
x2 = x1 + = 2.236111111 . . .
2 x1
!
1 5
x3 = x2 + = 2.236067978 . . .
2 x2
√
en una calculadora 5 = 2.236067977 . . .
Existen funciones y puntos iniciales para los que el método de Newton
fracasa. La Figura 2.9 muestra una función en la que la gráca tiene una
forma especial y la cual genera que la sucesión entre en un ciclo innito, es
decir, diverge.
La Figura 2.10 muestra una función y una condición inicial x0 , que hace que
el método se indetermine. ¾ Porque divergen las iteraciones anteriores ?
42
Métodos Numéricos con MATLAB
43
CAPITULO 2. CEROS DE FUNCIONES
while abs(f(c))>tol
x0=c;
c=x0-x0-(f(x0)/g(x0));
end
f (xn )
xn+1 = xn −
f 0 (xn )
f (xn ) − f (xn−1 )
f 0 (xn ) ≈
xn − xn−1
0
Al reemplazar esta aproximación de f (xn ) en la fórmula de Newton se
obtiene:
f (xn )(xn − xn−1 )
xn+1 = xn − n > 1, (2.10)
f (xn ) − f (xn−1 )
44
Métodos Numéricos con MATLAB
Ejemplo 2.5. Efectúe tres iteraciones del método de la secante para la fun-
ción f (x) = x sin x − 1 con x0 = 1 y x1 = 2.
f (x1 )(x1 − x0 )
x2 = x1 −
f (x1 ) − f (x0 )
(2 sin 2 − 1)(2 − 1)
=2− = 1.162240449
(2 sin 2 − 1) − (sin 1 − 1)
f (x2 )(x2 − x1 )
x3 = x2 − = 1.236422098
f (x2 ) − f (x1 )
f (x3 )(x3 − x2 )
x4 = x3 − = 1.113511445
f (x3 ) − f (x2 )
45
CAPITULO 2. CEROS DE FUNCIONES
2.4.1 Convergencia
Teorema 2.5 (Convergencia Secante). Sea f una función dos veces difer-
enciable en un intervalo que contiene a una raíz α de f y supongamos que
f 0 (α) 6= 0. Si x0 y x1 estan lo sucientemente proximos a α, entoces la
sucesión denida en (2.10) converge a α.
q
f 00 (α)
Si 0 es grande, habra que tomar x0 y x1 muy proximos a α, además
2f (α)
si la primera o segunda derivada se anula, el método no funciona bien.
El método de la secante converge a la solución más lentamente que el método
de Newton, pero tiene la ventaja de no usar la derivada en cada iteración.
c=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
while abs(f(c))>tol
x0=x1;
x1=c;
c=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
end
46
Métodos Numéricos con MATLAB
y=x
f (x)
47
CAPITULO 2. CEROS DE FUNCIONES
x2 − 2x − 3 = 0
x2 = 2x + 3
√
x = 2x + 3
√
x = g(x) = 2x + 3
x0 = 4
p
x1 = g(x0 ) = 2(4) + 3 = 3.31662
p
x2 = g(x1 ) = 2(3.31662) + 3 = 3.10375
p
x3 = g(x2 ) = 2(3.10375) + 3 = 3.03439
p
x4 = g(x3 ) = 2(3.03439) + 3 = 3.01144
p
x5 = g(x4 ) = 2(3.01144) + 3 = 3.00381
x2 − 2x − 3 = 0
x(x − 2) − 3 = 0
3
x= = g(x)
x−2
48
Métodos Numéricos con MATLAB
49
CAPITULO 2. CEROS DE FUNCIONES
x2 − 2x − 3 = 0
2
x − 2x − 3 = 0 x2 − 2x − 3 = 0
x(x − 2) = 3
x2 = 2x + 3 x2 − 2x − 3
3 =0
x3 = 2x2 + 3x x−2= 2x − 2
p x (x2 − 2x − 3)
3
x = 2x2 + 3x 3 x− =x
x= +2 2x − 2
= g1 (x) x
= g3 (x)
= g2 (x)
2.5.1 Convergencia
Teorema 2.6. Si g es continua [a, b] y g(x) ∈ [a,b] para toda x ∈ [a, b],
entonces g tiene un punto jo en [a, b]. Si además g 0 (x) existe en (a, b) y
existe una constante positiva K < 1 con |g 0 (x)| 6 K , para todo x ∈ (a, b),
entonces el punto jo en [a, b] es único.
50
Métodos Numéricos con MATLAB
del valor intermedio existe un c ∈(a,b) tal que t(c) = 0, es decir g(c) − c = 0,
g(c) = c, luego c es un punto jo de g .
Si se supone además que |g 0 (x)| 6 K < 1 y que c1 y c2 son dos puntos
jos de g en [a, b] con c1 6= c2 , por el teorema del valor medio, existe un
número z entre c1 y c2 tal que
g(c2 ) − g(c1 )
= g 0 (z) o |g(c2 ) − g(c1 )| = |g 0 (z)||c2 − c1 |
c2 − c1
Como c1 y c2 son puntos jos de g , g(c2 ) = c2 y g(c1 ) = c1 , entonces
|c2 − c1 | = |g(c2 ) − g(c1 )| = |g 0 (z)||c2 − c1 | 6 k|c2 − c1 | < 1|c2 − c1 | (porque
|g 0 (x)| 6 k < 1)
Luego, |c2 − c1 | < |c2 − c1 |, lo cual es una contradicción, por lo tanto el
punto jo de g en [a, b] es único.
q
El ejemplo anterior muestra que las hipótesis del teorema 2.5.1 son su-
cientes para garantizar un punto jo único, pero no son necesarias.
El siguiente resultado da algunas pistas sobre los procedimientos que se
deben seguir y algunos que se deben excluir para escoger funciones que pro-
duzcan sucesiones que converjan a un punto jo.
51
CAPITULO 2. CEROS DE FUNCIONES
El teorema anterior implica que existe un punto jo único en [a, b], ahora
si se aplica esta desigualdad inductivamente se obtiene:
Corolario 2.1. Sí g satisface las hipótesis del teorema anterior, una cota
para el error al aproximar el punto jo x de g por xn esta dada por:
52
' ' %
C! "'1 # , $#!& ? ')(2)0'& $#! , " " A
$#! , $ '! & "
# #
' %
.'42 # ! , 10#/ 3'4 *+' &# > % ## % 'A
'& @#3'45')('7 B& D;
#
$# ! " #(7
! " !!"
!
" !!"
! !
%&'()*' ('+,)&-)+.) %&'()*' 12,)&-)+.)
!)+ )*(/0)&/" !)+ )*(/0)&/"
IJ
53
CAPITULO 2. CEROS DE FUNCIONES
!
!
" !$" # #
" !!"
" !!"
# # " !$" # $
!
%&'()*' ('+,)&-)+.) !'*(/01+.)" %&'()*' 2/,)&-)+.) !'*(/01+.)"
!" !$"! # # !" !$"! % #
pare esta estimación teórica con!la & cantidad que realmente se requiere, use
-2 # " # $ # " # $ 3 # "!# !*"*
x0 = 3.5 "! " "" ! #
√
g(x) = & 2x ' + " ! ! función
! + 3 en [2, 4] es una
! # 3 continua y creciente. Basta
52 # " # $
evaluar g en!los" ! # " # $ # " ! # $ (
"! " !por
extremos del intervalo #" que g es creciente y por lo tanto su
valor mínimo√ y su valor máximo se encuentran en los extremos del intervalo.
0
g (x) = 1/( 2x + 3) > 0
!" #$%&'(') *&%+,&*-') (% '+(%. )/0%+*'+!
√
*"&+"#, '()(-( 6#! ! 7.! "!89: 5# g(2) $ ; #2.65
= # " 7#≈ 7.! <7.-18(. $ =#-#/ -(.01.>
7!&#.0# 51<#"#.-1!4$# # -#"-! 5#g(4)
!3 $=$ &11
√
* 67'(.?!&(/
≈ 3.32 !5#&8!/ @7#
Luego,# "g(x)
!# $ ∈
# "[g(2), %%% $ =
!# $ g(4)] # #! [2.65,
$%
"!# $
! #!%
(% . #Por
3.32] "!lo
#$& tanto
( g(x) ∈ [a, b] =
,-./
"&$! ! $ ,-./ '"&$ # #!% "!#
$
" ! !# '!" $0
""# " ! " "#
Métodos Numéricos con MATLAB
1 1
|g 0 (x)| = √ <p ≈ 0.378
2x + 3 2(2) + 3
Por lo tanto se necesitan unas seis iteraciones para lograr una aproxi-
mación exacta dentro de 10−2 .
Este ejercicio ya se resolvió al comienzo de esta sección y se obtuvo x5 =
3.00381. Observe que el error real |x5 − x| = |3.00381 − 3| = 0.00381 <
10−2 = 0.01.
Cabe señalar que el corolario no da más que una cota del número de
iteraciones necesarias. En la mayoría de casos se requiere un número menor
de iteraciones.
El siguiente codigo en MATLAB describe la iteración basica del punto
jo. Se utiliza como criterio de parada el error absoluto entre las dos ultimas
iteraciones. Se deja como ejercicio para el lector, implementar otros criterios
de parada, y programar herramientas de gracación. Por otro lado se puede
implementar en el algoritmo, la cota de error del Colorario 2.1.
55
CAPITULO 2. CEROS DE FUNCIONES
x1=f(x0);
while abs(f(x1)-f(x0))>tol
x0=x1;
x1=f(x1);
end
2.6 Ejercicios
√
1. A n de localizar las raíces de la ecuación x3 + x=6
2. Sea f (x) = (x + 2)(x + 1)2 x(x − 2). ¾En cuál cero de f converge el
método de bisección en los siguientes intervalos?
4. ¾Verdadero o falso?
56
Métodos Numéricos con MATLAB
10. Se construye una caja sin tapa a partir de una hoja metálica rectangular
que mide 10 por 16 centímetros. ¾Cuál debe ser el lado de los cuadrados
que hay que recortar en cada esquina para que el volumen de la caja
sea 100 centímetros cúbicos? Precisión: 0.000000001 centímetros.
57
CAPITULO 2. CEROS DE FUNCIONES
11. La función descrita por f (x) = ln(x2 + 1) − e0.4x cos πx tiene una can-
tidad innita de ceros.
P
A= [(1 + i)n − 1]
i
(a) Pruebe que h(x) = f (x)/f 0 (x) tiene una raíz simple en p.
(b) Pruebe que si se aplica el método de Newton-Raphson para hallar
la raíz simple p de h(x), entonces se obtiene g(x) = x − h(x)/h0 (x)
que, en este caso, es
f (x)f 0 (x)
g(x) = x −
(f 0 (x))2 − f (x) f 00 (x)
58
Métodos Numéricos con MATLAB
14. Aplique el método de la secante para obtener soluciones con una exac-
titud de 10−3 para las ecuaciones dadas.
15. La ecuación e−x = cos x tiene una raíz cerca de 1.29. Diga cuál de
las tres funciones siguientes sería preferible utilizar como función de
iteración a n de localizar la raíz
16. Use el manejo algebraico para demostrar que las siguientes funciones
tienen un punto jo en p exactamente cuando f (p) = 0, donde f (x) =
x4 + 2x2 − x − 3.
59
CAPITULO 2. CEROS DE FUNCIONES
60
Capitulo 3
Sistemas de Ecuaciones Lineales
Un sistema de ecuaciones lineal con n ecuaciones y n incognitas
61
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
n
! p1
X
kxkp = |xi |p
i=1
62
Métodos Numéricos con MATLAB
p=∞
1
p=5
0.5 p=1
−0.5
−1
−1 −0.5 0 0.5 1
63
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
verge a x si
lim
x(k) − x
= 0
k→∞
64
Métodos Numéricos con MATLAB
n
!
X
2. Norma ∞:kAk∞ = max |aij | (máxima suma en las las )
16i6n
j=1
n X
n
!1/2
X
kAkF = a2ij
i=1 j=1
kABk ≤ kAkkBk
kAxk ≤ kAkkxk
65
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
3 −1 4
A = −5 0 2
1 −2 6
Columnas F ilas
P3 P3
|ai1 | = |3| + | − 5| + |1| = 9 |a1j | = |3| + | − 1| + |4| = 8
i=1 j=1
P3 P3
|ai2 | = | − 1| + |0| + | − 2| = 3 |a2j | = | − 5| + |0| + |2| = 7
i=1 j=1
P3 P3
|ai3 | = |4| + |2| + |6| = 12 |a3j | = |1| + | − 2| + |6| = 9
i=1 j=1
x1 + 1.01x2 = 2.01
0.99x1 + x2 = 1.99
66
Métodos Numéricos con MATLAB
≤
A−1
(b − b̄)
kx − x̄k ≤
A−1
b − b̄
kAxk
−1
kx − xk ≤
A
b − b
kbk
−1
b − b̄
kx − x̄k ≤ kAk kxk
A
kbk
kx − xk
b−b
≤ kAk
A−1
kxk kbk
kx − xk
b − b
≤ κ(A) (3.3)
kxk kbk
67
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
donde:
kx − xk krk
≤ κ(A)
kxk kbk
Columns 1 through 4
68
Métodos Numéricos con MATLAB
Columns 5 through 7
>> cond(H)
ans =
4.753673563703924e+008
ans =
1.000000000659643
Sí se multiplica H por su inversa
>> inv(H)*H
ans =
Columns 1 through 4
69
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
Columns 5 through 7
ans =
1.0e-009 *
Columns 1 through 4
Columns 5 through 7
70
Métodos Numéricos con MATLAB
1
ri =
max |aij |
16j6n
Por ejemplo si
1 108 −1 0 1/2
A= , A =
2 0 10−8 −5 × 10−9
10−8 1
1 108 1/108 1 108
A= →
− =
2 0 1/2 2 0 1 0
71
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
0 1
Observe que Ȧ =−1
y ahora K∞ (Ȧ) = (1 + 10−8 )(1 +
1 −10−8
10−8 ) = 1.00000002. Luego Ȧ es una matriz bien condicionada.
Cuando se va a resolver un sistema Ax = b, la equilibración por las se
escribe como:
ri , i=j
(RA)X = Rb, donde R = [Rij ], Rij =
0, i 6= j
1 108 x1 3
=
2 0 x2 5
1/108 0 1 108 x1 1/108 0 3
=
0 1/2 2l 0 x2 0 1/2 5
| {z }| {z }| {z } | {z } | {z }
R A x R b
−8 8
10 1 x1 3/10
=
1 0 x2 5/2
Para la matriz
72
Métodos Numéricos con MATLAB
1 108
A= C1 = 1/2, C2 = 1/108
2 0
1/2 1/108
1 108 1 10 8
1/2 1
A= →
− =
2 0 2 0 1 0
−1 0 1
Ȧ =
1 −1/2
y ahora K∞ (Ȧ) = (1/2 + 1)(1 + 1/2) = 2.25. Luego Ȧ es una matriz bien
condicionada.
Si se va ha resolver un sistema Ax = b, el equilibrio por columnas se
escribe como: (AC)(C −1 x) = b, donde:
(
Cj sí i = j
Cij =
0 sí i 6= j.
1 108 1/2 0 2 0 x1 3
8 8 =
2 0 0 1/10 0 10 x2 5
| {z }| {z }| {z }| {z } | {z }
A C C −1 x b
1/2 1 2x1 3
=
1 0 108 x2 5
73
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
n=length(b);
for i=1:n
x(i)=b(i)/A(i,i);
end
74
Métodos Numéricos con MATLAB
bn
xn = y
ann
n
P
bi − aij xj
j=i+1
xi = para i = n − 1, n − 2, . . . , 1 (aii 6= 0).
aii
El código que permite solucionar este tipo de sistemas, se muestra a contin-
uación.
Algoritmo 7 (Algoritmo matriz triangular superior). Dada un sistema de
ecuaciones lineal Ax = b, con matriz A triangular superior y no singular.
n=length(b);
x(n)=b(n)/A(n,n);
for i=n-1:-1:1
s=0;
for k=i+1:n
s=s+A(i,k)*x(k);
end
x(i)=(b(i)-s)/A(i,i);
end
Si A es Triangular inferior, es decir aij = 0 para todo i > j y no singular.
a11 0 . . . 0
a21 a22 . . . 0
A = .. .. . . ..
. . . .
an1 an2 . . . ann
75
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
a11 x1 = b1
a21 x1 + a22 x2 = b2
.. ..
. .
an1 x1 + an2 x2 +an3 x3 + . . . + ann xn = bn
b1
x1 =
a11
i−1
P
bi − aij xj
j=1
xi = para i = 2, 3, . . . , n (aii 6= 0).
aii
Ejercicio 3. Construya el código de una función en MATLAB que dado un
sistema de ecuaciones lineales con matriz de coecientes triangular inferior,
calcule el vector solución x.
Sí A es ortogonal si su inversa es igual a su transpuesta, es decir A−1 = At .
En este caso, el sistema Ax = b tiene como solución x = At b, ya que si Ax = b
entonces:
Ax = AAt b
= AA−1 b
= Ib
=b
76
Métodos Numéricos con MATLAB
for i=1:m
for j=1:n
H(i,j)=1/(i+j-1);
end
end
H =
1 1/2 1/3
1/2 1/3 1/4
1/3 1/4 1/5
x =
3
-24
30
77
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
x1 + 2x2 + x3 = 5
2x1 + 4x3 = 22
4x1 + 2x2 + 2x3 = 18
78
Métodos Numéricos con MATLAB
x1 + 2x2 + x3 = 5
−4x2 + 2x3 = 12
−5x3 = −20
.
58.9 .. 59.2
!
E1 0.03
E2 5.31 −6.10 ... 47.0
.
58.9 .. 59.2
!
0.03
E2 − 177E1 0 −10431.4 ... −10431.4
79
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
.
58.9 .. 59.2
!
E1 0.03
E2 5.31 −6.10 ... 47.0
.. !
0.03 58.9 . 59.2 0.03x1 + 58.9x2 ≈ 59.2
E2 − 177E1 −10400 ..
. −10300 −10400x2 ≈ −10300
Si x denota la solución aproximada del sistema, entonces x = (x1 , x2 ) =
(30, 0.99)
.
58.9 .. 59.2
!
0.03
5.31 −6.10 ... 47.0
,
El multiplicador es 177.
.
58.9 ..
!
0.03 59.2
E2 − 177E1 .
0 −10400 .. −10500
80
Métodos Numéricos con MATLAB
81
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
3.4.2 Factorización LU
El objetivo de este método es factorizar la matriz A como el producto de un
matriz triangular inferior L y una matriz triangular superior U ; y después
resolver el sistema Ax = b en dos etapas como se muestra a continuación,
Ax = b, como A=LU entonces,
(LU )x = b
L(U x) = b, si se toma U x = y
Ly = b.
Entonces para encontrar la solución X del sistema, primero se resuelve el
sistema Ly = b y luego el sistema U x = y .
El sistema Ly = b es un sistema fácil de resolver ya que L es una matriz
triangular inferior y se resuelve con sustitución hacia delante.
El sistema U x = b también es un sistema fácil de resolver ya que U es una
matriz triangular superior y se resuelve con sustitución hacia atrás.
Ejemplo 3.11. Resuelva el sistema usando factorización
60x1 + 30x2 + 20x3 = 180
30x1 + 20x2 + 15x3 = 115
20x1 + 15x2 + 12x3 = 86
60 30 20 x1 180
30 20 15 x2 = 115 AX = b
20 15 12 x3 86
La matriz A se puede factorizar como
60 30 20 1 0 0 60 30 20
30 20 15 = 1/2 1 0 0 5 5
20 15 12 1/3 1 1 0 0 1/3
| {z } | {z }| {z }
A L U
82
Métodos Numéricos con MATLAB
y1 = 180
1/2y1 + y2 = 115
1/3y1 + y2 + y3 = 86
Usando sustitución hacia adelante se obtiene y1 = 180, y2 = 25, y3 = 1.
Luego
180
y = 25
1
El segundo paso es resolver el sistema U x = y
60 30 20 x1 180
0 5 5 x2 = 25
0 0 1/3 x3 1
83
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
l11 u11 l11 u12 ... l11 u1n
l21 u11 l21 u12 + l22 u22 l21 u1n + l22 u2n
A= .. .. ..
. . .
ln1 u11 ln1 u12 + ln2 u22 · · · ln1 u1n + ln2 u2n + · · · + lnn unn
Igualando las componentes de las matrices se obtiene:
84
Métodos Numéricos con MATLAB
60 30 20 1 0 0 60 30 20
30 20 15 = 1/2 1 0 0 5 5
20 15 12 1/3 1 1 0 0 1/3
√ √ √ √
60 30 20 √ 60 √0 0 60 60/2
√ 60/3
√
30 20 15 = 60/2 5 0 0 5 5
√ √ √ √
20 15 12 60/3 5 3 3 0 0 3 3
85
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
Proof. Ver q
MATLAB posee la función [L,U,P] = lu(A), que dada una matriz cuadrada
A, genera tres matrices, L, U y P , tales que: P A = LU . Si la eliminación se
presenta sin intercambio de renglones, P es la matriz identidad.
Denición 3.6. La matriz An×n es estrictamente dominante en sentido di-
n
agonal (o diagonalmente dominante, EDD) si |aii | > |aij | i=1, 2, 3,. . . ,
P
j=1
n
Ejemplo 3.13. Sea
8 −4 0
A= 2 5 1
3 −7 −12
86
Métodos Numéricos con MATLAB
x(K) = T x(K−1) + C
87
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
(
aij si i < j
uij =
0 en otro caso
(
aij si i > j
lij =
0 en otro caso
Claramente, A = D+L+U . Considerando el sistema Ax = b y reemplazando,
se obtiene
Ax = b
(D + L + U )x = b
Dx + (L + U )x = b
Dx = b − (L + U )x
x = D−1 (b − (L + U )x)
x = D−1 (−(L + U )x) + D−1 b
Ax = b
(D + L + U )x = b
(D + L)x + U x = b
(D + L)−1 x = b − U x
x = (D + L)−1 (b − U x)
x = (D + L)−1 (−U x) + (D + L)−1 b
88
Métodos Numéricos con MATLAB
6x1 − x2 + 2x3 = 21
4x1 − 8x2 + x3 = 5
−3x1 + 4x2 + 10x3 = 48
89
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
0 -1/6 1/3
-1/2 0 -1/8
-3/10 2/5 0
>> radio=max(abs(eig(Tj)))
radio =
0.447015782662384
Por lo tanto, para toda condición inicial, el método de Jacobi converge. Para
el método de Gauss-Seidel Tg = −(D + L)−1 U
−1
6 0 0 0 0 0 0 −1 2
Tg = − 0 −8 0 + 4 0 0 0 0 1
0 0 10 −3 4 0 0 0 0
1
6
0 0 0 −1 2
1 −1
Tg =
12 8
0 0 0 1
1 1 1
60 20 10
0 0 0
>> Tg=(-1)*inv(D+L)*U
Tg =
0 1/6 -1/3
0 1/12 -1/24
0 1/60 -1/12
>> radio=max(abs(eig(Tg)))
radio =
57/721
El radio espectral se calculó utilizando el comando format rat que hace que
MATLAB exprese los resultados en terminos de fracciones, si se desea cono-
cer el valor del radio se utiliza format long y se obtiene:
90
Métodos Numéricos con MATLAB
radio =
0.079056941504209
Así, el método de Gauss-Seidel converge para todo condición inicial que se
tome.
Si se desea trabajar con matrices de un tamaño considerable, se presentara
un problema al calcular el radio espectral, ya que el computo del mismo,
representa un problema. El siguiente teorema garantiza que para cierto tipo
de matrices, es suciente examinar si la matriz A asociada al sistema de
ecucaciones, es es estrictamente dominante en sentido diagonal (EDD).
Teorema 3.6. Si A es estrictamente dominante en sentido diagonal, en-
tonces con cualquier elección de x(0) ,
tanto el método de Jacobi como el de
∞
Gauss-Seidel dan origen a sucesiones x(k) k=1 que convergen a la solución
única de Ax = b. [3].
Aunque esta condición parece ser muy restrictiva varios sistemas lineales
poseen esta propiedad.
Por ejemplo, el sistema
6x1 − 2x2 + x3 = 11
x1 + 2x2 − 5x3 = −1
−2x1 + 7x2 + 2x3 = 5
no tiene una matriz A diagonalmente dominante
6 −2 1
A= 1 2 −5
−2 7 2
Sin embargo, si se reordenan las ecuaciones, resulta un sistema lineal de
modo que la matriz de coecientes es diagonalmente dominante. En este caso
intercambiando las las 2 y 3
91
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
6x1 − 2x2 + x3 = 11
6 −2 1
−2x1 + 7x2 + 2x3 = 5 A = −2 7 2
1 2 −5
x1 + 2x2 − 5x3 = −1
function x=Jacobi(A,b,x0,tol)
n=length(b);
D=zeros(n);
L=zeros(n);
U=zeros(n);
for i=1:n
D(i,i)=A(i,i);
for j=1:n
if j>i
U(i,j)=-A(i,j);
elseif j<i
L(i,j)=-A(i,j);
end
end
end
Tj=inv(D)*(L+U);
Cj=inv(D)*b;
x=Tj*x0+Cj;
while abs(norm(x)-norm(x0))>tol
92
Métodos Numéricos con MATLAB
x0=x;
x=Tj*x0+Cj;
end
3.6 Ejercicios
1. Usando eliminación gaussiana, resuelva el sistema
x + 1/2y + 1/3z = 8
1/2x + 1/3y + 1/4z = 8
1/3x + 1/4y + 1/5z = 7
(a)
Solución real x1 = 1, x2 = 10
(b)
93
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
94
Métodos Numéricos con MATLAB
(a)
2x1 − x2 = 3
−x1 + 2x2 − x3 = −3
−x2 + 2x3 = 1
(b)
4x1 + x2 − x3 =7
x1 + 3x2 − x3 =8
−x1 − x2 + 5x3 + 2x4 = −4
2x3 + 4x4 =6
0 1
8. Demuestre que la matriz A = no tiene una factorización LU .
1 1
1 5
9. Determine la factorización LU de la matriz en la que L y
3 16
U tienen elementos diagonales unitarios.
6 10 0
10. Determine la factorización LU de la matriz 12 26 4 en donde
0 9 12
L es una matriz triangular inferior con doses en su diagonal principal.
11. Una matriz que es simétrica y denida positiva (SPD) tiene una raíz
cuadrada X que es SPD.
De este modo X 2 = A. Encuentre X si
13 10
A=
10 17
95
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
1 2 −1
A= 2 4 0
0 1 −1
(a)
0 2 3
1 1 −1
0 −1 1
(b)
1 2 −1
1 2 3
2 −1 4
1 0 −1
14. Sea A = 0 1 1 , Calcule todos los valores de α para los cuales
−1 1 α
(a) A es singular
(b) A es estrictamente dominante en sentido diagonal
(c) A es simétrica
15. Para los vectores en los incisos a) y b), evalúe las normas k∗kp , p =
1, 2, ∞. Para las matrices en los incisos c) y d), evalúe las normas para
p = 1, 2, ∞.
96
Métodos Numéricos con MATLAB
9x + 4y + z = −17
x − 2y − 6z = 14
x + 6y = 4
19. Aplique el método de Jacobi para resolver los sistemas lineales, con una
tolerancia o error de 10−3 en la norma innito. Use x(0) = 0.
a) 3x1 − x2 + x3 = 1 b) 10x1 − x2 = 9
3x1 + 6x2 + 2x3 = 0 −x1 + 10x2 − 2x3 = 7
3x1 + 3x2 + 7x3 = 4 −2x2 + 10x3 = 6
97
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
(a)
1 1
2 3
1 1
3 4
(b)
1 −1 −1
0 1 −1
0 0 −1
(c)
4 2 2
2 5 1
2 1 6
1 2
1 2+ε
1 2 x1 3
= , para una pequeña δ > 0
1+δ 2 x2 3+δ
98
Métodos Numéricos con MATLAB
99
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
(a)
4 cuando j= i y i = 1, 2, . . . , 16
j = i + 1 y i = 1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15
j =i−1 y i = 2, 3, 4, 6, 7, 8, 10, 11, 12, 14, 15, 16
aij = −1 cuando
j =i+4 y i = 1, 2, . . . , 12
j =i−4 y i = 5, 6, . . . , 16
0 en otro caso
(b)
4 j= i i = 1, 2,. . . , 25
cuando y
1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14,
j =i+1 y i=
16, 17, 18, 19, 21, 22, 23, 24
2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 15,
aij = −1 cuando j =i−1 y i=
17, 18, 19, 20, 22, 23, 24
j =i+5 y i = 1, 2, . . . , 20
j =i−5 y i = 6, 7 . . . , 25
0
en otro caso
y
b = (1, 0, −1, 0, 2, 1, 0, −1, 0, 2, 1, 0, −1, 0, 2, 1, 0, −1, 0, 2, 1, 0, −1, 0, 2)T
(c)
2i cuando y i = 1, 2, . . . , 40
j= i
j = i + 1 y i = 1, 2, . . . , 39
aij = i cuando
j = i − 1 y i = 2, 3, . . . , 40
0 en otro caso
100
Métodos Numéricos con MATLAB
y
bi = 1.5i − 6 para cada i = 1, 2, . . . , 40
(d)
2i cuando y
j= i i = 1, 2, . . . , 80
y i = 1, 2, . . . , 78
j =i+2
0.75i cuando
y i = 3, 4, . . . , 80
aij = j =i−1
j =i+4 y i = 1, 2, . . . , 76
0.5i cuando
y i = 5, 6, . . . , 80
j =i−4
en otro caso
0
y
bi = π para cada i = 1, 2, . . . , 80
(a)
1 0 1
A1 = −1 1 0
1 2 −3
b1 = (2, 0, 0)T
Que sucede con la convergencia de los metodos para el sistema
A1 x = b1 ?
Que tiene de especial la matriz A1 ?
Se podria diseñar un sistema de las mismas caracteristicas del
sistema A1 x = b1 ?
(b)
8 0 0 3 5
0 6 0 0 6
0
A2 = 1 8 0 7
0 0 0 7 7
1 2 3 4 10
b2 = (0, 0, 0, 0, 2)T
Que sucede con la convergencia de los metodos para el sistema
A2 x = b1 ?
101
CAPITULO 3. SISTEMAS DE ECUACIONES LINEALES
102
Capitulo 4
Interpolación y Ajustes de Curvas
En este capítulo, se pretende resolver el siguiente problema: Dados n+1 pun-
tos del plano (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ), xi 6= xj donde xi y yi son números
reales, encontrar un polinomio P tal que P (xi ) = yi , al polinomio P se le
llama polinomio de interpolación. Por otro lado, se aplicara este resultado
para aproximar una función, es decir, dada una función f (x) denida en un
intervalo [a, b] y una partición del intervalo {x0 , x1 , . . . , xn }, encontrar un
polinomio P (x), tal que P (xi ) = f (xi ).
Una razón importante por la que se considera un polinomio en la aproxi-
mación de una función es porque, además de ser fácil de evaluar, la derivada
y la integral indenida de un polinomio son fáciles de determinar y también
son polinomios. Otra razón para emplear polinomios está justicada por el
teorema de Weierstrass, el cual establece que, sobre un intervalo nito cer-
rado, una función continua dada, se puede aproximar tan cerca como se desee
por un polinomio. ¾Cómo hallar el polinomio de interpolación?
103
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
ó de forma matricial V x = b:
xn0 xn−1
0 · · · x0 1 a0 y0
xn xn−1 · · · x1 1 a1 y1
1 1
.. .. = .. (4.4)
. . .
n n−1
xn xn · · · xn 1 an yn
104
Métodos Numéricos con MATLAB
105
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
106
Métodos Numéricos con MATLAB
107
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
f [xi ] = f (xi )
f [xi+1 ] − f [xi ]
f [xi , xi+1 ] =
xi+1 − xi
f [xi+1 , xi+2 ] − f [xi , xi+1 ]
f [xi , xi+1 , xi+2 ] =
xi+2 − xi
f [xi+1 , xi+2 , xi+3 ] − f [xi , xi+1 , xi+2 ]
f [xi , xi+1 , xi+2 , xi+3 ] =
xi+3 − xi
Las diferencias divididas de orden superior se forman de acuerdo con la
siguiente regla recursiva:
f [xi+1 , xi+2 , . . . , xi+j ] − f [xi , xi+1 , . . . , xi+j−1 ]
f xi , xi+1 , . . . , x(i+j)−1 , xi+j =
xi+j − xi
ci = f [x0 , x1 , x2 , . . . , xi ]
108
Métodos Numéricos con MATLAB
En este caso x0 = 1, x1 = 2, x2 = 3 y
109
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
function c=Newton_divididas(x,y)
n=length(x);
M=zeros(n);
M(1:end,1)=x';
M(1:end,2)=y';
u=1;
for j=3:n+1
for i=1:n-u
M(i,j)=divididas(M(i+1,j-1),M(i,j-1),M(j+i-2,1),M(i,1));
end
u=u+1;
end
c=M(1,2:end);
(x − x1 ) (x − x2 ) (x − x0 ) (x − x2 )
P2 (x) = y0 + y1 +
(x0 − x1 ) (x0 − x2 ) (x1 − x0 ) (x1 − x2 )
(x − x0 ) (x − x1 )
y2
(x2 − x0 ) (x2 − x1 )
110
Métodos Numéricos con MATLAB
P2 (x0 ) = 1 ∗ y0 + 0 ∗ y1 + 0 ∗ y2 = y0 ,
P2 (x1 ) = 0 ∗ y0 + 1 ∗ y1 + 0 ∗ y2 = y1
P2 (x2 ) = 0 ∗ y0 + 0 ∗ y1 + 1 ∗ y2 = y2
El polinomio P2 (x) se escribe en forma simplicada como
donde
(x − x1 ) (x − x2 )
L0 (x) =
(x0 − x1 ) (x0 − x2 )
(x − x0 ) (x − x2 )
L1 (x) =
(x1 − x0 ) (x1 − x2 )
(x − x0 ) (x − x1 )
L2 (x) =
(x2 − x0 ) (x2 − x1 )
(
1 si k = i
observe que Lk (xi ) =
0 si k 6= i
La forma general del polinomio de Lagrange P (x) de grado menor o igual
a n y que pasa por los n + 1 puntos (x0 , y0 ), (x1 , y1 ), . . . , (xn , yn ) es dado por
la ecuación:
111
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
(x − x0 ) (x − x1 ) · · · (x − xk−1 ) (x − xk+1 ) · · · (x − xn )
Lk (x) =
(xk − x0 ) (xk − x1 ) · · · (xk − xk−1 ) (xk − xk+1 ) · · · (xk − xn )
(
1 si i = k
Lk (xi ) =
0 si i =
6 k
xi 1 2 3 5
yi 4 3.5 4 5.6
112
Métodos Numéricos con MATLAB
Luego
x3 − 10x2 + 31x − 30
3
x − 9x2 + 23x − 15
P3 (x) = 4+ 3.5
−8 3
3
x − 8x2 + 17x − 10
3
x − 6x2 + 11x − 6
+ 4+ 5.6
−4 24
P3 (x) = − 0.1x3 + 1.1x2 − 3.1x + 6.1
Vericación:
P (1) = −0.1 + 1.1 − 3.1 + 6.1 = 4
P (2) = −0.8 + 4.4 − 6.2 + 6.1 = 3.5
P (3) = −2.7 + 9.9 − 9.3 + 6.1 = 4
P (5) = −12.5 + 27.5 − 15.5 + 6.1 = 5.6
113
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
f (z)(n+1)
f (x) = Pn (x) + (x − x0 )(x − x1 )(x − x2 ) · · · (x − xn )
(n + 1)!
f (z)(n+1)
(4.10)
|f (x) − Pn (x)| = E =
(x − x0 )(x − x1 ) · · · (x − xn )
(n + 1)!
Observe que la forma del error del polinomio de Lagrange se parece mucho
a la del polinomio de Taylor. El polinomio de Taylor de grado n alrededor
de x0 concentra toda la información conocida en x0 y tiene un término de
error de la forma
f (z)(n+1)
(x − x0 )n+1
(n + 1)!
donde z esta entre x0 y x
El polinomio de Lagrange de grado n utiliza la información en todos los
números distintos x0 , x1 , . . . xn y en lugar de (x − x0 )n+1 , su fórmula de error
utiliza un producto de n + 1 términos (x − x0 ), (x − x1 ), . . . , (x − xn ) (ver
(4.10)).
Ejemplo 4.3. Hallar una cota para el error al aproximar ln(1.2) usando un
polinomio de Lagrange de grado 3 en los puntos:
114
Métodos Numéricos con MATLAB
−6/x4 .
f (z)(4)
E= (x − x0 )(x − x1 )(x − x2 )(x − x3 ) x0 < z < xn
4!
−6
1 < z < 1.4 (4.11)
E = (1.2 − 1)(1.2 − 1.1)(1.2 − 1.3)(1.2 − 1.4)
24z 4
1 1 1
Porque 4 < 4 = 1
E 6 (0.2)(0.1)(0.1)(0.2)
4 z 1
115
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
y1=[];
for j=1:length(x1)
s=1;
n=1;
for k=1:length(p)
s=s*(x1(j)-p(k));
n=n*(x(i)-p(k));
end
y1(j)=s/n;
end
y1;
plot(x1,y1)
hold on
yf=yf+y(i).*y1;
end
plot(x1,yf)
hold on
plot(x,y,'o')
end
116
Métodos Numéricos con MATLAB
117
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
118
Métodos Numéricos con MATLAB
119
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
120
Métodos Numéricos con MATLAB
>> n=15;
>> i=0:n-1;
>> x=cos(((2*i+1).*pi)./(2*n));
>> y=1./(1+12*x.^2);
b−a
(2i + 1)π a+b
xi = cos + para i = 0, 1, . . . , n − 1.
2 2n 2
121
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
122
Métodos Numéricos con MATLAB
S0 (x),
si x0 ≤ x ≤ x1
si x1 ≤ x ≤ x2
S1 (x),
...
S(x) =
Sj (x), si xj ≤ x ≤ xj+1
.
..
Sn−1 (x), si xn−1 ≤ x ≤ xn
123
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
es continua).
es continua).
natural.
b) S 0 (x0 ) = f 0 (x0 ) y S (xn ) = f (xn ), el trazador se llama sujeto. ([3])
0 0
Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 (4.12)
para j = 0, 1, 2, . . . , n − 1. Por la condición I
Sj (xj ) = aj = f (xj ) = yj
(4.13)
Sj+1 (xj+1 ) = aj+1 = yj+1
Sj0 (xj ) = bj
0
Sj+1 (xj+1 ) = bj+1
124
Métodos Numéricos con MATLAB
0
Sj+1 (xj+1 ) = Sj0 (xj+1 )
bj+1 = bj + 2cj (xj+1 − xj ) + 3dj (xj+1 − xj )2 (4.16)
La segunda derivada en cada intervalo viene dada por Sj00 (x) = 2cj +6dj (x−xj )
y valuando en xj y xj+1
00
Sj+1 (xj+1 ) = Sj00 (xj+1 )
2cj+1 = 2cj + 6dj (xj+1 − xj ) (4.17)
cj+1 = cj + 3dj hj
cj+1 − cj
dj = (4.18)
3hj
h2j
aj+1 = aj + bj hj + (2cj + cj+1 ) (4.19)
3
bj+1 = bj + (cj + cj+1 )hj (4.20)
bj = bj−1 + (cj−1 + cj )hj−1 (4.21)
aj+1 − aj hj
bj = − (2cj + cj+1 ) y (4.22)
hj 3
aj − aj−1 hj−1
bj−1 = − (2cj−1 + cj ) (4.23)
hj−1 3
125
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
Así
para j = 1, 2, . . . , n − 1
El sistema (4.24) tiene sólo como incógnitas a cj , ya que los valores de hj están
dados por el espaciado de los nodos xj (recuerde que hj = xj+1 − xj ) y los valores
de aj son los valores de f en los xj (aj = f (xj ) por la condición I.)
3 3
hn−2 cn−2 + 2(hn−2 + hn−1 )cn−1 + hn−1 cn = (an − an−1 ) − (an−1 − an−2 )
hn−1 hn−2
00 00
Si el trazador es natural entonces S (x0 ) = 0 = S (xn ) y teniendo en
cuenta que Sj00 (x) = 2cj + 6dj (x − xj )
00 00
S0 (x0 ) = 2c0 + 6d0 (x0 − x0 ) Sn (xn ) = 2cn + 6dn (xn − xn )
0 = 2c0 0 = 2cn
126
Métodos Numéricos con MATLAB
127
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
aj+1 − aj hj
Calculando bj = − (2cj + cj+1 ) para j = 0, 1, 2
hj 3
a1 − a0 h0 215
b0 = − (2c0 + c1 ) =−
h0 3 87
a2 − a1 h1 92
b1 = − (2c1 + c2 ) =−
h1 3 87
a3 − a2 h2 76
b2 = − (2c2 + c3 ) =
h2 3 87
cj+1 − cj
y los dj = para j = 0, 1, 2
3hj
c1 − c0 41
d0 = =
3h0 87
c2 − c1 190
d1 = =−
3h1 783
c3 − c2 67
d2 = =
3h2 783
Los polinomios cúbicos son de la forma:
Sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 j = 0, 1, 2
S0 (x) = a0 + b0 (x − x0 ) + c0 (x − x0 )2 + d0 (x − x0 )3 =
215 41
2− (x + 3) + (x + 3)3
87 87
128
Métodos Numéricos con MATLAB
S1 (x) = a1 + b1 (x − x1 ) + c1 (x − x1 )2 + d1 (x − x1 )3 =
92 41 190
− (x + 2) + (x + 2)2 − (x + 2)3
87 29 783
S2 (x) = a2 + b2 (x − x2 ) + c2 (x − x2 )2 + d2 (x − x2 )3 =
76 67 67
3 + (x − 1) − (x − 1)2 + (x − 1)3
87 87 783
Por lo tanto el trazador cúbico S(x) para f en [−3, 4] es:
215 41
2− (x + 3) + (x + 3)3 , −3 6 x 6 −2
87 87
92 41 190
S(x) = − (x + 2) + (x + 2)2 − (x + 2)3 , −2 6 x 6 1
87 29 783
3 + 76(x − 1) − 67(x − 1)2 + 67(x − 1)3 , 1 6 x 6 4
87 87 83
Para aproximar f (0) se toma S1 (x), ya que x = 0 esta en el intervalo [−2, 1].
92 190
Luego f (0) ≈ S1 (0) = − (0 + 2) + 41
29
(0 + 2)2 − (0 + 2)3
87 783
f (0) ≈ 1.6 (redondeando la respuesta a un decimal).
129
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
end
%---------------------
H;
%------Diagonal Principal-----
for i=2:n-1
x1(i)=2.*(H(i-1)+H(i));
end
A=diag(x1,0);
%---------Diagonal superior---
H1=H;
H1(1)=0;
A=A+diag(H1,1);
%---------Diagonal inferior---
H2=H;
H2(end)=0;
A=A+diag(H2,-1);
%---------Construcción DE b---
b(1)=0;
b(n)=0;
for i=2:n-1
b(i)=((3/(H(i))*(y(i+1)-y(i))))-((3/(H(i-1))*(y(i)-y(i-1))));
end
b=b'
%Se traspone el vector b para introducirlo en la
%función de Jacobi que se trabajó en el capitulo 3
%---------Solucion de Sistema por jacobi-----
cj=Jacobi(A,b,zeros(length(b),1),0.001);
%-------------Construcción de dj y Cj-----------
for i=1:n-1
bj(i)=((y(i+1)-y(i))/H(i))-(H(i)/3)*(2*cj(i)+cj(i+1));
dj(i)=(cj(i+1)-cj(i))/3*H(i);
end
%----------------MATRIZ F--------------
cj(end)=[];
y(end)=[];
F=[y',bj',cj,dj'];
end
130
Métodos Numéricos con MATLAB
131
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
(xN , yN )
(xi , yi )
(xi , axi + b)
(x1 , y1 )
x
x1 x2 xi xN −1 xN
Figure 4.10
n
X
(yi − axi − b)2 (4.26)
i=1
n
X
F (a, b) = (yi − axi − b)2
i=1
132
Métodos Numéricos con MATLAB
(4.28)
n n n n
x2i
P P P P
− yi xi y i xi
i=1 i=1 i=1 i=1
b= n n 2
P 2 P
n xi − xi
i=1 i=1
133
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
y = Beax
ln y = ln (Beax )
(4.31)
ln y = ln B + ln eax
ln y = ax + ln B
y = Bxa
ln y = ln (Bxa )
(4.32)
ln y = ln B + ln xa
ln y = a ln x + ln B
((4.31) y (4.32) se conocen como formas linealizadas). Observe que en (4.31)
se presenta una relación lineal entre x y ln y, por lo que se pueden usar las
fórmulas dadas en (4.28) para resolver el problema lineal cambiando yi por
ln yi y b por ln B . En (4.32) también se presenta una relación lineal entre
ln x y ln y , aquí el problema se resuelve usando las fórmulas dadas en (4.28)
cambiando xi por ln xi , yi por ln yi y b por ln B .
Ejemplo 4.8. Ajustar los datos de la siguiente tabla a funciones de la forma
y = ax + b y y = Beax ¾Qué función aproxima mejor?
xi 1 2 4
yi 3 5.1 8.8
Para este caso se tienen tres datos, luego n = 3. Se construye una tabla
con los datos que se necesitan en las fórmulas (4.28). Las últimas dos colum-
nas son los errores al cuadrado para los modelos lineal y exponencial.
Para el modelo lineal:
3
P 3
P 3
P
3· xi yi − xi yi
i=1 i=1 i=1 3 (48.4) − 7 (16.9)
a= 2 = = 1.92143
3 (21) − (7)2
3
3
x2i −
P P
3· xi
i=1 i=1
134
Métodos Numéricos con MATLAB
3 3 3 3
x2i
P P P P
yi − xi yi xi
i=1 i=1 i=1 i=1 21 (16.9) − 48.4 (7)
b= 2 = = 1.15
3 (21) − (7)2
3
3
x2i −
P P
3· xi
i=1 i=1
y = ax + b
y = 1.92143x + 1.15
Si se evalúa la recta en x3 = 4, resulta y = 1.92143(4) + 1.15 = 8.83572,
el error al cuadrado entre la aproximación dada por la recta y el valor real
es,
(y3 − ax3 − b)2 = (8.8 − 8.83572)2 = 1.2759 × 10−3 .
Para el modelo exponencial.
3
P P3 P 3
3· xi ln yi − xi ln yi
i=1 i=1 i=1 7 (13.0562) − 7 (4.9026)
a= 2 = 2 = 0.34645
−
3 3 3 (21) (7)
x2i −
P P
3· xi
i=1 i=1
3 3 3 3
x2i
P P P P
ln yi − xi ln yi xi
i=1 i=1 i=1 i=1 21 (4.9026) − 13.0562 (7)
ln B = 2 = = 0.8258
3 3 3 (21) − (7)2
x2i −
P P
3· xi
i=1 i=1
ln B = 0.8258,
B = e0.8258 ≈ 2.28371
y = Beax
y = 2.28371e0.34645x
135
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
Para los datos de este ejercicio, aproxima mejor el modelo lineal, porque
la suma de los errores al cuadrado en el lineal, es menor que la suma de los
errores al cuadrado que en el modelo exponencial (véase la tabla anterior).
Algoritmo 14 (Algoritmo de mínimos cuadrados). En esta función se in-
gresan los vectores de datos X y Y. Las variables de salida son a y b, donde
la recta de mínimos cuadrados tiene ecuación y=ax+b.
function [a,b]=minimosCuadrados(X,Y);
s=0;
x=0;
x2=0;
y=0;
n=length(X);
for i=1:n
s=s+(X(i)*Y(i));
x=x+X(i);
y=y+Y(i);
x2=x2+(X(i)^(2));
end
a=(n*s-x*y)/((n*x2)-x^(2));
b=(1/n)*(y-a*x);
x=linspace(min(X),max(X),200);
y=a*x+b;
plot(x,y)
4.8 Ejercicios
1. Encuentre un polinomio que tome los siguientes valores:
x 1 2 0 3
y 3 2 -4 5
x -2 0 1
f (x) 0 1 -1
136
Métodos Numéricos con MATLAB
4. La tabla
x 0 0.1 1
f (x) 0 1 0
137
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
x 4 2 0 3
f(x) 63 11 7 28
x -1 0 1 2 3
y 2 1 2 -7 10
12. Con una función f las diferencias divididas progresivas están dadas por
x0 = 0.0 f [x0 ]
f [x0 , x1 ]
x1 = f [x1 ] f [x0 , x1 , x2 ] =
50
0.04 7
f [x1 , x2 ] =
10
x2 = 0.7 f [x2 ] =
6
13. Se tienen los siguientes datos para un polinomio P (x) de grado de-
sconocido.
138
Métodos Numéricos con MATLAB
x 0 1 2
P (x) 2 -1 4
x 0 1 2 3
y 1 1 0 10
139
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
19. Determinar el trazador cúbico sujeto S que interpola los datos f (0) = 0,
f (1) = 1, f (2) = 2 y que satisface s0 (0) = s0 (2) = 1.
21. Construya un trazador cúbico libre para aproximar f (x) = e−x por
medio de los valores dados por f (x) en x = 0, 0.25, 0.75, y 1.0. Integre
el trazador en [0, 1] y compare el resultado con:
Z1
e−x dx = 1 − 1/e.
0
Mediante las derivadas del trazador aproxime f 0 (0.5) y f 00 (0.5) y com-
pare las aproximaciones con los valores reales.
140
Métodos Numéricos con MATLAB
xi yi
-2 1
-1 2
0 3
1 3
2 4
xi -2 -1 0 1 2
yi -5.8 1.1 3.8 3.3 -1.5
141
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
25. La siguiente tabla muestra cambios de variable para linealizar datos.
Justique cada cambio.
26. Para el conjunto de datos que se muestra al nal del enunciado, deter-
mine la curva de cada familia que mejor se les ajusta en el sentido de
los mínimos cuadrados.
a) y = CeAx
b) y = CxA
n
c) Use la suma de los cuadrados de los errores E = e2i para deter-
P
i=1
minar cuál de las dos curvas se les ajusta mejor.
142
Métodos Numéricos con MATLAB
xi yi
1 0.6
2 1.9
3 4.3
4 7.6
5 12.6
27. Para el conjunto de datos que se muestra al nal del enunciado, deter-
mine la curva de cada familia que mejor se les ajusta en el sentido de
los mínimos cuadrados.
a) y = CeAx
b) y = 1/(Ax + B)
c) y = (Ax + B)−2 .
d) Use la suma de los cuadrados de los errores para determinar cuál
de las curvas se les ajusta mejor.
xi -1 0 1 2 3
yi 6.62 3.94 2.17 1.35 0.89
28. Cuando una población P (t) no puede crecer más halla de un cierto
límite L, la gráca de la función P (t) es una curva, llamada curva
logística, de ecuación P (t) = L/(1 + CeAt ).
Calcule A y C para los siguientes datos, siendo L = 100.
t 0 1 2 3 4
P (t) 200 400 650 850 950
143
CAPITULO 4. INTERPOLACIÓN Y AJUSTES DE CURVAS
144
Bibliografía
[6] R.A. Horn and C.R. Johnson. Matrix Analysis. Cambridge University
Press, Cambridge, 1985.
[8] Lloyd N. and David Bau. Numerical Linear Algebra. SIAM, 1997.
[9] J.F Traub. Iterative methods for the solutions of equations. Prentice-Hall,
New Jersey, 1964.
145
Índice alfabético
146
Métodos Numéricos con MATLAB
hacia atras, 75
147