ϕ ϕ ϕ ϕ ϕ ϕ ϕα αϕ α ϕ

Anuncio
Métodos Numéricos 2011
Práctica 2
1 Normas vectoriales y matriciales
Consideremos el problema de resolución de un sistema lineal Ax = b donde
A ∈ R mxn b ∈ R m
Recordemos que
{
Im( A) = y ∈ R m : ∃x ∈ R n Ax = y
}
El problema tiene solución sii b ∈ Im( A)
Tiene solución única sii
Nu ( A) = { x : Ax = 0
} = {0 }
Ejercicios: usar las funciones Matlab rank, null para evaluar de antemano a existencia o
no de solución
(resp. de solución única )
Demostrar que el determinante de una matriz cuadrada triangular superior es el
producto de los elementos diagonales.
En la realidad de los problemas prácticos tenemos datos A, b inexactos y por otra parte la
computadora trabaja con aritmética finita de punto flotante.
Esto nos lleva a preguntarnos lo siguiente:
a)Como afecta a la solución x si A, b son perturbados por una pequeña cantidad.
b)Que significa que A sea casi de rango deficiente, o sea A tiene casi menos de
m vectores columna linealmente independientes.
c) Si b ∉ Im( A) como puede determinarse x tal que Ax sea cercano a b ?
Todas estas son cuestiones cuantitativas en las estamos empleando un lenguaje poco
preciso:
pequeña perturbación, casi de rango deficiente, cercano etc.
Para precisar estas nociones es que se introducen normas de vectores y matrices.
Una norma definida en un espacio vectorial es
una función ϕ : R
n
→ R que verifica
ϕ ( x) ≥ 0 ϕ ( x) = 0 ⇔ x = 0
ϕ ( x + y ) ≤ ϕ ( x) + ϕ ( y )∀x, y ∈ R n
ϕ (α x) = α ϕ ( x)∀α ∈ R, x ∈ R n
Notación ϕ ( x ) =
x
Ejemplos:
x
p
p
p
1
= ( x1 + ... + xn )
x 1 = ( x1 + ... + xn )
2
2 1
x 2 = ( x1 + ... + xn )
2
p
p ≥1
x
∞
= max k xk =
Ejercicios Calcular normas en Matlab con norm . Graficar curvas de nivel y superficie en
3d para n=2
Verificar la desigualdad de Holder haciendo un experimento repetido un cierto número de
veces
xt y ≤ x
p
y
1 1
+ = 1 para vectores columna x, y de componentes al
p q
q
azar
mxn
Dado que R
se puede identificar con R
normas vectoriales que sobre vectores.
mn
,sobre matrices se pueden definir las mismas
En particular la norma de Frobenius es la norma 2 de la matriz pensada como vector
(1.1)
A
F


=  ∑∑ Aij 2 
 i j

1
2
Matlab norm(A, ‘fro’)
Otra norma importante es la definida así :
(1.2)
 Ax 
A = max x ≠ 0 
 = max x =1 Ax }
x


