of 160
7/24/2019 Mtodos Numricos notas
1/160
Notas de la materia de
Mtodos Numricos
Dr. Antonio Ramos Paz
Facultad de Ingeniera Elctrica
U.M.S.N.H.
7/24/2019 Mtodos Numricos notas
2/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz ii
Introduccin
A continuacin se presenta una recopilacin de las notas de la materia de Mtodos Numricos que se
ofrece dentro de la currcula de las carreras de Ingeniera Elctrica, Electrnica y en Computacin en la
Facultad de Ingeniera Elctrica. Estas notas no pretenden reemplazar a los textos que sobre la materia
han sido escritos, sin embargo si pretenden ser un material de apoyo para los estudiantes de esta
materia. En estas notas el lector encontrar el material completo que corresponde al curso de MtodosNumricos. El material contenido en estas notas est organizado en 8 Unidades
El contenido de estas notas se ha formado por medio de la recopilacin de materiales de varios autores,
los cuales son citados en la Bibliografa de este texto, adems de mi aportacin de problemas
relacionados con las reas de Ingeniera Elctrica y Electrnica.
Este texto no pretende sustituir a los textos de mtodos numricos que existen actualmente, sus
objetivos de este texto son
Objetivos
Que el estudiante tenga un documento en el cual pueda encontrar todos los temas ysubtemas que contiene el programa vigente de la materia de Mtodos Numricos en la
Facultad de Ingeniera Elctrica de la Universidad Michoacana de San Nicols de Hidalgo.
Que el estudiante cuente con un material de apoyo en dnde pueda ver y analizar una gran
cantidad de problemas resueltos y propuestos, los cuales le permitan afianzar los
conceptos tericos analizados en clase.
Que el estudiante ejercite la programacin de computadoras a travs de ejemplos sencillos
en los cuales se muestra una alternativa de la programacin de los diversos mtodos
numricos analizados en este texto.
Que el lector de estas notas vea que los mtodos numricos son una herramienta muypoderosa en el anlisis, diseo y planeacin de los sistemas que son utilizados en las reas
de Ingeniera, en particular en las ingenieras: elctrica, electrnica y en computacin.
Que estas notas se conviertan en un futuro en un libro de texto de Mtodos Numricos
para Ingenieros.
Espero que estas notas sean de utilidad para el lector.
Atte.
Dr. Antonio Ramos Paz
Profesor e Investigador Asociado
Facultad de Ingeniera Elctrica
UMSNH
Candidato a Investigador Nacional (2008-2010)
Sistema Nacional de Investigadores
Morelia Michoacn a 1 de agosto de 2008
7/24/2019 Mtodos Numricos notas
3/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz iii
Contenido
1. Introduccin a la programacin en Matlab ..................................................................................... 1
2.Modelos, computadoras y errores ......................................................... ......................................... 32
3.Solucin de Ecuaciones No Lineales ....................................................................................... ......... 414.Solucin de Sistemas de Ecuaciones Lineales y No lineales ............................................................ 66
5.Optimizacin ................................................................................................................................... 79
6.Ajuste de curvas .............................................................................................................................. 105
7. Diferenciacin e integracin ........................................................ .................................................... 118
8. Ecuaciones diferenciales ordinarias ................................................................................................ 132
9. Ecuaciones diferenciales parciales .............................................................................. .................... 146
Bibliografa........................................................................................................................................... 152
7/24/2019 Mtodos Numricos notas
4/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 1
Unidad I
Introduccin a la programacin en Matlab
Introduccin
La computadora es un elemento que da con da es usada ms y ms en diversos mbitos de nuestra
sociedad. El uso de la computadora en el entorno acadmico y cientfico nos permite aprovechar sus
caractersticas de precisin y rapidez con el objeto de poder resolver problemas de mayor grado de
dificultad.
Matlab es un programa de cmputo que nos permite realizar operaciones tales como sumas, restas,
multiplicaciones y divisiones as como utilizar una amplia gama de funciones.
Todo nmero que es utilizado en Matlab es representado conceptualmente por el programa como una
matriz, por ejemplo, la suma,
2 2
sera representada en Matlab como:
2 2
Operadores matemticos
Matlab utiliza los siguientes operadores aritmticos:
+ Suma
Resta
/ Divisin a la derecha
\ Divisin a la izquierda
* Multiplicacin
^ Potenciacin
() Agrupacin
Por ejemplo, la operacin2 1
3 3 se representara en matlab como 2/3 + 1/3
El uso de los parntesis es de suma importancia, debido a que permiten agrupar operaciones, porejemplo, la operacin:
1 3 4
3
se representa en matlab como:
1 3 4 / 3
El smbolo ^ es muy til para el clculo de cualquier tipo de raz, por ejemplo4 81 puede calcularse
mediante el uso de una potencia como:
7/24/2019 Mtodos Numricos notas
5/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 2
81^(1/4)
Recordar que:/ nm n mx x
Operaciones con matrices
Consideremos la siguiente matriz:
1 2 3
4 5 6
7 8 9
A
Su representacin en matlab es:
A = [1 2 3;4 5 6;7 8 9]
La matriz se introduce a matlab por medio del uso de corchetes cuadrados. La introduccin de loselementos es por rengln. El smbolo ; representa el final de los elementos del rengln.
Considrese la matriz
1 2 4 6
8 7 4 3B
Su representacin en matlab es:
B = [1 2 4 6;8 7 4 3]
Ejemplo: considrense las matrices:
3 6 2
1 0 4
2 7 5
A
8 5 3
4 6 7
1 4 3
B
la representacin de estas matrices en matlab se realiza por medio las siguientes instrucciones,
introducidas desde la lnea de comandos:
A = [-3 6 2; -1 0 4; 2 7 5]
B = [8 5 -3;4 -6 7;-1 4 3]
Consideremos ahora la realizacin de algunas operaciones entre las matrices A y B, tales como: A+B, A-
B, AB, BA, AT, A
-1, B
-1, AA
-1y BB
-1
Las operaciones se realizaran de la siguiente forma,
A B
A + B
ans =
5 11 -1
3 -6 11
1 11 8
7/24/2019 Mtodos Numricos notas
6/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 3
A B
A-B
ans =
-11 1 5
-5 6 -3
3 3 2
AB
>> A*B
ans =-2 -43 57
-12 11 15
39 -12 58
BA
>> B*A
ans =
-35 27 21
8 73 19
5 15 29
'A
>> A'
ans =
-3 -1 2
6 0 7
2 4 5
1A
>> inv(A)
ans =
-0.1892 -0.1081 0.1622
0.0878 -0.1284 0.0676
-0.0473 0.2230 0.0405
1AA
>> A*inv(A)
ans =
1.0000 0.0000 -0.0000
-0.0000 1.0000 -0.0000
0.0000 -0.0000 1.0000
Solucin de sistemas de ecuaciones usando Matlab
Considrese el siguiente sistema dos ecuaciones con dos incgnitas:
1 2
1 2
1
7
x x
x x
La representacin matricial del sistema de ecuaciones anterior es:
1
2
1 1 1
1 1 7
x
x
en forma compacta se tiene:
AX B
resolviendo para X tomando en cuenta que A , B y X son matrices se tiene que:
1X A B
de aqu se puede apreciar que la solucin est dada por el producto de la inversa de la matriz A con la
matriz B .
Utilizando matlab la solucin del sistema de ecuaciones se puede obtener por medio de la siguiente
secuencia de instrucciones:
7/24/2019 Mtodos Numricos notas
7/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 4
>> A = [1 -1;1 1]
A =
1 -1
1 1
>> B = [1;7]
B =1
7
>> X = inv(A)*B
X =
4
3
Del valor obtenido para la matriz X se tiene que:
1
2
4
3
x
x
Otra alternativa para la solucin del sistema de ecuaciones anterior puede ser utilizando la divisin
izquierda definida en Matlab. Esta divisin realiza implcitamente la inversa de una matriz y la multiplica
por un vector de trminos.
>> A = [1 -1;1 1]
A =
1 -1
1 1
>> B = [1;7]
B =
17
>> A \ B
ans =
4
3
Manejo de elementos contenidos en una matriz
Estos pueden ser manipulados en forma independiente al resto de sus elementos compaeros, por
ejemplo, consideremos la siguiente matriz,
1 2 3
4 5 6
7 8 9
A
Los elementos que estn dentro del recuadro pueden ser representados como otra matriz, de la
siguiente manera:
B = A(2:3,2:3), aqu se dice que la matriz B est formada por las filas 2 a 3 y las columnas 2 a 3 de la
matriz A, por lo que entonces, la matriz B tendr los elementos:
7/24/2019 Mtodos Numricos notas
8/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 5
5 6
8 9B
Consideremos ahora la matriz,
1 2 3 4 5
6 7 8 9 10A
Los elementos contenidos en el recuadro pueden formar otra matriz, la cual se puede definir como:
B = A(1:1,2:5)
La instruccin anterior especifica que la matriz B est formada por el rengln 1 de la matriz B y de las
columnas 2 a 5, por lo que entonces la matriz B es,
2 3 4 5B
X(:,2) = [] borra la columna 2 de la matriz X
Funciones con matrices elementales
zeros genera una matriz de ceros, del orden que se especifica,
A = zeros(3)
0 0 0
0 0 0
0 0 0
A
A = zeros(3,4)
0 0 0 0
0 0 0 0
0 0 0 0
A
ones genera una matriz de unos, del orden que se especifica,
A = ones(3)
1 1 1
1 1 11 1 1
A
A = ones(3,4)
1 1 1 1
1 1 1 1
1 1 1 1
A
Si quisiramos tener una matriz de orden 3x4 con todos sus elementos iguales a 4, podemos hacer lo
siguiente.
A = ones(3,4)*4
7/24/2019 Mtodos Numricos notas
9/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 6
4 4 4 4
4 4 4 4
4 4 4 4
A
Lo que hace la instruccin es generar una matriz de 3x4 y multiplicar cada uno de sus elementos por 4.
eye genera una matriz identidad del orden que se especifica por el parmetro,
A = eye(4)
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
A
Si queremos tener una matriz diagonal de orden 4 cuyos elementos sean iguales a 5, podemos hacer lo
siguiente,
A = eye(4)*5
5 0 0 0
0 5 0 0
0 0 5 0
0 0 0 5
A
El comando magic(n) genera un cuadrado mgico de n n (un cuadrado mgico es una matriz den n en dnde los elementos de todas sus filas, columnas y diagonales suman una misma cantidad).
A = magic(3)
8 1 6
3 5 7
4 9 2
A
En este caso la cantidad que suman es 15.
Graficacin en Matlab
Para realizar la grafica de una funcin se deben de introducir en forma matricial los conjuntos x e y .
Ejemplo: consideremos la grafica de la funcin 3 2y x
Para realizar la graficacin de la funcin anterior, primeramente se debe de definir una matriz rengln
que contenga el rango de valores para la variable x . Si utilizamos un rango de -3 a 3, la forma en la quese define este rango es:
>> X = -3:3
X =
-3 -2 -1 0 1 2 3
A continuacin se define el valor de las variables y por medio de la funcin que relaciona a las variables
x e y de la siguiente manera:
7/24/2019 Mtodos Numricos notas
10/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 7
>> Y = 3*X+2
Y =
-7 -4 -1 2 5 8 11
Finalmente se procede a dar la instruccin realizar la grfica de los vectores x e y de la siguiente
manera:
>> plot(X,Y)
El resultado es la grfica que se muestra en la Figura siguiente,
-3 -2 -1 0 1 2 3-8
-6
-4
-2
0
2
4
6
8
10
12
Se pueden adicionar elementos a la grfica anterior en base a los siguientes comandos:
title: establece el ttulo de la grfica
xlabel establece la etiqueta en el eje de las abscisas
ylabel establece la etiqueta en el eje de las ordenadas
grid establece la retcula o cuadrcula en la grfica
Al adicionar algunos de estos elementos a la grfica anterior se obtiene,
-3 -2 -1 0 1 2 3-8
-6
-4
-2
0
2
4
6
8
10
12
x
y
y = 3x+2
Title
xlabel
ylabel
Ejemplo: sea la funcin2 6y x x , la secuencia de comandos utilizados para realizar la grfica de
la funcin2 6y x x son:
7/24/2019 Mtodos Numricos notas
11/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 8
x = -4:3;
y = x.^2+x-6;
plot(x,y)
-4 -3 -2 -1 0 1 2 3-6
-4
-2
0
2
4
6
El resultado obtenido es una parbola, sin embargo se aprecia que debido a los pocos puntos que la
definen, se pierde un poco la caracterstica curva de la parbola. Realicemos la grfica con un mayor
nmero de puntos, utilizando ahora un incremento de 0,1 entre los elementos que definen el rango, de
la siguiente manera;
x = -4:0.1:3;
y = x.^2+x-6;
plot(x,y)
-4 -3 -2 -1 0 1 2 3-8
-6
-4
-2
0
2
4
6
Adicionando algunos elementos se tiene
grid on
xlabel(x)
ylabel(y)
title(y = 3x+2)
-4 -3 -2 -1 0 1 2 3-8
-6
-4
-2
0
2
4
6Y = 3X+2
X
Y
Grfica de dos o ms funciones en un mismo plano
Considrese que se tienen que graficar las funciones
1y x y
2 6y x x
La secuencia de instrucciones utilizadas para la realizacin de las grficas de las funciones son:
7/24/2019 Mtodos Numricos notas
12/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 9
x = -3:0.01:4;
y1 = x+1;
y2 = x.^2-x-6;
plot(x,y1,x,y2,'--');
grid onlegend('y = x+1','y = x*x-x-6');
xlabel('x');
ylabel('y');
-3 -2 -1 0 1 2 3 4-8
-6
-4
-2
0
2
4
6
x
y
y = x+1
y = x*x-x-6
Mltiples grficas en una misma ventana
Consideremos ahora que se tienen que graficar varias funciones, sin embargo deben hacerse en
diferentes grficas.
Por ejemplo, las funciones seny x , cosy x
x = 0:0.01:2*pi;
y1 = sin(x);
y2 = cos(x);
subplot(2,1,1);
plot(x,y1);
title('f(x) = seno(x)');
grid on
subplot(2,1,2);
plot(x,y2);
title('f(x) = coseno(x)');
grid on
0 1 2 3 4 5 6 7-1
-0.5
0
0.5
1f(x) = seno(x)
0 1 2 3 4 5 6 7-1
-0.5
0
0.5
1f(x) = coseno(x)
Grafica en un mismo plano de funciones de diferentes magnitudes
En ocasiones es necesario graficar en un mismo plano el comportamiento de funciones que tienen
rdenes de magnitud diferentes. Para es utilizado el comando plotyy.
Ejemplo: graficar las funciones0.05200 senxe x y -0.50.8 sen 10xe x .
Solucin
x = 0:0.01:20;
y1 = 200*exp(-0.05*x).*sin(x);
y2 = 0.8*exp(-0.5*x).*sin(10*x);
plotyy(x,y1,x,y2,'plot');
0 2 4 6 8 10 12 14 16 18 20-200
-150
-100
-50
0
50
100
150
200
0 2 4 6 8 10 12 14 16 18 20-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
7/24/2019 Mtodos Numricos notas
13/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 10
Algunos comandos tiles en matlab
who: despliega el pantalla el nombre de las variables que se encuentran definidas.
version: despliega en pantalla la versin de matlab.
clear: borra todas las variables definidas en memoria.
clc: borra la pantalla del rea de trabajo
quit: termina la sesin en matlab.
clock: regresa la hora
date: regresa la fecha
Formato numrico
format: define el formato numrico de salida de matlab.
FORMAT SHORT formato con 5 dgitos.
FORMAT LONG formato con 15 dgitos.
FORMAT SHORT E formato de punto flotante con 5 dgitos.
FORMAT LONG E formato de punto flotante con 15 dgitos.
FORMAT HEX formato hexadecimal
FORMAT RAT Hace una aproximacin racional de las cantidades
FORMAT + Los smbolos +, - y espacio en blanco son representan elementos positivos,
negativos y cero. Las partes imaginarias se desprecian.
Ejemplo: considrese que se desea encontrar una representacin fraccionaria de la raz cuadrada del
nmero 3.
>> format rat
>> sqrt(3)
ans = 1351/780
>>
Solucin de ecuaciones de segundo grado y orden superior
El comando roots determina la races (roots) de una ecuacin cuadrtica, la cual se especifica por medio
de un vector el cual contiene los coeficientes de la ecuacin cuadrtica, los cuales deben de estar
ordenados en base a la forma general,
2 0ax bx c
Ejemplo, si quisiramos resolver la ecuacin,
2
3 10 0x x
podramos seguir la siguiente secuencia de instrucciones en matlab,
7/24/2019 Mtodos Numricos notas
14/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 11
Primeramente definimos un vector con los coeficientes de la ecuacin cuadrtica,
A = [1 3 -10]
A continuacin utilizamos el comando roots, dndole como parmetro el vector que contiene los
coeficientes de la ecuacin cuadrtica,
roots(A)
El resultado sern las races de la ecuacin de segundo grado, las cules son:
ans =
-5
2
Este comando tambin permite encontrar las races de ecuaciones de orden superior, simplemente es
necesario formar un vector que contenga los coeficientes de la ecuacin. En caso de que algn
coeficiente sea cero, ste se debe de poner, por ejemplo, consideremos la ecuacin, 4 16 0x
El vector que representa los coeficientes de esta ecuacin es:
A = [1 0 0 0 -16]
Si aplicamos el comando roots,
roots(A)
el resultado ser:
ans =
-2.0000
0.0000 + 2.0000i
0.0000 - 2.0000i
2.0000
El resultado indica que existen dos races reales y dos races imaginarias como solucin de esta ecuacin
de cuarto grado.
Evaluacin de polinomios
Sea el polinomio
4 3 23 7 2 1y x x x x
c = [3 -7 2 1 1]
c = 3 -7 2 1 1
xi = 2.5
xi = 2.5000
yi = polyval(c,xi)
7/24/2019 Mtodos Numricos notas
15/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 12
yi = 23.8125
Funciones adicionales con polinomios
conv: Multiplicacin de polinomios
deconv: divisin de polinomios
poly: Polinomio en base a sus races
polyder: Derivada de un polinomio
polyval: Evaluacin de un polinomio
residue: Expansin en fracciones parciales
roots: Races de un polinomio
Ejemplo: considrese los polinomios
3 23 8 2f x x x x y
3 23 8 2 10g x x x x
Calcular con la ayuda de matlab:
a)
f x g x
b) 'f x
c) 3f
d) 2 2f g
Solucin
Considere la siguiente secuencia de instrucciones
>> f = [1 3 8 2];
>> g = [-3 8 -2 10];
>> h = conv(f,g)
h = -3 -1 -2 62 30 76 20
>> derivada_f = polyder(f)
derivada_f = 3 6 8
>> f_evaluada_en_3 = polyval(f,3)
f_evaluada_en_3 = 80
>> producto = polyval(f,2)*polyval(g,2)
producto = 532
7/24/2019 Mtodos Numricos notas
16/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 13
>>
Funciones Elementales en Matlab
Funciones trigonomtricas
sin calcula el seno del argumento
cos calcula el coseno del argumento
tan calcula la tangente del argumento
cot calcula la cotangente del argumento
sec calcula la secante del argumento
csc calcula la cosecante del argumento
Ejemplo: realizar la grafica de las funciones1
seny t con la funcin2
cosy t desde 0t hasta
2t .
Solucin
Considere la siguiente secuencia de instrucciones.
t = 0:0.01:2*pi;
y1 = sin(t);
y2 = cos(t);
plot(t,y1,t,y2,'--')
legend('Seno(t)','Coseno(t)')
0 1 2 3 4 5 6 7-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Seno(t)
Coseno(t)
Funciones trigonomtricas inversas
asin calcula el seno inverso del argumento
acos calcula el coseno inverso del argumento
atan calcula la tangente inversa del argumento
acot calcula la cotangente inversa del argumento
asec calcula la secante inversa del argumento
acsc calcula la cosecante inversa del argumento
Ejemplo: utilizar las funciones trigonomtricas para determinar el valor de los lados a y b para el
tringulo rectngulo siguiente.
a
b
30
Solucin
Se tiene que,
5tan30a
7/24/2019 Mtodos Numricos notas
17/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 14
5
cos30b
Utilizando matlab se tiene que,
>> a = 5*tan(30*pi/180)
a = 2.8868
>> b = 5/cos(3*pi/180)
b = 5.0069
>>
Funciones exponenciales y logartmicas
exp realiza la operacinxe dondexes el argumento
log realiza la operacin logx donde x es el argumento y log es el logaritmo
natural
log10 realiza la operacin logx
donde x es el argumento y log es el logaritmo en
base 10.
Funciones de nmeros complejos
abs calcula el valor absoluto de un nmero complejo
angle calcula el ngulo de fase de un nmero complejo
conj calcula el conjugado de un nmero complejo
imag determina la parte imaginaria de un nmero complejo
real determina la parte real de un nmero complejo
La introduccin de un nmero complejo se puede hacer de varias maneras:
EDU z1 = 1+2i
z1 = 1.0 + 2.000i
Otra alternativa es la siguiente:
EDU z1 = 1+2j
z1 = 1.0 + 2.0000i
Una tercera alternativa es:
EDU z1 = 1+2*sqrt(-1)
z1 = 1.0000 + 2.0000i
7/24/2019 Mtodos Numricos notas
18/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 15
Algunas otras funciones de matlab
cumprod: calcula el promedio acumulado de los valores en un arreglo
cumsum: calcula la suma acumulada de los valores en un arreglo
factor: encuentra los factores primos
Ejemplo: factor(15) ans = 3 5
factorial: calcula el factorial
Ejemplo: factorial(4) ans = 24
gcd: encuentra el mximo comn divisor
isprime: determina si un nmero es primo. Regresa un uno si es primo, en caso
contrario cero.
Ejemplo: isprime(4) ans = 0
lcn: encuentra el mnimo comn denominador
length: determina la mayor dimensin de un arreglo
Ejemplo: A = [12.3 23.2 1.2 4.3];
length(A) ans = 4
max: encuentra el mximo valor de un arreglo y determina cul elemento
Ejemplo:
[elemento posicion] = max(A)
elemento = 23.2000 posicion = 2
mean: calcula el promedio de los elementos de un arreglo
Ejemplo:
mean(A) ans = 10.2500
7/24/2019 Mtodos Numricos notas
19/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 16
median: encuentra la mediana de los elementos contenidos en un arreglo
Ejemplo:
median(A) ans = 8.3000
min: encuentra el mnimo valor de un arreglo y determina cul elemento
Ejemplo:
[elemento posicion] = min(A)
elemento = 1.2000 posicion = 3
prod: multiplica los valores en un arreglo
Ejemplo:
prod(A) ans = 1.4725e+003
rand: calcula nmeros aleatorios
Ejemplo:
rand() ans = 0.8147
rats: convierte la entrada a una representacin fraccional
Ejemplo:
rats(1.2) ans = 6/5
size: determina el nmero de filas y columnas de un arreglo
Ejemplo:
[filas columnas] = size(A) filas = 1 columnas = 4
std: determina la desviacin estndar de los nmeros contenidos en un arreglo
Ejemplo:
std(A) ans = 9.8185
7/24/2019 Mtodos Numricos notas
20/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 17
sum: suma los elementos contenidos en un arreglo
Ejemplo:
sum(A) ans = 41
var: calcula la varianza de los elementos de un arreglo
Ejemplo:
var(A) ans = 96.4033
Ejemplo: utilizando las funciones de nmeros complejos definidas por Matlab, encontrar la impedancia
equivalente en las terminales a-b para el circuito de la figura siguiente.
1 2j
4 2j
2 3j a
b Solucin
z1 = 1+2j;
z2 = 2+3j;
z3 = 4+2j;
zequi = z1+z2+z3
zequi = 7.0000 + 7.0000i
Ejemplo: utilizando las funciones de nmeros complejos definidas por Matlab, encontrar la suma de los
4 vectores que se muestran en la tabla siguiente.
1 10 0 NF
2 8 45 NF
3 10 90 NF
Solucin
suma_componentes_x = 10*cosd(0)+8*cosd(45)+10*cosd(90)
suma_componentes_y = 10*sind(0)+8*sind(45)+10*sind(90)
magnitud_resultante = sqrt(suma_componentes_x^2+suma_componentes_y^2)
magnitud_resultante = 22.1421
angulo_resultante = atand(suma_componentes_y/suma_componentes_x)angulo_resultante = 45
7/24/2019 Mtodos Numricos notas
21/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 18
Funciones Numricas
fix redondea hacia el elemento ms cercano al cero
ejemplo: fix(0.6) = 0
fix(-0.6) = 0
fix(1.6) = 1
floor redondea hacia el entero ms cercano al infinito negativo
ejemplo: floor(2.1) = 2
floor(-2.9) = -3
ceil redondea hacia el infinito positivo
ejemplo: ceil(2.3) = 3
ceil(2.99) = 3
round redondea hacia el entero ms cercano
ejemplo:
round(2.3) = 2
round(4.5) = 5
rem regresa el residuo de la divisin de sus argumentos
ejemplo: rem(2,2) = 0
rem(3,2) = 1
sign regresa el signo de la cantidad que se ingresa como argumento.
ejemplo. sign(-1) = -1
sign(3) = 1
sign(0) = 0
Manejo simblico en Matlab
Creacin de Variables y expresiones simblicas
Con el objeto de crear variables simblicas se utilizan el comando sym, por ejemplo
x = sym(x)
a = sym(alpha)
Consideremos la siguiente expresin
7/24/2019 Mtodos Numricos notas
22/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 19
1 5
2
rho = sym((1 + sqrt(2))/2)
consideremos la siguiente operacin
>> rho = sym('(1 + sqrt(5))/2')
rho = (1 + sqrt(5))/2
>> f = rho^2-rho-1
f =
(1/2+1/2*5^(1/2))^2-3/2-1/2*5^(1/2)
>> simplify(f)
ans =0
>>
Solucin de ecuaciones
>> syms a b c x
>> s = a*x^2+b*x+c
s = a*x^2+b*x+c
>> solve(s)
ans =
1/2/a*(-b+(b^2-4*a*c)^(1/2))
1/2/a*(-b-(b^2-4*a*c)^(1/2))
Consideremos ahora la solucin para b
>> sol_b = solve(s,b)
sol_b =
-(a*x^2+c)/x
Aplicaciones al Clculo Diferencial e Integral
Consideremos la siguiente expresin simblica
>> syms a x
>> f = sin(a*x)
f = sin(a*x)
>> df = diff(f)
df = cos(a*x)*a
>>
Si se quiere encontrar la derivada de la funcin con respecto a la variable a se tiene que,
7/24/2019 Mtodos Numricos notas
23/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 20
>> df = diff(f,a)
df = cos(a*x)*x
>>
Consideremos la segunda derivada de una funcin
>> syms x
>> f = x^2+x+1
f = x^2+x+1
>> d_1 = diff(f,x)
d_1 = 2*x+1
>> d_2 = diff(d_1,x)
d_2 = 2
>> d_2 = diff(f,x,2)
d_2 = 2
Limites
Consideremos el siguiente lmite
0
cos coslimh
x h x
h
>> syms h x
>> dc = limit((cos(x+h)-cos(x))/h,h,0)
dc =
-sin(x)
>>
Resumen sobre lmites
Operacin Matemtica Comando de Matlab
0
limx
f x
limit(f)
limx a
f x
limit(f,x,a)
limit(f,a)
limx a
f x
limit(f,x,a,left)
limx a
f x
limit(f,x,a,right)
Integracin
>> syms x
>> f = x^2+3*x+5
f = x^2+3*x+5
>> int(f)
7/24/2019 Mtodos Numricos notas
24/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 21
ans = 1/3*x^3+3/2*x^2+5*x
>>
Resumen sobre integrales
Operacin Matemtica Comando de Matlab1
1
nn xx
n
int(x^2)
int(x^2,x)
/ 2
0
sin 2 1x dx
int(sin(2*x),0,pi/2)
int(sin(2*x),x,0,pi/2)
cosg at b
sin at b
g t dta
g = cos(a*t+b)
int(g)
int(g,t)
7/24/2019 Mtodos Numricos notas
25/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 22
Programacin en Matlab
Existen dos clases de archivos M
Archivos de instrucciones
Archivos de funciones
Caractersticas:
Archivos de Instrucciones
No aceptan argumentos de entrada ni regresan argumentos de salida.
Operan con datos de la hoja de trabajo
Son tiles para automatizar una serie de pasos que son realizados de manera
comn
Archivos de funciones
Aceptan argumentos de entrada y regresan argumentos de salida Las variables internas son locales
Ejemplo de archivo de instrucciones
% serie de instrucciones utilizadas para graficar la funcin seno en un
% intervalo de tiempo de 0 a 2pi
t = 0:0.01:2*pi
y = sin(t);
plot(t,y);
Nota : el signo % se utiliza para colocar comentarios en el programa.
Ejemplo de archivo de funciones
% funcin que aceptan como argumentos dos valores a y b y regresa su
% producto
function c = producto(a,b)
c = a*b;
Control de flujo
Comando if, and elseif
Este comando se utiliza cuando el flujo de un programa o una funcin dependen de una condicin que
puede ser falsa o verdadera.
if expresin_logica
Instrucciones
end
Ejemplo: considere una funcin que devuelva el valor absoluto de una cantidad x.
7/24/2019 Mtodos Numricos notas
26/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 23
Operadores de relacin
Estos operadores generalmente acompaan a las estructuras de seleccin y de repeticin para
especificar condiciones de relacin entre dos o ms elementos.
== igual> Mayor que
< Menor que
>= Mayor o igual que
7/24/2019 Mtodos Numricos notas
27/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 24
n = 4
n < 0Nmero
negativo
rem(n,2) == 0Nmero
positivo par
Nmero
positivo
negativo
Fin
Inicio
Si
No
Si
No
n = 4
n < 0Nmero
negativo
rem(n,2) == 0Nmero
positivo par
Nmero
positivo
negativo
Fin
Inicio
n = 4
n < 0Nmero
negativo
rem(n,2) == 0Nmero
positivo par
Nmero
positivo
negativo
Fin
Inicio
Si
No
Si
No
Comando switch
El comando switch se utiliza para realizar una secuencia de instrucciones en base a una seleccin de
varias alternativas.
La sintaxis de la instruccin switch
switch expresin
case valor_1
instrucciones
case valor_2
instrucciones
case valor_n
instrucciones
otherwise
instrucciones
end
Ejemplo: consideremos un programa que reciba una calificacin de 5 a 10 y muestre en pantalla una
palabra asociada con la calificacin,
10 => Excelente, 9 => Muy bien
8 => Bien, 7 => Regular
6 => Suficiente, 5 => Muy mal
calificacion = 6;switch calificacion
case 5
disp('Muy mal');
case 6
disp('Suficiente');
case 7
disp('Regular');
case 8
disp('Bien');
case 9
disp('Muy Bien');
case 10
disp('Excelente');
otherwise
disp('Valor fuera de rango');End
7/24/2019 Mtodos Numricos notas
28/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 25
Estructuras de repeticin
for
La estructura de repeticin for repite una secuencia de instrucciones un nmero predeterminado de
veces. Su sintaxis es,
for indice=inicio:incremento:fin
instrucciones
end
el incremento por default es 1.
Por ejemplo, si se desea almacenar en un vector x los valores de 1 a 10 existen diversas alternativas, una
de ellas es por medio de ciclo, tal y como se muestra en el siguiente cdigo
for i=1:10x(i) = i;
end
while
La estructura de repeticin while repite una secuencia de instrucciones en tanto una expresin es
verdadera.
La sintaxis de la estructura de repeticin while es,
while expresin
instrucciones
end
Ejemplo: ahora utilicemos la instruccin while para llenar el arreglo x con los elementos del 1 al 10.
i = 1;
while i
7/24/2019 Mtodos Numricos notas
29/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 26
if valor > numero
disp 'mas pequeo'
else
disp 'mas grande'
end
end
End
return
La instruccin return termina la ejecucin de una secuencia de comandos y regresa el control a la
funcin que invoc a la secuencia de comandos o a la lnea de comandos.
Partes de un archivo de funciones
Lnea de definicin de la funcin
Lnea H1
Texto de ayuda
Cuerpo de la funcin
Comentarios
Lnea de definicin de la funcin
function y = promedio(x)
Argumento de entrada
Nombre de la funcin
Argumento de salida
Palabra reservada
function y = promedio(x)
Argumento de entrada
Nombre de la funcin
Argumento de salida
Palabra reservada
Si la funcin tiene varios valores de salida, stos deben ser especificados entre corchetes cuadrados, por
ejemplo, consideremos una funcin que recibe como argumento dos nmeros a y b y da como resultado
su suma, su producto, su diferencia y su cociente,
function [suma, resta, producto, cociente] = operaciones(a,b)
suma = a + b;
resta = a - b;
producto = a*b;
cociente = a/b;
Ejemplo: realizar una funcin que convierta grados Fahrenheit en grados Celsius
Solucin
Se sabe que: 5
329
C FT T
Por lo que se propone la siguiente funcin
% funcion que convierte una temperatura expresada en grados Fahrenheit en grados centigrados
function celsius = far_en_cel(fahrenheit)
celsius = 5/9*(fahrenheit-32);
7/24/2019 Mtodos Numricos notas
30/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 27
Ejemplo de utilizacin
>> a = far_en_cel(78)
a = 25.5556
Ejemplo: realizar un programa que contenga una funcin que sea capaz de determinar la magnitud y
direccin de un vector expresado en forma rectangular.
Solucin
Se sabe que la magnitud de un vector expresado en forma rectangular es:2 2
x yM C C
Adems de que la direccin de un vector expresado en forma rectangular es:1
tan y
x
C
C
Por lo que se propone la siguiente funcin en matlab,
% funcion que determina la magnitud y direccin de un vector
% expresado en forma rectangular
function [magnitud direccion] = mag_dir(cx,cy)
magnitud = sqrt(cx^2+cy^2);
direccion = 180/pi*(atan(cy/cx));
Ejemplo de aplicacin
>> [magnitud direccion] = mag_dir(1,1)
magnitud = 1.4142
direccion = 45
Ejemplo: realizar una funcin que realice la grfica de una funcin polinomial de orden n en el rango
especificado. La funcin deber de recibir como parmetros un vector P que contenga los coeficientes
del polinomio as como el dominio de la funcin.
Se propone el siguiente cdigo,
% funcion que grafica una funcion polinomial
function grafica_polinomio(p,xmin,xmax)
[filas columnas] = size(p);
puntos = 1000;
y = zeros(puntos,1);
paso = (xmax-xmin)/puntos;
x = xmin:paso:xmax-paso;
for i=1:puntos
for j=1:columnas-1
y(i) = y(i) + p(j)*x(i)^(columnas-j);
end
y(i) = y(i) + p(columnas);
end
plot(x,y)
grid on
xlabel('x');
ylabel('y');
7/24/2019 Mtodos Numricos notas
31/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 28
Ejemplo de aplicacin.
Considrese la grfica de la funcin 2 6f x x x
>> p = [1 -1 -6]
p = 1 -1 -6
>> grafica_polinomio(p,-3,4)
Dando como resultado la grfica que se muestra en la figura siguiente.
-3 -2 -1 0 1 2 3 4-8
-6
-4
-2
0
2
4
6
x
y
Ejemplo: realizar una funcin que muestre el comportamiento de un objeto que es lanzado con una
velocidad inicial0
v . La funcin debe de recibir como parmetros: v0 y theta.
Solucin
Se sabe que el tiempo de vuelo est dada por:vuelo
2 senovtg
La posicin en x est dada por: cosx t vo t
La posicin en y est dada por: 21
sen2
oy t v t gt
Se propone la siguiente funcin
% funcion que realiza la grfica de la posicin de un objeto que es lanzado
% en tiro parablico
function grafica_tiro_parabolico(vo,theta)
g = 9.81;
theta = (pi/180)*theta;
tiempo_vuelo = 2*vo*sin(theta)/g;
paso = tiempo_vuelo/512;
t = 0:paso:tiempo_vuelo-paso;
x = vo*cos(theta)*t;
y = vo*sin(theta)*t-0.5*g*t.^2;
plot(x,y);
grid on
xlabel('x');
ylabel('y');
7/24/2019 Mtodos Numricos notas
32/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 29
Ejemplo de aplicacin
grafica_tiro_parabolico(15,60);
Dando como resultado la grfica que se muestra en la figura siguiente,
0 2 4 6 8 10 12 14 16 18 200
1
2
3
4
5
6
7
8
9
x
y
Ejemplo: realizar una funcin que calcule la traza de una matriz de nxn. La traza de una matriz cuadradaA es la suma de los elementos de su diagonal.
Solucin
Se propone la siguiente funcin
% funcion que calcula la traza de una matriz
function tr = traza(A)
[filas columnas] = size(A);
if (filas == columnas)
tr = A(1,1);
for i=2:columnas
tr = tr+A(i,i);
end
else
disp 'No es una matriz cuadrada'
end
Ejemplo de aplicacin
>> A = [1 0 0;0 2 0;0 0 3]
A =
1 0 00 2 0
0 0 3
>> traza(A)
ans = 6
7/24/2019 Mtodos Numricos notas
33/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 30
Ejercicios propuestos Unidad 1
1. Realizar una funcin que convierta grados Celsius en grados Fahrenheit
2. Hacer una funcin que determine la distancia entre dos puntos de coordenadas 1 1,x y y
2 2,x y .
3. Hacer una funcin que determine el mayor de tres nmeros a, b, c.
4. Realizar una funcin que devuelva la suma de los elementos de una matriz.
5. Realizar una funcin que convierta grados sexagesimales en radianes
6. Realizar una funcin que convierta radianes en grados sexagesimales
7. Realizar una funcin que determine el promedio de los elementos contenidos en un vector
8. Realizar una funcin que determine la desviacin estndar de los elementos contenidos en un
vector
9. Realizar una funcin que encuentre el valor ms pequeo dentro de los elementos contenidos
en un vector
10. Realizar una funcin que reciba una matriz cuadrada devuelva cero si la matriz es no singular y
uno si la matriz es singular.
7/24/2019 Mtodos Numricos notas
34/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 31
Autoevaluacin unidad 1
1. Realizar una funcin que determine la magnitud de un vector expresado en forma rectangular.
2 2
M x y
2. Realizar una funcin que convierta grados Celsius en grados Fahrenheit
932
5F
T C
3. Hacer una funcin que determine la distancia entre dos puntos de coordenadas 1 1,x y y
2 2,x y .
2 2
2 1 2 1d x x y y
4. Hacer una funcin que determine el mayor de tres nmeros a , b , c .
5. Realizar una funcin que devuelva la suma de los elementos de una matriz de n m .
6. Realizar una funcin que calcule el producto de dos matrices. La funcin recibir como
parmetro dos matrices y devolver el producto. No se deber utilizar directamente el
producto de dos matrices.
7. Realizar una funcin que determine el promedio de los datos contenidos en una matriz.
Recordar que el promedio de un nmero n de elementos se calcula como
1
n
i
i
x
xn
8. Realizar una funcin que devuelva el valor ms pequeo y el valor ms grande de los elementos
contenidos en un vector
7/24/2019 Mtodos Numricos notas
35/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 32
Unidad II
Modelos, computadoras y errores
Introduccin
El anlisis del error en un resultado numrico es fundamental para cualquier computacin inteligente,
sea hecha a mano o con una computadora. Los datos de entrada rara vez son exactos, ya que a menudo
se basan en experimentos o son estimados, y los procesos numricos a su vez introducen errores de
varios tipos.
Considrese el clculo de las races de la ecuacin
2 0.4002 0.00008 0x x
utilizando la formula general para la solucin de ecuaciones de segundo grado con una incgnita, se
tiene un resultado de
0.000015x
esta formula se presenta usualmente en cursos de lgebra sin ninguna discusin de su precisin, sin
embargo, la aritmtica de punto flotante de cuatro dgitos introduce errores que hacen el resultado
errneo en 25%; la raz real, determinada con aritmtica de ocho dgitos es -0.0002.
En este caso la culpa fue de la aritmtica de cuatro dgitos, sin embargo, no se piense que los nmeros
de punto flotante de ocho dgitos resolvern todos los problemas. Considrese la serie de Taylor para el
seno:
3 5 7
sen3! 5! 7!
x x xx x
Esta serie se describe usualmente como vlida para cualquier ngulo finito, y el error por truncamiento
cometido al suspender la suma despus de un nmero finito de trminos se dice que es menor en valor
absoluto que el primer trmino despreciado. Estos postulados seran verdaderos si hubiera alguna
forma de conservar un nmero finito de dgitos en cada resultado aritmtico. Considrese que tratamos
de valuar el seno de 1470 = 25.7 radianes, usando aritmtica de punto flotante de ocho dgitos y
calculando los trminos hasta encontrar uno que sea menor que 10-8 en valor absoluto. El resultado
calculado ser de 24.25401855, que aparentemente tiene gran precisin, pero que por supuesto, carece
de sentido. An as usamos aritmtica de punto flotante de 16 dgitos, el seno de 2550 resulta 29.5.
Cifras significativas
Las cifras significativas de un nmero son aquellas que pueden utilizarse en forma confiable. Se trata del
nmero de dgitos que se ofrecen con certeza, ms uno estimado.
Definicin de errores
Valor exacto del error
tE = valor exacto del error = valor verdadero - valor aproximado
7/24/2019 Mtodos Numricos notas
36/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 33
Error relativo fraccional verdadero
error verdadero100%
valor verdaderot
Ejemplo: se tiene que medir la longitud de una calle y la longitud de un clavo. Se obtienen las siguientes
mediciones:
Longitud de la calle 9999 cms
Longitud del clavo 9 cms
Si los valores verdaderos son de 10000 cms y 10 cms, respectivamente. Determinar:
a) El error verdadero
b) El error relativo porcentual en cada caso.
Solucin
a)
10000 cm 9999 cm 1cmtE
1cm100% 0.01%
10000cmt
b)
10 cm 9 cm 1cmtE
1cm 100% 10.0%10cm
t
Error relativo porcentual
error aproximado aproximacin actual - aproximacin anterior100% 100%
valor verdadero aproximacin actuala
A menudo, cuando se realizan clculos, no importa mucho el signo del error, sino ms bien que su errorabsoluto porcentual sea menor que una tolerancia porcentual prefijada
s , por lo que los clculos se
repiten hasta que,
a s
Si se cumple la relacin anterior, entonces se considera que el resultado obtenido est dentro del nivel
aceptable fijados .
Es posible demostrar que si el siguiente criterio se cumple, se tendr la seguridad que el resultado es
correcto en al menos n cifras significativas.
7/24/2019 Mtodos Numricos notas
37/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 34
20.5 10 %ns
Tipos de errores
Errores Inherentes
Errores por truncamiento Errores por redondeo
Errores Inherentes
Los errores inherentes son errores que existen en los valores de los datos, causados por la
incertidumbre en las mediciones, por verdaderas equivocaciones, o por la naturaleza necesariamente
aproximada de la representacin, mediante un nmero finito de dgitos, de cantidades que no pueden
representarse exactamente con el nmero de dgitos permisibles.
Una medicin fsica, tal como una distancia, un voltaje, o un periodo de tiempo, no puede ser exacta. Si
la medicin se da con muchos dgitos, tal como un voltaje de 6.4837569, se puede estar seguro de que
al menos algunos de los dgitos de la extrema derecha no tienen ningn sentido, porque los voltajes nopueden medirse con esta precisin. Si la medicin se da con unos cuantos dgitos, tal como el intervalo
de tiempo de 2.3 segundos, podemos estar bastantes seguros de que hay algn error inherente, porque
slo accidentalmente el intervalo de tiempo sera exactamente 2.3 segundos. En tales casos se pueden
conocer algunos lmites razonables del error inherente, por ejemplo, decir que el tiempo es de
2.3 0.1 segundos.
Reloj Analgico Reloj Digital
Voltmetro Termmetro
7/24/2019 Mtodos Numricos notas
38/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 35
Errores por truncamiento
Los errores por truncamiento se refieren a errores debido a la manera de efectuar los procesos
numricos. Consideremos la serie infinita de Taylor
3 5 7
sen 3! 5! 7!
x x xx x
La cual puede ser utilizada para calcular el seno de cualquier ngulo x expresado en radianes. Es unhecho que no pueden ser utilizados todos los trminos de la serie para el clculo, debido a que la serie
es infinita. Si se utilizan hasta los trminos7x o 9x , los trminos omitidos introducen un error, debido
a un truncamiento de un proceso matemtico infinito.
Errores por redondeo
Supngase que se dispone de una computadora en la cual cada nmero contiene cinco dgitos y que se
desea sumar 9.2654 y 7.1625, los que se suponen exactos. La suma es 16.4279, que contiene seis dgitos
y que por lo tanto no puede ser almacenada en la computadora hipottica. La computadora debeentonces redondear el resultado de seis dgitos a 16.428 y al hacerlos introduce un error por redondeo.
Debido a que el trabajo de una computadora se efecta con cantidades que tienen algn nmero fijo de
dgitos, la necesidad de redondear ocurre con frecuencia.
Lista de algunas recomendaciones para lograr mayor precisin
1. Cuando se van a sumar y/o restar nmeros, trabajar siempre con los nmeros ms pequeos
primero.
2. De ser posible, evitar la sustraccin de dos nmeros aproximadamente iguales. Una expresin
que contenga dicha substraccin a menudo puede ser reescrita para evitarla.
3. Una expresin del tipo a b c puede reescribirse en la forma ab ac y /a b c puedereescribirse como / /a c b c . Si hay nmeros aproximadamente iguales en el parntesis,ejecutar la resta antes que la multiplicacin. Esto evitar complicar el problema con errores de
redondeo adicionales
4. Cuando no se aplica ninguna de las reglas anteriores, minimizar el nmero de operaciones
aritmticas.
Series de Taylor
El desarrollo de Taylor, que es una serie infinita de potencias, representa de manera exacta a una
funcin dentro de un cierto radio alrededor de un punto dado. Por lo tanto, mediante la comparacin
del desarrollo polinomial de la solucin numrica con la serie de Taylor de la solucin exacta, es posible
evaluar el error, el cual se conoce como error de truncamiento.
Desarrollo de Taylor para funciones unidimensionales
Se dice que una funcin f x es analtica en x a si f x se puede representar por medio de unaserie de potencias en trminos de h x a dentro de un radio de convergencia,
0D x a
Una condicin necesaria para que una funcin sea analtica es que todas sus derivadas sean continuas
tanto en x a como en alguna vecindad alrededor de ese punto.
7/24/2019 Mtodos Numricos notas
39/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 36
Una punto en dnde una funcin f x no es analtica recibe el nombre de punto singular. Si f x es
diferenciable en todas partes en la vecindad de0
x excepto en0
x , entonces0
x es un punto singular.
Por ejemplo tanx es analtica excepto en1
2x n
, 0,1,2,3, ,n , los cuales son
puntos singulares. Los polinomios son analticos en todas partes.
Si fes analtica alrededor de x a , se puede representar f x de manera exacta en la vecindad dex a por medio de una serie de Taylor, que es una serie de potencias dada por:
2 3
' '' '''2 6 !
mmh h h
f x f a hf a f a f a f am
Donde
h x a
El desarrollo de Taylor de una funcin alrededor de 0x recibe el nombre de serie de Maclaurin.
Ejemplo: Realizar el desarrollo de Taylor dex
e
alrededor de 1x (Utilice los cuatro primerostrminos de la serie)
Solucin
xf x e ' xf x e '' xf x e
2 1 3 11 1
2! 3!
x h e h ee e he
Donde
1h x
Ejemplo: Realizar el desarrollo de Maclaurin dexe (Utilice los primeros 4 trminos de esta serie)
Solucin
xf x e ' '' ''' xf x f x f x e
2 0 3 00 0
2! 3!
x x e x ee e xe
Realizando operaciones
2 3
12 6
x x xe x
7/24/2019 Mtodos Numricos notas
40/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 37
Ejemplo: Realizar el desarrollo de Maclaurin de senx
Solucin
senf x x
' cosf x x
'' senf x x
''' -cosf x x
senivf x x
Se tiene entonces que,
2 3 4 50 cos0 0 cos0sen 0 cos0
2! 3! 4! 5!
x sen x x sen xx sen x
Realizando operaciones y simplificando
3 5 7
sen3! 5! 7!
x x xx x
Ejemplo: Evale5
e
con el uso de dos mtodos:
2 3 4
11! 2! 3! 4!
x x x x xe
y
2 3 4
1 1
11! 2! 3! 4!
x
xe
x x x xe
Y comprelo con el valor verdadero de 6.737947x10-3
. Utilice 20 trminos para evaluar cada serie y
calcule los errores relativos aproximado y verdadero como trminos se agreguen.
7/24/2019 Mtodos Numricos notas
41/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 38
Solucin. Se propone el siguiente cdigo en lenguaje C.
#include
float factorial(int n)
{
if (n == 1.0)
return 1.0;else
return n*factorial(n-1.0);
}
float serie(int n, float x)
{
int i;
float suma = 1.0;
for (i=1; i
7/24/2019 Mtodos Numricos notas
42/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 39
Mtodo 2
n Aproximacin tE t a
1 1.666667E-01 -1.599287E-01 -2.373553E+03 1.000000E+02
2 5.405406E-02 -4.731611E-02 -7.022333E+02 -2.083333E+02
3 2.542373E-02 -1.868578E-02 -2.773216E+02 -1.126126E+02
4 1.529637E-02 -8.558420E-03 -1.270182E+02 -6.620763E+01
5 1.093892E-02 -4.200980E-03 -6.234804E+01 -3.983428E+01
6 8.840320E-03 -2.102380E-03 -3.120202E+01 -2.373898E+01
17 6.737980E-03 -4.000000E-08 -5.321500E-04 -1.451310E-03
18 6.737960E-03 -1.000000E-08 -1.313100E-04 -4.008400E-04
19 6.737950E-03 0.000000E+00 -2.764000E-05 -1.036700E-04
20 6.737950E-03 0.000000E+00 0.000000E+00 -2.764000E-05
Ejemplo: evale el polinomio
3 27 8 0.75y x x x
En 1.37x . Utilice aritmtica de 3 dgitos con corte. Evale el error relativo porcentual. Repita elproblema pero exprese y como:
7 8 0.35y x x x
7/24/2019 Mtodos Numricos notas
43/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 40
Autoevaluacin Unidad 2
1. Se tiene que medir la longitud de un tramo de tubo conduit (utilizado en canalizaciones
elctricas) y la longitud del dimetro de un conductor elctrico. Se obtienen las siguientes
mediciones:
Longitud del tubo conduit 1199 cmsLongitud del dimetro del conductor 1.19 cms
Si los valores verdaderos son de 1200 cms y 1.2 cms, respectivamente. Determinar:
a) El error verdadero
b) El error relativo porcentual en cada caso.
2. Muestre que el desarrollo de Taylor de1
ln1
x
x
alrededor de 1x es2 1
1
22 1
n
n
x
n
3. Realizar el desarrollo de Taylor de xe alrededor de 1x
4. Realizar el desarrollo de Taylor de cosx alrededor de 1x
5. Desarrolle las siguientes funciones en serie de Maclaurin
2
1
1 x
tanx
11 x
ln 1 x
7/24/2019 Mtodos Numricos notas
44/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 41
Concepto de aproximacin numrica
En el campo de la ingeniera existe infinidad de fenmenos fsicos que necesitan representarse
mediante modelos matemticos. Por ejemplo, considere un circuito RLC en serie excitado por una
fuente de voltaje variante en el tiempo. La aplicacin de la ley de voltajes de kirchhoff alrededor de la
malla produce la siguiente ecuacin integro-diferencial:
1di t
v t Ri t L i t dt dt C
Este tipo de modelos no siempre son fciles de resolver a partir de mtodos analticos; en
algunos casos es de hecho imposible obtener una solucin, y en otros, sta implica procesos complejos
que para fines prcticos resultan inconvenientes.
Con los llamados mtodos numricos es posible obtener aproximaciones numricas tan
cercanas al valor exacto como se desee.
Se entender por aproximacin numrica el acercarse a la solucin con un cierto grado de
aproximacin.
La principal ventaja de los mtodos numricos es que se pueden programar en una
computadora digital, pues consisten en una serie de operaciones aritmticas y decisiones lgicas que la
computadora efecta con gran eficiencia.
Errores
Al obtener una aproximacina
x de la solucin x de un problema, es importante medir o estimar el
error que se comete al utilizar la aproximacin en lugar del valor exacto. Para ellos se definen el error
absoluto y el error relativo.
El error absoluto, representado pora
e , se obtiene como el valor absoluto de la diferencia entre
el valor exacto x y la aproximacin a este valorax , esto es,
a ae x x
La diferencia se toma en valor absoluto, debido a que no interesa si la aproximacin es mayor o
menor que el valor exacto.
El error relativor
e se define como el valor absoluto del cociente de la diferenciaa
x x entre el
valor exacto x , esto es,
a
r
x xe
x
En la mayora de los casos es suficiente calcular el error absoluto para determinar si el mtodo
que proporciona el valor aproximadoa
x es apropiado para estimar a x ; sin embargo, como este error
tiene las mismas unidades que x , no es comparable con el error absoluto de dos aproximaciones que
corresponden a problemas y unidades diferentes.
Por otra parte, el error relativo es adimensional y presenta al error absoluto como una razn
del valor correcto, esto es,
a
reex
7/24/2019 Mtodos Numricos notas
45/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 42
Por tanto,r
e , si se puede usar para comparar mtodos numricos que se hayan aplicado a
diferentes problemas.
En general, al efectuar una serie de operaciones aritmticas para resolver un problema, se
presentan algunos errores que pueden clasificarse, de acuerdo con su origen, en los siguientes tipos:
Errores inherentes
Errores por truncamiento
Errores por redondeo
Errores inherentes
Los errores inherentes o errores propios de los datos son aquellos que se producen al leer en algn
dispositivo de medicin una magnitud, al transmitirla o al reproducirla; son debidos a la imprecisin de
los instrumentos o a errores humanos.
Errores por truncamiento
Los errores por truncamiento son aquellos que se presentan al aproximar funciones analticas por medio
de algunos trminos de una serie infinita; esto se hace frecuentemente en los mtodos numricos
cuando es difcil realizar operaciones con alguna funcin complicada y se toman en su lugar los primeros
trminos de una serie que se aproxima a dicha funcin, truncando los dems. Tambin se presentan
cuando se utilizan nmeros irracionales, tales como 2 , e , , etc., ya que para trabajar con ellos se
toma un nmero determinado de cifras significativas y se truncan las dems.
Errores por redondeo
Por ltimo los errores de redondeo se presentan como una consecuencia directa de redondear a un
determinado nmero de cifras decimales las cantidades que se operan en un proceso de solucin.
Se puede verificar fcilmente que el error por redondeo es menor o igual que el de truncamiento. Por
esta razn, en las computadoras digitales los nmeros que tienen ms cifras decimales que las que la
mquina puede manejar se redondean al mximo nmero posible.
Ejemplo: el nmero e , con cinco cifras decimales, es igual a 2.71828; calcular el error absoluto y el
error relativo en el que se incurre en cada caso, al tomar hasta el primero, segundo, tercero y cuarto
trminos de la serie:
0
1
!k
ek
Convergencia y estabilidad de un mtodo iterativo
Para facilitar el estudio de las caractersticas de los mtodos numricos, se debe considerar que stos en
general parten de uno o varios datos de entrada, y mediante la aplicacin de un algoritmo proporcionan
aproximaciones a la solucin de un modelo matemtico; es decir, se pueden considerar como un
sistema formado por datos de entrada, un algoritmo y una salida, que es la aproximacin a la solucin.
La mayora de los mtodos numricos son procesos cclicos o iterativos, en los cuales se repite una serie
de pasos y se basan en la aplicacin de las denominadas ecuaciones o formulas de recurrencia, que
relacionan dos o ms elementos consecutivos de una sucesin de nmeros, funciones, matrices, etc.
7/24/2019 Mtodos Numricos notas
46/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 43
Ejemplo: en el ejemplo anterior se calcularon los valores del nmero e , tomando los primeros
trminos de la serie:
0
1
!ke
k
calcular las mismas aproximaciones con la siguiente formula de recurrencia:
1
1
!k ke e
k
Dondek
e es la k-sima aproximacin del nmero e. Ntese que ek est en funcin del valor anterior
ek-1 y, en consecuencia, se requiere de un valor inicial e0, en este caso es igual a la unidad, para
generar la sucesin e1, e2, e3, , en.
En general, los mtodos iterativos se clasifican en mtodos de aproximaciones sucesivas y mtodos depaso a paso.
Los mtodos que parten de una aproximacin inicial0
x a la solucin x de un problema, y mediante la
aplicacin reiterada de una o varias formulas de recurrencia proporcionan aproximaciones
1 2 3, , , , nx x x x a la solucin x , se denominan mtodos de aproximaciones sucesivas.
Por otra parte, los mtodos denominados de paso a paso son aquellos que parten de un valor inicial y se
basan en la aplicacin de una frmula de recurrencia; pero, a diferencia de los mtodos de
aproximaciones sucesivas, se utilizan para obtener aproximaciones a la solucin de una sucesin de
nmeros, en lugar de un solo valor.
Los mtodos iterativos no siempre proporcionan aproximaciones aceptables y, en muchos casos, elerror que se obtiene al aplicarlos aumenta a medida que se incrementa el nmero de iteraciones. Dos
de las principales causas del aumento del error se explican con los conceptos de convergencia y
estabilidad que a continuacin se definen.
Convergencia
Se dice que una sucesin de nmeros1 2 3, , , , nx x x x converge a un valor x , si para todo 0 existe un
nmero entero m , tal que para todo entero n m , se cumple que:
nx x
Para determinar la convergencia de un mtodo de aproximaciones sucesivas, cuyos resultados son los
nmeros 1 2 3, , , , nx x x x no es posible aplicar la definicin anterior, debido a que no se conoce de
antemano el valor de x ; sin embargo, se puede demostrar que si el mtodo converge, la diferencia en
valor absoluto de las dos ltimas aproximaciones es menor que la diferencia en valor absoluto entre la
penltima y la antepenltima aproximaciones, es decir,
1 1 2n n n nx x x x
El criterio anterior es vlido nicamente en el intervalo de2n
x a nx ; sin embargo, al cumplirse en los
primeros valores de n, puede esperarse que la convergencia contine. Tambin se puede demostrar que
si un mtodo es convergente, la diferencia en valor absoluto entre las ltimas dos aproximaciones es
mayor o igual que el error absoluto, es decir, que esta diferencia es una cota del error absoluto, con lo
cual se puede escribir,
7/24/2019 Mtodos Numricos notas
47/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 44
1n n ax x e
Entonces, si se tiene un mtodo de aproximaciones sucesivas que produzca una sucesin1 2 3, , , , nx x x x
convergente a la respuesta buscada, se podr obtener una aproximacin a x con un error menor que
una tolerancia dada, determinando adecuadamente el valor de n .
Ejemplo: a fin de mostrar las caractersticas anteriores, en la siguiente tabla comparativa se resumen
los resultados del primer ejemplo.
Nmero de trminos n Aproximacin del
nmero e
ne
Error absoluto
ae
Diferencias sucesivas
1n ne e
1 1.00000 1.71828
2 2.00000 0.71828 1.00000
3 2.50000 0.21828 0.50000
4 2.66667 0.01898 0.16667
Como se observa en la tabla, los valores de la ltima columna disminuyen a medida que n aumenta, y
en todos los casos1n n ae e e lo cual ilustra los criterios establecidos.
Estabilidad
Cuando en un sistema cualquiera existen variaciones pequeas en la salida que corresponden a
pequeas variaciones en la entrada se dice que el sistema es estable.
Sea E n la funcin de error, que representa el error absoluto en la salida del algoritmo, despus de n
iteraciones. En el caso de un mtodo iterativo y en especial en los mtodos de paso a paso, si E n se
incrementa en forma lineal o aproximadamente lineal, conforme n aumenta, entonces se dice que el
mtodo es estable.
En caso de que E n aumente en forma exponencial o aproximadamente exponencial, se considera
que el mtodo es inestable.
Criterios para seleccionar un mtodo numrico
Cuando se tiene un problema que puede representarse mediante un modelo matemtico, es necesario
seleccionar entre diferentes mtodos el ms adecuado para obtener una aproximacin a la solucin.
Para ello es conveniente comparar los mtodos en base en su eficiencia, la cual puede definirse segn
diferentes puntos de vista. Por ejemplo, se considera que un mtodo A es ms eficiente que otro
mtodo B si en general, con A se realizan menos operaciones que con B, es decir, si un mtodo requiere
de diez iteraciones para encontrar una aproximacin a la solucin, semejante a la que se obtendra con
otro mtodo en cinco iteraciones, entonces el ltimo es ms eficiente que el primero.
Como en la actualidad los mtodos numricos tienen la ventaja de poder programarse en una
computadora digital, tambin se puede definir la eficiencia a partir de otros criterios, como son lafacilidad para programar el mtodo en la computadora o la cantidad de memoria requerida para su
7/24/2019 Mtodos Numricos notas
48/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 45
ejecucin. En este caso un mtodo se considera ms eficiente que otro si en general requiere de menos
instrucciones para programarse o utiliza menos cantidad de memoria.
Puede concluirse que la eficiencia de un mtodo ser relativa a las condiciones especficas bajo las
cuales se utilice.
Problemas
7/24/2019 Mtodos Numricos notas
49/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 46
Unidad III
Solucin de Ecuaciones No Lineales
Introduccin
Uno de los problemas ms comunes en el trabajo cientfico es hallar las races de una ecuacin de la
forma,
0f x (1)
donde x y f x pueden ser reales, complejas o valuadas en forma matricial. El objetivo es calcular el
valor de x o, similarmente, los valores del vector x que satisfagan la Ecuacin (1). Estos valores son
conocidos como las races de la ecuacin (1) o ceros de f x . Generalmente no es fcil ni justificable
resolver la Ecuacin (1) en forma exacta. Es ms adecuado resolverla en forma aproximada, a un gradode precisin pre-establecido. Esta forma de solucin requiere, por necesidad, de la aplicacin de
mtodos iterativos. Estos mtodos requieren de una solucin inicial estimada de la raz o races de la
Ecuacin (1).
En el ao de 1225 Leonardo de Pisa estudi la ecuacin3 22 10 20 0x x x y obtuvo un valor
para x de 1.368808107 .
Estimacin inicial de la raz o races
Generalmente se determina un valor inicial aproximado de x o x basndose en alguno de lossiguientes procedimientos:
a) Conocimiento del rango aproximado en que se encuentra el valor de la raz, o de cada raz
buscada.
b) SI el problema es relativamente simple, graficando la funcin f x .
c) Haciendo una tabulacin de los valores de f x .
Ejemplo: Sea la funcin 2
sen
2
xf x x
Su grfica se muestra en la Figura 3.1,
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2-0.6
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
x
f(x)
Figura 3.1
7/24/2019 Mtodos Numricos notas
50/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 47
De la grfica puede observarse que la raz de f x es cercana a 1.9.
Tabulando algunos valores de la funcin f x .
x f x
1.000000 -0.591471
1.100000 -0.588707
1.200000 -0.572039
1.300000 -0.541058
1.400000 -0.495450
1.500000 -0.434995
1.600000 -0.359574
1.700000 -0.269165
1.800000 -0.163848
1.900000 -0.043800
2.000000 0.090703
Puede observarse que al evaluar la funcin en 1.9x y posteriormente en 2.0x se ha detecta un
cambio de signo de f x . La raz se encuentra, por lo tanto en esta regin 0 1.9,2.0x .
Ejemplo: determine una aproximacin de las races reales de 20.5 2.5 4.5f x x x .
Solucin.
Realizando la grfica para x desde igual a 3 hasta 8x , se tiene,
-4 -2 0 2 4 6 8-8
-6
-4
-2
0
2
4
6
8
Figura 3.2
de la grfica se aprecia que una raz es cercana a 1.4x en tanto que la segunda raz es cercana a6.4x .
Mtodos de solucin
Los mtodos de solucin puede clasificarse en: mtodos cerrados y mtodos abiertos
Mtodos cerrados
Son los mtodos que aprovechan el hecho de que una funcin cambia de signo en la vecindad de una
raz. Estos mtodos necesitan de dos valores iniciales ,a b para ambos lados de la raz.
7/24/2019 Mtodos Numricos notas
51/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 48
Mtodo de biseccin
Mtodo de la falsa posicin
Mtodo de la falsa posicin modificada
Mtodos abiertos
Son mtodos que se basan en formulas que requieren solamente de un valor inicial0
x o que empiecen
con un par de ellos, pero que no necesariamente encierren la raz.
Mtodo de iteracin simple de punto fijo
Mtodo de Newton-Raphson
Mtodo de la secante
Mtodo de Biseccin
El mtodo de biseccin, conocido tambin como de corte binario, de particin de intervalos o de
Bolzano, es un tipo de bsqueda incremental en el que el intervalo se divide siempre a la mitad. Si la
funcin cambia de signo sobre un intervalo, se evala el valor de la funcin en el punto medio. Laposicin de la raz se determina situndola en el punto medio del subintervalo, dentro del cual ocurre el
cambio del signo.
0a
0b
m
1a
1b
0a
0b
m
1a
1b
Figura 3.3
En la Figura 3.3 anterior se muestra una primera iteracin del mtodo de biseccin, en dnde se aprecia
que se hace una primera aproximacin a la raz en base a m . Puede apreciarse que el producto de
f a f m es positivo, lo que indica que la raz no se encuentra en la regin comprendida entre a ym sino en la regin comprendida entre m y b , por lo que se a toma el valor de m y b mantiene suvalor.
Algoritmo del mtodo de biseccin
Dada una funcin f x continua sobre el intervalo 0 0,a b y tal que 0 0 0f a f b
.
1. Until convergence, Do
2. Calcular2
n na b
m
3. if 0nf a f m then
4. 1n na a , 1nb m 5. else
6.1n
a m , 1n nb b 7. endif
8. EndDo
7/24/2019 Mtodos Numricos notas
52/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 49
Donde m representa la aproximacin a la raz de 0f x
Un criterio de convergencia es que cuando la diferencia absoluta entre dos valores consecutivos de m sea menor que la tolerancia especificada, se tendr una buena aproximacin de la raz.
Ejemplo: encontrar la raz de xf x e x
entre 0 y 2.
Solucin
Se propone el siguiente cdigo en Matlab.
function [m ite] = biseccion(a,b,tol)
% Mtodo de biseccin
% La raz se encuentra en el rango de a a b
% se especifica un criterio de convergencia de tol
% m representa la aproximacin de la raiz
% ite es el nmero de iteraciones necesarias para obtener la
solucin
error = 1.0;m = (a+b)/2;
ite = 1;
while (error > tol)
if (funcion_x(a)*funcion_x(m)
7/24/2019 Mtodos Numricos notas
53/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 50
,a f a
,b f b
,0wx
f x
En base a la ecuacin de la recta que pasa por dos puntos:
0 f b f af a w ab a
Despejando w
f b a f a bw
f b f a
Algoritmo del mtodo de la falsa posicin
Dada una funcin f x continua en el intervalo 0 0,a b y tal que 0 0 0f a f b .
1. Until convergence, Do
2. Calcular
n n n n
n n
f b a f a bw
f b f a
3. if 0nf a f w then
4.1n n
a a , 1nb w 5. else
6.1n
a w , 1n nb b
7. endif8. EndDo
Ejemplo: encontrar la raz de xf x e x entre 0 y 2 por medio del mtodo de regula-falsi
Solucin
Se propone el siguiente cdigo en Matlab.
7/24/2019 Mtodos Numricos notas
54/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 51
% Mtodo de regula falsi
function [w ite] = regula_falsi(a0,b0,tol)
% Mtodo de regula falsi
% La raz se encuentra en el rango de a a b
% se especifica un criterio de convergencia de tol
% w representa la aproximacin de la raiz
% ite es el nmero de iteraciones necesarias para obtener lasolucin
error = 1.0;
w_vieja = 0;
ite = 1;
while (error > tol)
w = (funcion_x(b0)*a0-funcion_x(a0)*b0)/(funcion_x(b0)-
funcion_x(a0));
if (funcion_x(a0)*funcion_x(w)
7/24/2019 Mtodos Numricos notas
55/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 52
Mtodo de Regula falsi modificado
Una forma de disminuir la naturaleza unilateral de la falsa posicin consiste en obtener un algoritmo
que detecte cuando se estanca uno de los lmites del intervalo. Si ocurre esto, se divide a la mitad el
valor de la funcin en el punto de estancamiento. A este mtodo se le llama mtodo d e la falsa
posicin modificado.
Algoritmo del mtodo de la falsa posicin modificado
Dada una funcin f x continua sobre el intervalo 0 0,a b y tal que 0 0 0f a f b .
Dada una funcin f x continua en el intervalo 0 0,a b y tal que 0 0 0f a f b .
1. Tomar 0F f a , 0G f b , 0 0w a 2. Until convergence, Do
3. Calcular1
n nn
Ga FbwG F
4. if 1 0n nf a f w then
5.1n n
a a , 1 1n nb w , 1nG f w
6. if 1 0n nf w f w then7. / 2F F 8. endif
9. else
10.1 1n n
a w , 1n nb b , 1nF f w
11. if 1 0n nf w f w then12. / 2G G 13. end if
14. end if15. EndDo
Ejemplo: encontrar la raz de xf x e x entre 0 y 2 por medio del mtodo regula-falsimodificado.
Solucin
Se propone el siguiente cdigo en Matlab.
7/24/2019 Mtodos Numricos notas
56/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 53
function [w ite] = regula_falsi_mod(a0,b0,tol)
% Mtodo de regula falsi modificado
% La raz se encuentra en el rango de a a b
% se especifica un criterio de convergencia de tol
% w representa la aproximacin de la raiz
% ite es el nmero de iteraciones necesarias para obtener la
solucin
error = 1.0;
w_vieja = 0;
ite = 1;
F = funcion_x(a0);
G = funcion_x(b0);
w0 = a0;
while (error > tol)
wn = (G*a0-F*b0)/(G-F);
if (funcion_x(a0)*funcion_x(wn) 0 )
F = F/2;
end
else
a0 = wn;
F = funcion_x(wn);
if (funcion_x(w0)*funcion_x(wn) > 0)
G = G/2;
end
end
error = abs(w0-wn);
[ite wn error]
w0 = wn
ite = ite + 1;
end
Iteracin Error Raz
1 6.981620E-01 0.69816198
2 1.166817E-01 0.58148033
3 2.494416E-02 0.55653617
4 1.063462E-02 0.56717079
5 2.744922E-05 0.56714334
6 1.055380E-07 0.56714324
7 5.266708E-08 0.56714329
8 0.000000E+00 0.56714329
[w,ite] = regula_falsi_mod(0,2,1e-10)
w = 0.56714329040978
ite = 9
Mtodo de iteracin de punto fijo
Este mtodo emplea una formula para predecir la raz. Esta formula puede desarrollarse como una
iteracin simple de punto fijo al arreglar la ecuacin
0f x
de tal modo que x est del lado izquierdo de la ecuacin
x g x
esta transformacin se realiza mediante operaciones algebraicas o simplemente sumando x a cada ladode la ecuacin original.
Ejemplo. Sea la ecuacin2 2 3 0x x
Se puede arreglar como:
2 3
2
x
x
7/24/2019 Mtodos Numricos notas
57/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 54
Ejemplo. Sea la ecuacin sen 0x
Se puede arreglar como: senx x x
Algoritmo del mtodo de de iteracin de punto fijo
Dada una funcin de iteracin g x y un punto de partida 0x
1. Until convergence, Do
2. Calcular 1n nx g x 3. EndDo
Ejemplo: encontrar la raz de
x
f x e x
, por medio del mtodo de iteracin de punto fijo.
Considere0
0x
Solucin
x xg x e x x e
Se propone el siguiente cdigo en Matlab.
function [xn ite] = ite_punto_fijo(x0,tol)
% Mtodo de iteracin de punto fijo% La raz se encuentra cercana a x0
% se especifica un criterio de convergencia de tol
% xn representa la aproximacin de la raiz
% ite es el nmero de iteraciones necesarias para obtener la
solucin
error = 1.0;
ite = 1;
while (error > tol)
xn = funcion_x2(x0);
[ite error xn]
error = abs(x0-xn);
x0 = xn;
ite = ite + 1;
end
Iteracin Error Raz
1 1.000000E+00 0.36787944
2 6.321206E-01 0.69220063
3 3.243212E-01 0.5004735
4 1.917271E-01 0.60624354
5 1.057700E-01 0.54539579
6 6.084775E-02 0.57961234
7 3.421655E-02 0.56011546
8 1.949687E-02 0.57114312
39 4.504900E-10 0.56714329
40 2.554900E-10 0.56714329
41 1.449000E-10 0.56714329
[xn ite] = ite_punto_fijo(1,1e-10)
xn = 0.56714329038004
ite = 42
7/24/2019 Mtodos Numricos notas
58/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 55
Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de: 0.2sen 0.5f x x x .
Haga una eleccin inicial de0
0.5x .
Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de: 2senf x x x . Haga
una eleccin inicial de 0 0.5x .
Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de:
3 22 11.7 17.7 5f x x x x . Haga una eleccin inicial de 0 3.0x .
Ejemplo: utilice la iteracin simple de punto fijo para localizar la raz de: 2 1.8 2.5f x x x .
Haga una eleccin inicial de0
5.0x .
Mtodo Newton-Raphson
Considere la siguiente figura
1ix ix
' im f x
x
f x
if x
La pendiente de la curva est dada por
1
0'
i
i
i i
f xm f x
x x
Despejando 1ix
1 'i
i i
i
f x
x x f x
Algoritmo del mtodo de Newton-Raphson
Dada una funcin f x y un punto 0x .
1. Until convergence, Do
2. Calcular 1 '
n
n n
n
f xx x
f x
3. EndDo
7/24/2019 Mtodos Numricos notas
59/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 56
Ejemplo: utilice el mtodo de Newton-Raphson para calcular la raz de
xf x e x
utilice0
0x
Solucin
Se sabe que
1x
df xe
dx
Se propone el siguiente cdigo en Matlab
function [xn ite] = newton_raphson(x0,tol)
% Mtodo de newton-raphson
% La raz se encuentra cercana a x0% se especifica un criterio de convergencia de tol
% xn representa la aproximacin de la raiz
% ite es el nmero de iteraciones necesarias para obtener la
solucin
ite = 0;
error = 1.0;
while (error > tol)
xn = x0 - funcion_x3(x0) /funcion_x3_derivada(x0);
error = max(abs(xn-x0));
ite = ite + 1;
x0 = xn;
end
Iteracin Error Raiz
1 5.000000E-01 0.500000
2 6.631100E-02 0.566311
3 8.321618E-04 0.567143
4 1.253749E-07 0.567143
5 0.000000E+00 0.567143
[xn ite] = newton_raphson(0,1e-10)
xn = 0.56714329040978
ite = 5
Mtodo de secante
La derivada de una funcin se puede aproximar como:
1
1
' n n
n
n n
f x f xf x
x x
sustituyendo la expresin anterior en la expresin del mtodo de Newton-Raphson,
1 1
1
1
n n n n
n n
n n
f x x f x xx x
f x f x
7/24/2019 Mtodos Numricos notas
60/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 57
Algoritmo del mtodo de la secante
Dada una funcin f x y dos puntos 1nx , nx .
1. Until convergence, Do
2. Calcular
1 1
1
1
n n n n
n n
n n
f x x f x xx x
f x f x
3. EndDo
Ejemplo: utilice el mtodo de la secante para calcular la raz de
xf x e x
utilice0
0x y1
1x
Solucin
Se propone el siguiente cdigo en Matlab
function [x2 ite] = secante(x0,x1,tol)
% Mtodo de la secante
% La raz se encuentra cercana a x0 y x1
% se especifica un criterio de convergencia de tol
% xn representa la aproximacin de la raiz
% ite es el nmero de iteraciones necesarias para obtener la
solucin
ite = 0;
error = 1.0;
while (error > tol)
x2 = x1 - funcion_x3(x1)*(x1-x0)/(funcion_x3(x1)-
funcion_x3(x0));
error = max(abs(x2-x1));
ite = ite + 1;
x0 = x1;
x1 = x2;
end
Iteracin Error Raz
1 3.873002E-01 0.612700
2 4.886145E-02 0.563838
3 3.331969E-03 0.567170
4 2.705181E-05 0.567143
5 1.619526E-08 0.567143
6 8.000000E-14 0.567143
[x ite] = secante(0,1,1e-10)
x = 0.56714329040978
ite = 6
Ejemplo: Calcular la raz de xf x e x . Considere los valores iniciales: 0 0x , 1 1.0x .
Ejemplo: Calcular la raz de 2sen cos 1 1f x x x . Considere los valores iniciales de:
a) 0 1.0x , 1 3.0x .
b)0
1.5x ,1
2.5x .
c)0
1.5x ,1
2.25x .
7/24/2019 Mtodos Numricos notas
61/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 58
Ejemplo: Calcular la raz de 3 20.95 5.9 10.9 6f x x x x . Considere los valores iniciales de
0 2.5x ,
1 3.5x .
Ejemplo: Calcular la raz de 8sen 1xf x x e . Considere los valores iniciales de 0 0.5x ,
1 0.3x .
Evaluacin de polinomios
Considrese un polinomio de segundo grado de la forma
22 1 0f x a x a x a
expresado en forma anidada es
2 1 0f x a x a x a
Considrese ahora un polinomio de tercer grado de la forma
3 23 2 1 0f x a x a x a x a
expresado en forma anidada es
3 2 1 0f x a x a x a x a
Finalmente considrese un polinomio de cuarto grado
4 3 24 3 2 1 0f x a x a x a x a x a
expresado en forma anidada es
4 3 2 1 0f x a x a x a x a x a
En general para un polinomio de grado n
1 2 0n n n nf x a x a x a x x a
Ejemplo: exprsese en forma anidada el polinomio 3 22 5 6f x x x
Solucin
2 5 6f x x x x
7/24/2019 Mtodos Numricos notas
62/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 59
Evaluacin de funciones polinomiales en forma anidada
Considrese un polinomio de grado 3 3 23 3 2 1 0f x a x a x a x a
en forma anidada se expresa como 3 3 2 1 0f x a x a x a x a
Un pseudocdigo adecuado para realizar la evaluacin de un polinomio en forma anidada se muestra a
continuacin
for i = n, 0, -1
p = p*x + a(i)
end
Ejemplo: evaluar el polinomio 2 5 6f x x x x en 3x
Solucin
Comparando contra la forma 3 3 2 1 0f x a x a x a x a Haciendo 0p
0 3 1 1p
1 3 2 1p
1 3 5 2p
2 3 6 0p
Ejemplo: evaluar el polinomio 4 3 28 4 3 2f x x x x x en 2x utilizando la evaluacin depolinomios en forma anidada.
Solucin
Llevando el polinomio a su forma anidada se tiene,
8 4 3 2f x x x
Haciendo 0p
0 2 1 1p
1 2 8 6p
6 2 4 8p
8 2 3 13p
13 2 2 28p
7/24/2019 Mtodos Numricos notas
63/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 60
Ejemplo: utilizando matlab evaluar el polinomio 4 3 26 3 8 6 9f x x x x x en 1x .
Solucin.
a = [6 -3 8 -6 9];
n = 5;
p = 0;
x = 1;
for i=n:-1:1
p = p*x+a(i);
end
Deflacin polinomial
Sea un polinomio de n-simo grado de la forma,
1 2 21 2 2 1 0n n n
n n nf x a x a x a x a x a x a
un pseudocdigo que divide el polinomio anterior entre un factor polinomial x t es
r = a(n)
a(n) = 0
for i=n-1,0,-1
s = a(i)
a(i) = r
r = s+r*t
end
Ejemplo: dividir el polinomio 2 2 24x x entre 4x
Solucin
2n 2 1r a
Para 1i
1 2s a 1 1a r 2 1 4 6r s rt
Para 0i
0 24s a
0 6a r 24 6 4 0r s rt
Por lo que el polinomio resultante de la divisin es:
1 0 6a x a x
es decir
2 2 246
4
x xx
x
7/24/2019 Mtodos Numricos notas
64/160
UMSNH Mtodos Numricos FIE
Dr. Antonio Ramos Paz 61
Ejemplo: utilizando matlab hacer un programa para dividir el polinomio2 2 24x x entre 4x
Races mltiples
Una alternativa consiste en definir una nueva funcin u x , que es el cociente de la funcin original
entre su derivada
'f x
u xf x
Se puede demostrar que esta funcin tiene races en las mismas posiciones que la funcin original. Por
lo tanto. Sustituyendo la ecuacin anterior en la ecuacin del mtodo de Newton-Raphson, se desarrolla
una forma alternativa del mtodo de Newton-Raphson,
1 2
'
' ''