M´ etodos Num´ ericos Chiluisa Melanie NRC:1662 UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPE Departamento de Ciencias de la Energ´ ıa y Mec´ anica 1. Introducci´ on Matlab Es una herramienta de software matem´ atico que ofrece un entorno de desarrollo integrado con un len- guaje de programaci´ on propio. Entre sus prestaciones b´ asicas se hallan: la manipulaci´ on de matrices, la representaci´ on de datos y funciones, la implementaci´ on de algoritmos, la creaci´ on de interfaces de usuario y la comunicaci´ on con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLAB dispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink y GUIDE . Sus principales funciones son: 1.1. Calculadora Funcionara como una calculadora normal: 1+4=5 5 - 2=3 1.2. Ingreso de datos En el ingreso de datos se diferencia si la letra est´ a en may´ usculas o min´ usculas. x 6= X 1.3. Vectores Para el ingreso de vectores existen diferente maneras, las siguientes: 1.3.1. Directamente Se ingresa de la siguiente manera: x = [1 2 5 7 9] 1.3.2. Operador y = 5 : 10 [5 6 7 8 9 10] z = 10 : 5 : 10 con paso de 5 [10 15 20 25 30 35 40 45 50] w = 20 : -2 : 14 con paso de -2 [20 18 16 14] 1.3.3. Funci´ on t = linspace(20, 20, 30) 10,000 10,6207 ... 20 1.4. Matrices Si ingresamos A = [2 3; 4 5] A = 2 3 4 5 Si ingresamos A 1 = ones(3, 2) indicando el n´ umero de filas y columnas Ing. Mecatr´ onica 1 Fecha de entrega: 07/07/2015
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Metodos Numericos Chiluisa Melanie NRC:1662
UNIVERSIDAD DE LAS FUERZAS ARMADAS - ESPEDepartamento de Ciencias de la Energıa y Mecanica
1. Introduccion Matlab
Es una herramienta de software matematico que ofrece un entorno de desarrollo integrado con un len-guaje de programacion propio. Entre sus prestaciones basicas se hallan: la manipulacion de matrices, larepresentacion de datos y funciones, la implementacion de algoritmos, la creacion de interfaces de usuario yla comunicacion con programas en otros lenguajes y con otros dispositivos hardware. El paquete MATLABdispone de dos herramientas adicionales que expanden sus prestaciones, a saber, Simulink y GUIDE . Susprincipales funciones son:
1.1. Calculadora
Funcionara como una calculadora normal:
1 + 4 = 55− 2 = 3
1.2. Ingreso de datos
En el ingreso de datos se diferencia si la letra esta en mayusculas o minusculas.
x 6= X
1.3. Vectores
Para el ingreso de vectores existen diferente maneras, las siguientes:
1.3.1. Directamente
Se ingresa de la siguiente manera:
x = [1 2 5 7 9]
1.3.2. Operador
y = 5 : 10 [5 6 7 8 9 10]z = 10 : 5 : 10 con paso de 5 [10 15 20 25 30 35 40 45 50]
w = 20 : −2 : 14 con paso de -2 [20 18 16 14]
1.3.3. Funcion
t = linspace(20, 20, 30) 10,000 10,6207 ... 20
1.4. Matrices
Si ingresamos A = [2 3; 4 5]
A =
[2 34 5
]Si ingresamos A1 = ones(3, 2) indicando el numero de filas y columnas
Ing. Mecatronica 1 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
A1 =
1 11 11 1
Si ingresamos A1 = ones(5) crea una matriz de unos
A1 =
1 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1
Si ingresamos A2 = zeros(3) crea una matriz de ceros
A2 =
0 0 00 0 00 0 0
Si ingresamos A3 = eye(4) crea una matriz identidad
A3 =
1 0 0 00 1 0 00 0 1 00 0 0 1
Si ingresamos A4 = rand(2, 3) realizaremos una matriz con numeros randomicos entre 0 y 1
A4 =
∗ ∗ ∗∗ ∗∗ ∗
Si ingresamos A5 = magic(3) crea una matriz que sumado filas o columnas da un mismo resultado
A5 =
∗ ∗ ∗∗ ∗∗ ∗
1.4.1. Operaciones con matrices
x =[
1 2 3]
y =[
5 9 11]
Para sumar se ingresa x+y :x+ y =
[6 11 14
]Para restar se ingresa x-y :
x+ y =[−4 −7 −8
]Para multipliar se ingresa x.*y y lo realizara elemento por elemento:
x. ∗ y =[
5 18 33]
Si no ingresamos el punto nos saldra un error por numero de filas y columnas.Para divir se ingresa x./y y lo realizara elemento por elemento:
x./y =[
1/5 2/9 3/11]
Para elevar a una potencia x.2 dara:x.2 =
[1 4 9
]Ing. Mecatronica 2 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Para extraer una matriz de otra lo realizaremos de con el siguiente codigo:
matriznueva = matriz(filas, columnas)
Ing. Mecatronica 3 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Ejercicio en Clase
Ing. Mecatronica 4 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
1.5. Funciones Handle (eval, feval)
f = @(x)(x.2 + 3)f = @(x, y)(x.2 + y.2)
1.6. Graficar
Ing. Mecatronica 5 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Deber 1Crear una Matriz 9x9 con las siguientes especificaciones: uan matriz de 5x5, una aleatoria de 4x3, una denueves de 5x1, una de 2 de 1x2, una de 7 de 4x3, una aleatorea entre 10 y 20 de 3x3, una matrix identidadde 3x3Codigo:
Ing. Mecatronica 6 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
2. LATEX
Latex es un sistema de composicion de textos, orientado a la creacion de documentos escritos que presentenuna alta calidad tipografica. Por sus caracterısticas y posibilidades, es usado de forma especialmente intensaen la generacion de artıculos y libros cientıficos que incluyen, entre otros elementos, expresiones matematicas.
En los comandos la parte de es obligatoria porque describe el comando a utilizar, mientras que [] sonindicaciones especıficas del comando.
El comando ”babel.es imprescindible si quieres escribir en espanol o cualquier otro idioma que seadistinto de ingles. Este paquete traduce todos los textos estandar al idioma deseado.
El comando ınputenc”permite escribir directamente en la pagina de codigos habitual, convirtiendoseinternamente el texto introducido a texto LaTeX, de acuerdo con las diferentes tablas de equivalenciapara las distintas paginas de codigos y de forma completamente transparente al usuario.
El comando ”geometry”permite modificar el tamano de pagina, margenes, etc.
El comando ”graphicx”permite incluir graficos.
El comando ”fancyhdr”permite ingresar el encabezados, pie de pagina y margenes.
2.3. Documento
Para iniciar a redactar el documento debemos usar:
\begin{document}
....
\end{document}
2.4. Areglos
Se prefiere su uso cuando se trabaja con formula o sımbolos
A =
3 4 sin(x)5 7 ex
x2
4 2 −1
Para crear matrices
\[A=\left(\begin{array}{c c c}
3 & 4 & \sin(x)\\
5 & 7 & e^{x}\\
\frac{x^{2}}{4} & 2 & -1
\end{array}\right)\]
* Para realizar tablas usaremos el comando
\begin{table} [h!] o [H]
...
\end{table}
* Cuando queremos usar los sımbolos de manera textual se antepone para los siguientes:
{} \{
$ \$
% \%
* Cuando solo queremos el sımbolo en un lado:
\[A=\left{ ....
..... \right\]
Ing. Mecatronica 8 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
A =
x2 + 1 si x ≥ 1
x2
5 + ln(3) si −5 < x < 1sin(x) si x ≤ −5
* Cuando deseamos consederar un comando como texto usamos el comando:
\begin{verbatim}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\end{verbatim
* Para centrar textos usamos
\begin{center}
...
\end{center}
2.5. Graficos
Para incorporar graficas al documento usarenmso el comando:
\usepackage{graphicx} (Paquetes)
\includegraphics[scale=0.5]{Grafico1.jpg}
Cuando queremos identificar los graficos y etiquetarlos y usaremos
\begin{figure}[h!]
\begin{center}
\includegraphics[scale=0.7]{Grafico1.jpg}
\caption{Este es un ejemplo}\label{F1}
\end{center}
\end{figure}
2.6. Bibliografıa
El comando para crear bibliografıas es
\begin{thebibliography}{99}
\bibitem{Apostol} A. Apostol, "Calculo", Springer, Ed. 1 (1980)
\end{thebibliography}
Y se mostrara ası:
Referencias
[1] A. Apostol, Calculo”, Springer, Ed. 1 (1980)
Ing. Mecatronica 9 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Figura 1: Este es un ejemplo
2.7. Contenidos
Se utiliza el comando
\tableofcontents
Deber 2Realizar un paquete con encabezado y pie de pagina
\usepackage{fancyhdr}
\lhead[Metodos Numericos]{Metodos Numericos}
\rhead[NRC:1662]{NRC:1662}
\chead[Chiluisa Melanie]{Chiluisa Melanie}
\lfoot[Ing. Mecatronica]{Ing. Mecatronica}
\rfoot[Fecha de entrega: 21/05/2015]{Fecha de entrega: 21/05/2015}
\renewcommand{\headrulewidth}{1pt}
\renewcommand{\footrulewidth}{1pt}
\pagestyle{fancy}
Ing. Mecatronica 10 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Ejercicio en ClaseObtiene el determinante de 2x2
Obtiene el determinante de una matriz nxn
Deber 3Hacer un programa que grafique las siguentes funciones entre [−8, 5]
f(x) =
x2 + 1 si 5 ≥ x ≤ 1x2
5 + ln(3) si 1 < x > −5sin(x) si −5 ≤ x ≥ −8
Ing. Mecatronica 11 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Deber 4Resolver la inversa de una matriz Ocuparemos el determinante de 2x2 y de nxn
Programa de inversa por el metodo de los cofactores
3. Teorema de Taylor
Supongamos que f ∈ Cn+1[a, b] y sea x0 ∈ [a, b] entonces para cada x ∈ (a.b) existe un numero C = c(x)que esta entre x0 y x y verfique que
f(x) = Pn(x) +R(x)
donde
Pn(x) =
n∑k=0
fkx0
k!(x− x0)k
Rn(x) =f (n+1)(c)
(n+ 1)!(x− x0)n+1
Ejercicio en ClaseObtener la serie de fourier de f(x) = ex para n=5 y x0 = 0f ′(x) = ex
f ′′(x) = ex
f ′′′(x) = ex
Ing. Mecatronica 12 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
f (4)(x) = ex
f (5)(x) = ex
Pn(x0) = ex0
0! + ex0
1! (x− x0) + ex0
2! (x− x0)2 + ex0
3! (x− x0)3 + ex0
4! (x− x0)4 + ex0
5! (x− x0)5
Pn(x0) = 1 + x1! + x2
2! + x3
3! + x4
4! + x5
5!
Rn(x0) = ec
6! (x− x0)6 = ecx6
6!
ex = 1 + x+ x2
2 + x3
6 + x4
24 + x5
120 + ecx6
720
Rn(x) = Mf(x)donde M es la cota y f(x) es grado del error
Ejercicio en ClaseObtener la serie de fourier de f(x) = ex
2
para n=3 y x0 = 0
f ′(x) = 2xex2
f ′′(x) = 2ex2
+ 4x2ex2
f ′′′(x) = 12xex2
+ 8x3ex2
ex2
= 1 + 0 + x2 + 0 +Rn(x)Mn(x) ≤Mx4
Deber 6Resolver la serie de Taylor de las funciones: ex y ex
2
La funcion ex
La funcion ex2
Ing. Mecatronica 13 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
4. Conceptos basicos
4.1. Limites
Limites en x = xO
lımx→x0f(x) = I
∀ ∈> 0,∃δ > 0 tal que |x− x0| < δ ⇒ |f(x)− I| <∈
4.2. Continuidad en un punto
Existe el valor de la funcion en el punto.
Existe el lımite de la funcion en el punto.
Ambos valores coinciden.
4.3. Teorema de Bolzano
Supongamos que f ∈ C[a, b] y L es cualquier numero entre f(a) y f(b).Entonces existe un numero c ∈ (a, b) tal que f(c) = L.
4.4. Teorema de Weisrstrass
Supongamos que f ∈ C[a, b]. Entonces existen una cota inferior M1, una cota superior M2 y dos numerosx1, x2 ∈ [a, b] tales que
Supongamos que f ∈ C[a, b] y que f ′(x) existe para todo x ∈ (a, b). Si f(a) = f(b) = 0, entonces existeun numero ∈ C[a, b] tal que f ′(c) = 0.
4.6. Teorema de Lagrange
Supongamos que f ∈ C[a, b] y que f ′(x) existe para todo x ∈ (a, b). Si f(a) = f(b), entonces existe unnumero c ∈ (a, b) tal que
f ′(c) =f(b)− f(a)
b− a
4.7. Teorema de Taylor
Supongamos que f ∈ Cn+1[a, b] y sea x0 ∈ [a, b]. Entonces, para cada f ∈ C[a, b], existe un numeroc = c(x) que esta entre x0 y x y verifica que
f(x) = Pn(x) +Rn(x)
donde
Pn(x) =
n∑k=0
f (n)(x0)
k!(x− x0)k y Rn(x) =
f (n+1)(c)
(n+ 1)!(x− x0)(n+1)
Ing. Mecatronica 14 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
4.8. Polinomio de Taylor
El polinomio de Taylor, alrededor de un punto x0, se define como
pn(x) = f(x0) + f ′(x0)(x− x0) +1
2f ′′(x0)(x− x0)2 + ...+
1
n!f (n)(x0)(x− x0)n = Pn(x)
5. Analisis de error
Supongamos que p es una aproximacion de p
5.1. Error absoluto
El error absoluto de la aproximacion es:
Ep = |p− p|
5.2. Error relativo
El error relativo de la aproximacion es:
Rp =|p− p||p|
, p 6= 0
Sea x el valor resultante de un procedimiento matematico y x su aproximacion. La diferencia entre x y x seexplica basicamente por dos razones:
5.3. Error de redondeo
Es el que se produce debido a que la representacion de los numeros reales en un computador esta limitadapor el numero de cifras significativas de la mantisa.
5.4. Error de truncamiento
Es el que se produce cuando se aplica un procedimiento matematico aproximado para determinar un valorexacto.
5.5. Orden de aproximacion O(hn)
DefinicionSi una funcion p(n) aproxima a otra funcion f(h) tal que
f(h) = p(h) +O(hn)
Entonces, existe una constante real M > 0 y un numero n ∈ ℵ tal que
|f(h)− p(h)|hn
≤M o |f(h)− p(h)| ≤M |hn||f(h)− p(h)| ≤ O(h)
PropiedadesO(hp) +O(hp) = O(hp)O(hp) +O(hq) = O(hr) siendo r = mın(p, q)O(hp)O(hq) = O(hs) siendo s = p+ q
Ejercicio en claseConsideramos los desarrollos de Taylor
eh = 1 + h+h2
2!+h3
3!+O(h4) y cos(h) = 1− h2
2!+h4
4!+O(h6)
Ing. Mecatronica 15 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
El orden de aproximacion para eh + cos(h) es:
eh + cos(h) = 1 + h+h2
2!+h3
3!+O(h4) + 1− h2
2!+h4
4!+O(h6)
= 2 + h+h3
3!+O(h4) +
h4
4!+O(h6)
Luego, puesto que O(h4) = O(h4) +h4
4!y que O(h4) = O(h4) +O(h6)
eh + cos(h) = 2 + h+h3
3!+O(h4)
Esto indica que el orden de aproximacion para la suma de eh + cos(h) es O(h4)
6. Propagacion del error
Consideremos dos numeros p y q, que han sido aproximados por p y q, con errores ∈p y ∈q, respectivamente,de tal forma que
p = p+ ∈p y q = q+ ∈q
6.1. Suma
p+ q = (p+ ∈p) + (q+ ∈q)= (p+ q) + (∈p + ∈q)
El error en una suma es la suma de los errores de los sumandos
El error relativo del producto es la suma de los errores relativos
7. Metodos
7.1. Metodo de la Biseccion
El metodo de la biseccion consiste en ir acerando sistematicamente los extremos del intervalo hasta queobtengamos un intervalo de anchura suficientemente pequena en el que se localiza un cero.Para desarrollar el metodo de la biseccion, se consideran las siguientes hipotesis:Hipotesis:
f(x) contınua en [a,b].
f(a) y f(b) tienen signos opuestos (f(a) ∗ f(b) ≤ 0).
Ing. Mecatronica 16 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
El error de tolerancia es mayor que cero tol > 0.
El teorema del valor medio, con las hipotesis establecidas, nos asegura laexistencia de al menos una raız en[a,b].
7.1.1. Ejemplo de programa del Metodo de la Biseccion
7.2. Metodo de Newton-Rhapson
Para desarrollar el metodo de la Newton-Rhapson, consideraremos las siguientes hipotesis: Hipotesis:
fε C2[a, b].
Existe un numero xε[a, b] tal que f(x) = 0.
f ′(x)neq0
El error de tolerancia es mayor que cero tol > 0.
El teorema del Newton-Rhapson, con las hipotesis establecidas, nosasegura que existe una sucecion{xn}∞n=0
que converge a xε[a, b], cualquiera que sea su aproximacion inicial x0ε[x−δ, p+δ], δ > 0; utilizando el siguienteproceso iterativo.
xn+1 = xn −f(xn)
f ′(xn)n = 0, 1, 2, ...
Deduccion: Una primera aproximacion al metodo es partir del metodo de la falsa posicion,y en vez detrazar una cuerda entre los dos extremos del intervalo, trazamos una tangente.Supongamos que para el mismointervalo [a;b ]trazamos la tangente que pasa por f(b). En consecuencia, tendremos que
t(x) = f ′(b)(x− b) + f(b)
. Cuando sea f(x) = 0 tambien se cumplira que t(x) = 0. Entonces hallemos x1 tal que y(x1) = 0para iraproximando nuestra raız. Ası obtenemos:
t(x1) = 0 = f ′(b)(x1 − b) + f(b)
Ing. Mecatronica 17 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
x1 = b− f(b)
f ′(b)
Si generalizamos, tendremos que
xn+1 = xn −f(xn)
f ′(xn)
Otra forma de deducirlo es a traves de serie de Taylor.
f(x) = f(x0) + f ′(x0)(x− x0) +O(h2)
f(x) = f(x0) + f ′(x0)(x− x0)
si f(x) = 0 entonces:0 = f(x0) + f ′(x0)(x− x0)
despejando:
x1 = x0 −f(x0)
f ′(x0)
generalizando:
xn+1 = xn −f(xn)
f ′(xn)
7.2.1. Ejemplo de programa del Metodo de Newton-Rhapson
7.3. Metodo de la Secante
Para desarrollar el metodo de la secante, consideraremos las siguientes hipotesis:Hipotesis:
f(x) contınua en [a,b].
f(a) y f(b) tienen signos opuestos (f(a) ∗ f(b) ≤ 0).
El error de tolerancia es mayor que cero tol > 0.
Con las hipotesis establecidas, de manera similar al metodo deNewton-Rhapson, podemos decir que existe unasucecion {xn}∞n=0 que converge a xε[a, b], considerando dos puntos iniciales x0ε[x−δ, p+δ] y x1ε[x−δ, p+δ], δ >0, cercanos a la raiz (x, 0); utilizando el siguiente proceso iterativo.
xn+1 = xn −(xn − xn−1)f(xn)
f(xn)− f(xn−1), n = 0, 1, 2, ...
Ing. Mecatronica 18 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
7.3.1. Ejemplo de programa del Metodo de la Secante
Denotaremos Mm×n(R) , el espacio vectorial de las matrices m × n (m-filas, n-columnas) de coeficientesen el cuerpo K con K = R o C,aunque casi siempre los coeficientes seran reales. Denotaremos por A = (aij)una matriz matrices.
8.1.1. Tipos de Matrices
M. Transpuesta AT si AT = (aji)
M. Conjugada A∗ si A∗ = (aij)
M. Adjunta A+ si A+ = (A∗)T = (aji)
M. Hermetica si A = A+
M. Simetrica si A = AT
M. Regular si An×n tiene A−1n×n por lo tanto |A| 6= 0
El rango de una matriz es el numero de filas o columnas que son linealmente independientes. Se denotapor:
rang(A) o r(A)
* Linealmente Dependiente (ld): se dice que una matriz es ld si sus filas son combinaciones linealesde otras.
* Linealmente Independiente (li): se dice que una matriz es li si sus filas no son combinacioneslineales de otras.
8.1.3. Diagonalidad
• Diagonal dominante: La matriz A es de diagonal dominante si:
|aii| ≥j=n∑
j=1,j 6=i
|aij | i = 1, 2, ..., n
• Diagonal estrictamente dominante: La matriz A es de diagonal estrictamente dominante si:
|aii| >j=n∑
j=1,j 6=i
|aij | i = 1, 2, ..., n
Si A es diagonal estrictamente dominante entonces es una matriz regular.
8.2. Valores y vectores propios
8.2.1. Valores Propios
Se denominan valores propios o raıces caracterısticas de una matriz cuadrada A, a los valores de λ talesque:
|A− λI| = 0
Desarrollando el determinante tenemos un polinomio de grado n en λ. Trataremos de encontrar los coeficientesdel polinomio y luego, aplicaremos un metodo de hallar las raıces del polinomio.
Ing. Mecatronica 21 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
8.2.2. Vectores Propios
Una vez hallados los valores propios, para hallar el vector propio X correspondiente al valor propio λ esnecesario resolver el sistema homogeneo:
(A− λI)X = 0
donde el vector X es X = x1, x2, ...xnSiempre podemos tomar x1 como 1, y hallar las otras n-1 incognitas. De las n ecuaciones podemos tomarn-1, y resolver el sistema lineal.
8.3. Semejanzas de matrices
Dos matrices A y B (Mn×n) son semejantes si existe matriz regular P tal que:
B = PAP−1
Programas Triangular superior y triangular inferiorPara la trangular superior
function [ts]=tsup(A);
[m n]=size(A);
for N=1:(n-1)
for M=N+1:m
while A(N,N)==0
B=A(N,:);
[f,c]=max(abs(A));
A(N,:)=A(c(1),:);
A(c(1),:)=B;
end
A(M,:)=A(M,:)-(A(M,N)*A(N,:))/A(N,N);
end
end
ts=A;
Para la triangular inferior
function[ti]=tinf(A)
[m,n]=size(A);
for N=n:-1:2
for M=N-1:-1:1
A(M,:)=A(M,:)-[A(M,N)/A(N,N)]*A(N,:);
end
end
ti=A;
Ing. Mecatronica 22 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
9. Sistemas Lineales
En la etapa final de la resolucion numerica del modelo matematico de un problema fısico, una vez ter-minado el proceso de discretizacion en el que se sustituye el modelo continuo por una version en dimensionfinita, se tiene que resolver un sistema de ecuaciones que en la mayorıa de los casos son lineales.Dentro de las tecnicas para resolver sistemas lineales, se distinguen dos grandes familias de metodos, losmetodos directos y los metodos iterativos, basados en dos filosofıas diferentes de abordar el problema. Enlos metodos directos se obtiene la solucion mediante un numero finito de operaciones y esta solucion serıaexacta si las operaciones pudieran efectuarse con aritmetica infinita. En los metodos iterativos se construyemediante una relacion de recurrencia una sucesion infinita, que a partir de una estimacion inicial y bajociertas condiciones converge a la solucion buscada.
9.1. Gauss
Consiste en utilizar transformaciones elementales de fila y/o columna para eliminar sucesivamente lasvariables empezando por la primera ecuacion y la primera variable y continuando con el resto. De estamanera, tras (n − 1) eliminaciones se llega a un sistema equivalente al dado, de matriz triangular superiorque se resuelve directamente por sustitucion hacia atras.
A =
1 2 3 62 3 4 9−1 0 −1 −2
Ing. Mecatronica 23 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
haciendo transformaciones elementales utilizando la primera fila, hacemos cero todos los elementos de laprimera columna excepto el diagonal.
A =
1 2 3 60 −1 −2 −30 2 2 4
Fijandonos en el elemento diagonal de la segunda fila, hacemos cero todos los elementos de la segunda columnapor debajo del diagonal.
A =
1 2 3 60 −1 −2 −30 0 −2 −2
Con esto tenemos ya el sistema triangular superior equivalente que resolvemos por sustitucion hacia atrascomenzando por la ultima ecuacion y acabando en la primera.
−2x3 = −2 ⇒ x3 = 1−x2 −2x3 = −3 ⇒ x2 = 1
x1 +2x2 +3x3 = 6 ⇒ x1 = 1
Programa de Gauss
function[x]=gauss(A,b)
Mg=[A b];
[m,n]=size(Mg);
for N=1:n-2
for M=N+1:m
Mg(M,:)=Mg(M,:)-(Mg(M,N)*Mg(N,:))/Mg(N,N);
end
end
mad=Mg;
[m,n]=size(mad);
x(m)=mad(m,n)/mad(m,n-1);
for M=m-1:-1:1
x(M)=(mad(M,n)-mad(M,M+1:m)*x(M+1:m)’)/mad(M,M);
end
Ing. Mecatronica 24 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
9.2. Gauss Jordan
Como hemos visto, el metodo de Gauss transforma la matriz de coeficientes en una matriz triangularsuperior. El metodo de Gauss-Jordan continua el proceso de transformacion hasta obtener una matriz diagonalunitaria (aij = 0 para cualquier i 6= j).Continuando con el ejemplo de Gauss
A =
1 2 3 60 −1 −2 −30 0 −2 −2
haciendo transformaciones elementales utilizando la tercera fila, hacemos cero todos los elementos de latercera columna excepto el diagonal.
A =
1 2 0 60 −1 0 −10 0 −2 −2
Fijandonos en el elemento diagonal de la segunda fila, hacemos cero todos los elementos de la segunda columnapor arriba de la diagonal.
A =
1 0 0 10 −1 0 −10 0 −2 −2
Con ello obtemos un sistema de ecuaciones directo en la diagonal
Esta variante del metodo de Gauss consiste en factorizar la matriz A del sistema lineal Ax=b comoproducto de una triangular inferior L, cuyos elementos enla diagonal principal son todos iguales a 1; y otramatriz U triangular superior, cuyos elementos de la diagonal son distintos de cero. Una vez obtenida ladescomposicion se resuelve el sistema lineal
Por lo tanto A−1 sera una matriz triangular superior
9.4. SVD
Toda matriz simetrica A puede ser factorizada como A = PDPT , donde P es una matriz ortogonal y D esuna matriz diagonal que contiene los autovalores de A. Si A no es simetrica, una factorizacion de este tipo noes posible, pero todavıa es posible factorizar una matriz cuadrada A como A = PDP−1, donde D adquiereuna forma lo mas simple posible y P es una matriz invertible. D es una matriz diagonal que contiene losautovalores de A. Estas dos propiedades sugieren pensar en la factorizacion mas general posible para todamatriz A (sea simetrica o no, sea cuadrada o no). Se puede demostrar que todas las matrices admiten unafactorizacion de la forma
Ing. Mecatronica 31 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
A = UΣV T
donde U y V son matrices ortogonales y Σ es una matriz diagonal o ”practicamente diagonal”
9.4.1. Valores singulares de una matriz Teorema
Teorema 1Para cualquier matriz Am×n, la matriz (ATA)n×n es simetrica y por lo tanto puede serdiagonalizada ortogonalmente. Los autovalores de (ATA)n×n son todos reales y no negativos, es decir, mayoreso iguales a 0.Definicion 1Valores singulares, para una matriz Am×n, los valores singulares de A son las raıces cuadradasde los autovalores de (ATA)n×n y se denotan mediante σ1, σ2, . . . , σn. Es decir, si λi es un autovalor de(ATA)n×n entonces
σi =√λi
Normalmente los valores singulares de Am×n se ordenan de la siguiente forma:
σ1 ≥ σ2 ≥ . . . ≥ σn
Teorema 2 Descomposicion en valores singulares, sea Am×n con valores singulares σ1 ≥ σ2 ≥ . . . ≥ σr,σr 6= 0 y σr+1 = σr+2 = . . . = σn = 0. Consideremos, sin perdida de generalidad, el caso m > n. Entonces,existe una matriz Um×m ortogonal, una matriz Vn×n ortogonal y una matriz Σm×n, tal que
A = UΣV T
donde
Σ =
[Dr×r Or×(n−r)
O(m−r)×r O(m−r)×(n−r)
]
Dr×r =
σ1 . . . 0...
. . ....
0 . . . σr
Op×q =
Ø11 . . . 01q...
. . ....
Op1 . . . Opq
para todo r,p,q ∈ N. Las columnas de la matriz V, vi, se denominan vectores singulares por la derecha de A,y corresponden a los autovectores normalizados de la matriz simetrica (ATA)n×n. Las columnas de la matrizU, ui, se denominan vectores singulares por la izquierda de A, y se pueden calcular mediante la igualdadui = 1
σiAvi para todo σi 6= 0.
EjercicioEncontrar la descomposicion en valores singulares (DVS) de la siguiente matriz
A =
[1 1 00 0 1
]Calculemos los valores singulares. Por la defincion 1 para encontrar los valores singulares de la matriz A,debemos determinar los autovalores de la la matriz ATA.
ATA =
1 1 01 1 00 0 1
Los autovalores de ATA son
|A− λI| = 0λ1 = 2, λ2 = 1 y λ3 = 0
Ing. Mecatronica 32 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
y sus autovectores correspondientes son
(A− λI)X = 0
110
, 0
01
, −1
10
Determinemos la matriz V. Las columnas de la matriz V son los autovectores normalizados de los autovaloresde la matriz ATA. La matriz V es 1/
√2 1 −1/
√2
1/√
2 0 1/√
20 1 0
Determinemos la matriz U. Sea vi la columna i de la matriz V y σi el valor singular correspondiente. Lacolumna ui de la matriz U es
ui =1
σiAvi
U =
[1 00 1
]La factorizacion de la matriz A sera
A =
[1 1 00 0 1
]=
[1 00 1
] [ √2 0 0
0 1 0
] 1/√
2 1 −1/√
2
1/√
2 0 1/√
20 1 0
Programa del SVD
function [U,E,V]=svd1(A)
[m,n]=size(A);
B=A’*A;
[v,e]=eig(B);
E=zeros(n);
V=zeros(n);
U=zeros(m,n);
Z=zeros(m,1);
p=e;
q=v;
j=n;
for i=1:n
E(i,i)=sqrt(p(j,j));
V(:,i)=q(:,j);
k=E(i,i);
if k==0
U(:,i)=Z;
else
U=(A./k)*V(:,i);
end
j=j-1;
end
U
E
V
Ing. Mecatronica 33 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
9.4.2. Sistemas lineales mal condicionados
Matriz mal condicionada: una matriz A esta mal condicionada si pequenos cambios en sus elementospueden producir cambios grandes en las soluciones del sistema lineal Ax = b. Si pequenos cambios de loselementos de A producen unicamente cambios pequenos en las soluciones de Ax = b, entonces se dice que Aesta bien condicionada. EjercicioConsideremos las matrices B y d tales que
La solucion exacta del sistema de ecuaciones lineales Bx = d es:
x =
0, 1024−2, 415513, 2492−26, 869721, 5704−5, 3864
Ahora supongamos que perturbamos ligeramente uno de los coeficientes de la matriz B. Por ejemplo, consi-deremos B tal que B(i, j) = B(i, j)∀i,j salvo B(6, 4) = 11, 1110, en lugar de 11,1111. La solucion del sistemaBx = d es ahora
x =
0, 0700−1, 60818, 3197−15, 0451
9, 3534−0, 8313
Ing. Mecatronica 34 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Un cambio de alrededor de una cienmilesima en un coeficiente ha dado lugar a cambios muy significativosen el vector solucion. Es importante observar que las perturbaciones de los coeficientes de un sistema linealno ocurren de forma “intencionada”, como en el anterior ejemplo donde hemos introducido nosotros dichasperturbaciones. Las fuentes mas comunes de estas perturbaciones son el truncamiento y redondeo de losresultados parciales que tiene lugar de forma inevitable durante los calculos. Recordad que los ordenadorestrabajan con aritmetica finita, lo que significa que la representacion de practicamente cualquier numero reallleva asociado un error. Aunque bien es verdad que estos errores son muy pequenos, tambien lo es que estosse van acumulando durante los calculos produciendo cambios que no son despreciables y pueden influir. Siun sistema lineal esta mal condicionado y disponer de metodos para abordar los problemas que de ellos sederivan. Como veremos, la descomposicion en valores singulares es uno de ellos.
Definicion 4 Rango numerico: sea el numero real δ > 0 una cota para los valores singulares de unamatriz Am×n, tal que
El numero natural r coincide con el rango de la matriz A. Al numero natural q para el cual
σq > δ
se le llama rango numerico de la matriz A
Definicion 5 Matriz truncada: sea Am×n una matriz m × n cuya descomposicion en valores singularesesta dada por
A = UΣV T
y sea el numero natural q su rango numerico. La matriz truncada de A se define como
At = UΣtVT
donde
Σt =
[Dq×q Oq×(n−q)
O(m−q)×q O(m−q)×(n−q)
]
Dq×q =
σ1 . . . 0...
. . ....
0 . . . σq
Op×s =
Ø11 . . . 01s...
. . ....
Op1 . . . Ops
Definicion 6 Pseudo-Inversa truncada: sea Am×n la matriz de la definicion anterior cuyo rango numerico esq. La matriz pseudo-inversa truncada de A se define como
A† = V Σ†tUT
donde
Σ†t =
[D−1q×q Oq×(m−q)
O(n−q)×q O(n−q)×(m−q)
]
D−1q×q =
1σ1
. . . 0...
. . ....
0 . . . 1σq
Ing. Mecatronica 35 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Op×s =
O11 . . . O1s
.... . .
...Op1 . . . Ops
Programa solucion de un sistema mal condicionado
function x=svdp1(A,b,d,c)
[m,n]=size(A);
[U,S,V]=svd(A)
cond(A);
if cond(A)<c
for i=1:n
if S(i,i)<d
S(i,i)=0;
else
S(i,i)=1/S(i,i);
end
end
A=V*S*U’
x=A*b;
else
Ai=inv(A);
x=Ai*b;
end
Ing. Mecatronica 36 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Programa Factorizacion QR
function [Q,R]=fact_QR(A)
[n,n]=size(A);
u(1:n,1)=A(1:n,1);
f1=zeros(n,n);
f2=zeros(n,n);
s=zeros(n,n);
for b=1:n
f1(1,1)=f1(1,1)+A(b,1)*u(b,1);
f2(1,1)=f2(1,1)+u(b,1)*u(b,1);
end
for k=2:n
for j=1:k-1
for i=1:n
f1(j,k)=f1(j,k)+A(i,k)*u(i,j);
f2(j,k)=f2(j,k)+u(i,j)*u(i,j);
end
s(1:n,k)=s(1:n,k)+f1(j,k)/f2(j,k)*u(1:n,j);
end
u(1:n,k)=(A(1:n,k)-s(1:n,k));
end
ac=zeros(1,n);
for h=1:n
for l=1:n
ac(1,h)=ac(1,h)+u(l,h)^2;
end
Q(1:n,h)=u(1:n,h)/sqrt(ac(1,h));
end
R=Q’*A;
R
Q
Ing. Mecatronica 37 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Programa del Algoritmo de ThomasMatriz Tridiagonal: en algebra lineal se denomina matriz tridiagonal a una matriz cuyos elementos son solodistintos de cero en la diagonal principal y las diagonales adyacentes por encima y por debajo a esta.
1 4 0 03 4 1 00 2 3 40 0 1 3
El algoritmo de Thomas se utiliza cuando la matriz de los coeficientes del sistema es tridiagonal. En estemetodo se trabaja con las filas en forma similar al metodo de eliminacion de Gauss. Aquı se reemplaza cadafila por una combinacion lineal de filas apropiada, de manera que se anulen los elementos de la diagonalinferior y los elementos de la diagonal principal sean unos.
function [a,d,c,x]=thomas(A,b)
[m, n]=size(A);
[o, p]=size(b);
if o==m & p==1
A
b
else
errordlg(’Error en la dimension de la matriz b’)
end
if m==n
d(1,1)=A(1,1);
a(1,1)=0;
c(n,1)=0;
for i=2:n
d(i,1)=A(i,i);
a(i,1)=A(i,i-1);
end
for i=1:n-1
c(i,1)=A(i,i+1);
end
else
errordlg(’Error en la dimension de la matriz A’)
end
for k=1:n-1
if d(k)~=0
continue
else
errordlg(’Existe un 0 en la diagonal de la matriz’)
end
d(k+1)=d(k+1)-(a(k+1)*c(k))/d(k);
b(k+1)=b(k+1)-(a(k+1)*b(k))/d(k);
k=k+1;
end
if d(k)~=0
d;
else
errordlg(’Sistema sin solucion’)
end
x(n)=b(n)/d(n);
k=n-1;
for k=n-1:-1:1
Ing. Mecatronica 38 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
x(k)=(b(k)-c(k)*x(k+1))/d(k);
end
x
9.4.3. Aplicaciones
La descomposicion en valores singulares de una matriz es una herramienta util en muchas aplicaciones,como por ejemplo: resolucion de sistemas de ecuaciones mal condicionados, aproximacion por mınimos cua-drados y compresion de imagenes digitales.Comprension de Imagenes digitalesSupongamos que tenemos una imagen en tonos de gris con un tamano de 340x280 pixeles. Cada pixel tiene256 tonos de gris, lo que puede representarse mediante un numero entre 0 y 255. Podemos almacenar estainformacion en una matriz A340x280, pero transmitir y manipular estos 95200 numeros es muy costoso. Sinembargo, gracias a la descomposicion en valores singulares podemos transmitir solamente los datos corres-pondientes a los primeros 20 valores singulares de A340x280. De esta forma, en lugar de transmitir los 95200numeros, solo necesitamos enviar los 20 valores singulares de la matriz D, mas los 20 vectores columna de lamatriz U y los 20 vectores columna de la matriz V, es decir, un total de 20 + 20(340) + 20(280) = 12420numeros
Programa Comprension en gris
A =imread(’palmera.jpg’,’jpg’);
figure(1);
colormap(gray)
imagesc(A);
A=double(A);
Ing. Mecatronica 39 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
[m,n]=size(A);
[m,n,p]=size(A);
[U,S,V]=svd(A);
figure(2)
m=8;
for i=1:9
A1=U(:,1:m)*S(1:m,1:m)*V(:,1:m)’;
A2=uint8(A1);
subplot(3,3,i);
imshow(A2)
colormap(gray);
m=m+8;
end
Ing. Mecatronica 40 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Programa Comprension a color
A=imread(’sirena.jpg’,’jpg’);
figure(1);
imagesc(A);
A=double(A);
[f,c,d]=size(A);
R=A(1:f,1:c,1);
V=A(1:f,1:c,2);
Z=A(1:f,1:c,3);
[Ur,Sr,Vr]=svd(R); %rojo
[Uv,Sv,Vv]=svd(V); %verde
[Uz,Sz,Vz]=svd(Z); %azul
figure(2);
for i=1:6
v=10*i;
A1(:,:,1)=Ur(:,1:v)*Sr(1:v,1:v)*Vr(:,1:v)’; %compresion de rojo
A1(:,:,2)=Uv(:,1:v)*Sv(1:v,1:v)*Vv(:,1:v)’; %compresion de verde
A1(:,:,3)=Uz(:,1:v)*Sz(1:v,1:v)*Vz(:,1:v)’; %compresion de azul
Una funcion spline esta formada por varios polinomios, cada uno definido sobre un subintervalo, que seunen entre sı obedeciendo a ciertas condiciones de continuidad.
Ing. Mecatronica 46 Fecha de entrega: 07/07/2015
Metodos Numericos Chiluisa Melanie NRC:1662
Existen grados para el spline 1, 2, 3, . . . enla grafica podemos observar un spline de grado 1(azul), grado2(verde) y grado 3(amarillo). Para un S-1 tendremos
s− 1 =
y1 = a1x+ b [x1, x2]y2 = a2x+ b [x2, x3]y3 = a3x+ b [x3, x4]y4 = a4x+ b [x4, x5]
En el caso de s-2 y s-3 deteminaremos los coeficientes a, b, c por medio de la primera y segunda derivadarespectivamente