mxn
Se denomina norma espectral de la matriz A ∈ R
{
Suponemos que la norma vectorial asociada es la norma 2
Observación por argumentos de continuidad sobre un compacto resulta que
∃x* ∈ { x : x = 1
}
tal que el anterior máximo se alcanza
A = Ax*
Ejercicios: mostrar que se verifican las propiedades de una norma.
AB ≤ A B
κ ( A) = A A−1 ≥ 1
Este número se llama número de condicionamiento
Supongamos que A es ortogonal, entonces como
AAt = I es
A = A−1 = 1 una tal matriz es el caso ideal de buen condicionamiento.
Cual es la norma espectral de una matriz diagonal ¿
Descomposición en valores singulares SVD
σ ∈ R y vectores u ∈ R m , v ∈ R n se dicen valor singular y vectores singulares
Un escalar
de una matriz
(1.3)
A ∈ R mxn si se verifican:
Av = σ u
u tA =σ v t
(1.4)
Toda matriz
(1.5)
donde
A ∈ R mxn se puede expresar en la forma
A = USV t
U = [u1 , u2 ,..., um ] y V = [v1 , v2 ,..., vn ] son matrices ortogonales mxm y nxn y la
matriz
S = diag (σ 1 ,σ 2 ,...,σ n ) σ 1 ≥ σ 2 ≥ ... ≥ σ n es diagonal S ∈ R mxn con elementos nonegativos
Es decir:
m>n
m=n
σ 1 0
0 σ
2

0 0

S =0 0
0 0


0 0

0
0
0 
0

σn
0


0 
σ 1 0 0
0 σ 0
2
m<n S =
0 0 0

 0 0 0 σm
0 0
0 0 
0 0

0 0
σ 1 0 0 
0 σ 0 
2

S=

0


 0 0 0 σm 
En forma de desarrollo en suma de matrices de rango 1:
p
A = USV t = ∑ σ k uk vk t
donde
p ≤ min {m, n}
1
σ 1 ≥ σ 2 ≥ ... ≥ σ p > σ p +1 = σ p+2 ... = σ n = 0
t
t
Cada matriz Ek = uk vk = U (:, k )V (:, k ) es de rango 1 y podría despreciarse de la suma
siempre que su correspondiente valor singular fuese despreciable.
Ejercicio de aplicación a compresión de imágenes.
Considerar una matriz rectangular con imagen mxn Aplicar SVD y estudiar aproximaciones
de distinto rango de la imagen original
Sensibilidad de sistemas inversibles
Supongamos p = m = n y que A es inversible. En tal caso usando la SVD
n
(1.6)
A−1 = ∑ σ j −1v j u j t
j =1
*
El vector x ∈ R
Notemos que
n
σn
n
n
j =1
j =1
x* = A−1b = ∑ σ j −1v j u j t b = ∑ σ j −1u j t bv j verifica Ax* = b
el mínimo valor singular de la matriz, puede ser tan pequeño, que el
coeficiente correspondiente
un t b
σn
de la anterior expansión sea muy grande para
pequeñas perturbaciones de b o de A .
Ejercicio
Consideremos la matriz
A= [ 93.477
1.963
26.821
23.2134
10.202
32.816
36.816
-86.3925
-28.832
62.414
57.234
44.693
;
;
;
]
b= [ 34.7177 ;
70.9241 ;
82.9271 ;
-26.2222 ]
A1=A(1:3, :)
b1=b(1:3)
bt=[ 34.7;
70.9 ;
82.9 ]
Usando svd(A1) estudiar la sensibilidad del sistema
A1 x = b1 frente a perturbaciones bt
Calcular el número de condición cond(A) y ver que coincide con
σ1
σn
Descomposición LU
Toda matriz
A ∈ R nxn se puede expresar en la forma:
A = LU donde L, U son matrices triangulares inferior y superior respectivamente
O bien existe una matriz de permutación P tal que
PA = LU
Veamos un algoritmo para encontrar las matrices
Caso LU sin pivoteo
En el primer caso consideremos la matriz M k
L, U , P
k=1
se anulan los elementos debajo de la diagonal de la matriz A
M1 = I −
a21
a11
E21 −
Donde las matrices
a31
a11
E31 − ... −
an1
a11
En1
Eij son las matrices canónicas con 1 en el lugar i,j y ceros en los
restantes lugares.Este paso supone que el pivote es no nulo. En el caso general habrá
que permutar ecuaciones hasta encontrar un pivote no nulo. Es asi como aparece la
matriz de permutaciones P .
En general en el paso k-esimo se anulan los elementos debajo de la diagonal en la
columna k de la matriz A multiplicando por la matriz
Mk = I −
ak +1,k
akk
Ek +1,k −
ak + 2,k
akk
Ek + 2,k − ... −
ank
akk
Enk
M k es triangular inferior inversible
a
a
a
M k −1 = I + k +1,k
E
+ k + 2,k
E
+ ... + nk
E
akk k +1,k
akk k + 2,k
akk nk
Notemos que cada matriz
En el último paso queda triangulada la matriz original, es decir, se obtiene una matriz
triangular inferior U producto de premultiplicar sucesivamente por las matrices M k
M n −1M n −2 ...M 2 M 1 A = U
Con lo cual la matriz
L = M 1−1M 2 −1...M n −1−1 es una matriz triangular inferior con unos
en la diagonal
Ejercicio
Verificar en Matlab todos los anteriores pasos de la descomposición.
Ejemplo
A=[1
2
3
4
5
6
7
8
0 ];
Para ver la descomposición LU se llama la función Matlab lu
[L1,U] = lu(A)
L1 =
0.1429
1.0000
0
0.5714
0.5000
1.0000
1.0000
0
0
U=
7.0000
8.0000
0
0.8571
0
0
0
3.0000
4.5000
Notar que L1 es una permutación de una matriz triangular También podemos llamar con
3 argumentos de salida
[L2,U,P] = lu(A) para explicitar la matriz de permutación.
Para verificar la factorizacion hacemos
L1*U
Y comparamos con A
La inversa de la matriz original A B= inv(A), se calcula a partir de los factores
triangulares
B = inv(U)*inv(L1)
Si usamos 3 argumentos
[L2,U,P] = lu(A)
Tenemos
L2 =
1.0000
0
0
0.1429
1.0000
0
0.5714
0.5000
1.0000
U=
7.0000
8.0000
0
0.8571
0
0
0
3.0000
4.5000
P=
0
0
1
1
0
0
0
1
0
Vemos que L2 = P*L1.
Para ver que L2*U es una permutación de A
hacemos P*A - L2*U
El determinante d = det(A)
Se calcula a partir de los determinantes de los factores triangulares
d = det(L)*det(U)
La solución de Ax = b se obtiene por división a izquierda
x = A\b
Usando la descomposición se calcula efectivamente mediante dos divisiones a izquierda
sucesivas
y = L\b
x = U\y
La programación de cada de división L\b U\y es muy sencilla.
Programarlo en Matlab: escribir funciones [y,error]=forw( L,b) y [x,error]=back(U,y)
que efectuan ese cálculo. Comparar resultados con el uso del operador \
Descomposición QR ortogonal-triangular
La descomposición QR de una matriz rectangular
A ∈ R mxn la expresa en la forma
A = QR o bien AP = QR donde Q, R, P son respectivamente una matriz ortogonal
una matriz triangular superior mxn y una matriz de permutaciones nxn
mxm
Notemos que en caso de aparecer la matriz P de permutaciones es porque se desea que
los elementos diagonales de la matriz R sean decrecientes en valor absoluto.En tal caso
el algoritmo permuta columnas de la matriz A para lograr tal fin.
Ejemplo
Consideremos
A= [1
2
3
4
5
6
7
8
9
10
11
12 ]
Calcular su rango
Descomponemos QR
[Q,R] = qr(A)
Q=
-0.0776
-0.8331
0.5444
0.0605
-0.3105
-0.4512
-0.7709
0.3251
-0.5433
-0.0694
-0.0913
-0.8317
-0.7762
0.3124
0.3178
0.4461
R=
-12.8841 -14.5916
0
-1.0413
-16.2992
-2.0826
0
0
0.0000
0
0
0
R tiene ceros debajo de la diagonal El cero en R(3,3) implica que R, y por consecuencia A, no
tiene rango completo. Porque ?
Ejemplo
Sea A como en el ejemplo anterior. La factorización QR se usa para resolver sistemas lineales
sobredeterminados o sea con más ecuaciones que incógnitas.
b = [1;3;5;7]
El sistema Ax = b tiene 4 ecuaciones y tres incógnitas. Geométricamente se trata de encontrar una
combinación lineal de columnas de la matriz A que sea igual al vector b. Esta combinación lineal
existe si b ∈ Im( A)
En el ejemplo usar la función rank para decir en que caso estamos
Si
b ∉ Im( A) entonces podemos plantear encontrar x como una solución del problema de mínimo
min x Ax − b
2
Esta solución en el sentido de cuadrados mínimos se puede calcular en Matlab ( también
Octave,Scilab) mediante el operador de división a izquierda
x = A\b
la cual produce
Warning: Rank deficient, rank = 2, tol = 1.4594E-014
x=
0.5000
0
0.1667
La solución x se calcula en dos pasos a partir de la factorización
y = Q'*b;
x = R\y
La cantidad tol es una tolerancia que se usa para decidir cuando un elemento diagonal de R es
despreciable
Si se calcula con [Q,R,E] = qr(A) donde E es una matriz de permutación entonces
tol = max(size(A))*eps*abs(R(1,1))
Verificar la solución haciendo
Ax
Comparar con
b . Es consistente el sistema lineal ?
Ejercicio: Repetir todo el anterior análisis y cálculo para
A= [ 93.477
10.202
1.963
32.816
26.821
36.816
23.2134 -86.3925
b= [ 34.7177 ;
70.9241 ;
82.9271 ;
-26.2222 ]
-28.832
62.414
57.234
44.693 ]
bt= [ 34.7177 ;
70.9241 ;
82.9271 ;
-26.2220 ]
Problemas
1 Aplicación de cuadrados mínimos al ajuste de funciones sobre datos
experimentales
Se mide una magnitud y para ciertos valores del tiempo t obteniéndose la
siguiente tabla
t
y
0.0 0.82
0.3 0.72
0.8 0.63
1.1 0.60
1.6 0.55
2.3 0.50
Se postula la siguiente función para modelar el fenómeno
y (t ) = c1 + c 2e−t
Aplicar la técnica anteriormente expuesta para resolver el sistema sobredeterminado por
el método de cuadrados mínimos. Plotear la función obtenida junto con los datos
experimentales.
Idem para modelar la tabla
t = [0 0.3 0.8 1.1 1.6 2.3]';
y = [0.6 0.67 1.01 1.35 1.47 1.25]';
con las funciones
y (t ) = a1 + a2e −t + a3te −t
y (t ) = b1 + b2t + b3t 2
Plotear las funciones obtenidas junto con los datos experimentales.
Descomposición de Cholesky
La factorización de Cholesky expresa una matriz simétrica como producto de
una matriz triangular inferior y su traspuesta
A = Rt R
Para tal matriz
xt Rt R x = R x
2
2
≥ 0∀x ∈ R n lo cual nos dice que A es definida
positiva suponiendo que sea inversible.
En Matlab invocando la funcion pascal(n) nos fabrica una matriz definida positiva nxn
A = pascal(6)
A=
1
1
1
1
1
1
1
2
3
4
5
6
1
3
6
10
15
21
1
4
10
20
35
56
1
5
15
35
70 126
1
6
21
56 126 252
R = chol(A)
R=
1
1
1
1
1
1
0
1
2
3
4
5
0
0
1
3
6
10
0
0
0
1
4
10
0
0
0
0
1
5
0
0
0
0
0
1
Una tal factorización permite resolver el sistema Ax = b reemplazándolo por el
sistema
RR t x = b lo cual se puede resolver rápidamente con
x= R’\R\b
Autovalores y autovectores
Un autovalor y el autovector asociado de una matriz cuadrada son un escalar
vector u que satisfacen la ecuación
λ
Au = λ u
Cada autovalor es un cero del polinomio característico p (λ ) = det( A − λ I )
El polinomio característico tiene n ceros en el plano complejo contados con su
multiplicidad.
Si ubicamos a todos los posibles autovalores de la matriz en una matriz diagonal
λ1
Λ=
0
0
0
se tiene la expresión matricial AV = V Λ
0
0 λ2 0 0 0 λn
El polinomio característico tiene n ceros en el plano complejo contados con su
multiplicidad.
y un
En forma equivalente A = V ΛV
−1
siempre que V sea inversible
Ejemplo de cálculo
A =[
0
-6
-1
6
2 -16
-5
20 -10 ]
Haciendo
lambda=eig(A) se tiene un vector con los autovalores
[V,D]= eig(A) produce autovectores y autovalores.
Los autovectores aparecen normalizados.
Otro ejemplo
A= [6
12
19
-9 -20 -33
4
9
15 ]
Que pasa con la matriz de autovectores en este caso ?
Sugerencia: analizar la matriz usando svd o qr para decidir si la matriz es
numéricamente no-inversible y en tal caso no-diagonalizable
Potencias y funciones analíticas de una matriz.
m
Sea
p ( z ) = ∑ ak z k un polinomio de grado m Si A ∈ K nxn donde K = R o K = C
k =0
0
n +1
n
tiene sentido calcular p ( A) : A = I , A = AA
Esto se puede generalizar a funciones analíticas por ejemplo
∞
exp( z ) = ∑ z k / k ! que converge absolutamente en todo
0
el plano complejo. Es decir las sumas parciales matriciales
I + A+
A2 A3
An
convergen a una matriz que llamaremos
+
+ ... +
2! 3!
n!
exp( A)
En Matlab la función expm ( A) calcula la exponencial de una matriz cuadrada.
Notemos que si la matriz es diagonalizable entonces A = V ΛV
exp( A) = exp(V ΛV −1 ) = V exp(Λ )V −1
eλ1

0
exp(Λ ) = 


 0
0
eλ2
0
0

0


eλn 
−1
Aplicación de la exponencial de una matriz
Consideremos la ecuación diferencial ordinaria de segundo orden con coeficientes
constantes de un oscilador Recordemos que a esta relacionado con el rozamiento y
b con la frecuencia fundamental del oscilador.
y ''+ ay '+ by = 0
Haciendo el cambio de variables
y1 = y, y2 = y1' se tiene
y2 '+ ay2 + by1 = 0
Que en forma matricial se expresa
0
1 y1
y1'
=
o sea como un sistema de primer orden
'
−b − a y 2
y2
y1
y2
u ' = Au donde el vector u =
La solución es una generalización del caso escalar
u (t ) = exp(tA)u0
Para ver que efectivamente se satisface la ecuación consideremos la función
φ (t ) = exp(tz )
derivando respecto de la variable t
dφ
= z exp(tz ) = zφ reemplazando z por la matriz A
dt
d exp(tA)
du
= A exp(tA) con lo cual
= A exp(tA)uo = Au
dt
dt
Notemos que además
u (0) = exp(0 A)u0 = Iu0 = u0
Observación: el polinomio característico de la ecuación diferencial es idéntico al de la
matriz del sistema diferencial. El comportamiento de la solución dependerá de los
autovalores de la matriz.
Ejercicio
Resolver en Matlab el anterior sistema para distintos valores de los coeficientes a,b y
del vector de condiciones iniciales u0 . Graficar la solución y(t)=y1(t) y su derivada
y’(t)=y2(t) para t
∈ [ 0, 20] y además graficar las órbitas en el espacio de las fases y1,y2
Cada orbita es la curva { (y1(t),y2(t)) , t ∈
[ 0, 20] }
Ejercicio
Resolver en Matlab: Hallar x (t ) ∈ R
3
0 ≤ t ≤ 1 que satisface el sistema
x = Ax con la condición inicial x(0) = x0 . Graficar la solución en 3D usando plot3
A=
0
6
-5
x0 =
1
1
1
-6 -1
2 -16
20 -10
Descargar