• No se han encontrado resultados

Programaci´ on: m´ınimos cuadrados usando QR

N/A
N/A
Protected

Academic year: 2022

Share "Programaci´ on: m´ınimos cuadrados usando QR"

Copied!
2
0
0

Texto completo

(1)

Programaci´ on: m´ınimos cuadrados usando QR

Objetivos. Programar una funci´on que resuelva el problema de m´ınimos cuadrados usan- do la descomposici´on QR. Se supone que el rango de la matriz coincide con el n´umero de sus columnas.

1. Funciones que programamos anteriormente. Suponemos que ya hemos progra- mado las siguientes funciones:

myqr(A) construye una factorizaci´on QR reducida de la matriz dada A, cuyas co- lumnas son linealmente independientes.

solveut(U, b) resuelve el sistema de ecuaciones lineales U x = b, si la matriz dada U es triangular superior e invertible.

2. Problema de m´ınimos cuadrados. Sean A ∈ Mn×m(R) y b ∈ Rn. Suponemos que r(A) = m ≤ n. Hay que encontrar un vector z ∈ Rm que minimice la funci´on f (x) := kAx − bk2.

3. Gradiente de la funci´on que queremos minimizar. Recuerde la f´ormula para el gradiente de la funci´on f :

∇f (x) =

4. Sistema de ecuaciones normales para el problema de m´ınimos cuadrados. Si z es la soluci´on del problema de m´ınimos cuadrados, entonces

A>Az =

| {z }

?

.

5. La soluci´on es la proyecci´on ortogonal sobre el subespacio generado por las columnas de la matriz. Supongamos que z es la soluci´on del problema. Entonces para cada x ∈ Rm, el vector Ax es ortogonal al vector Az − b:

>

 = x> = x> A>Az − A>b = 0.

6. Factorizaci´on QR reducida. Sea A ∈ Mn×m(R) con r(A) = m ≤ n. Una factoriza- ci´on QR reducida de A es un par de matrices (Q, R) tales que:

QR =

| {z }

?

, Q es de tama˜no × , R es de tama˜no × .

Las columnas de Q forman una lista ortonormal, esto es, Q>Q = . R es triangular

| {z }

?

e

| {z }

?

, por eso sus entradas diagonales son

| {z }

?

.

Programaci´on: m´ınimos cuadrados usando QR, p´agina 1 de 2

(2)

7. M´ınimos cuadrados por medio de QR reducida. Muestre c´omo hallar la soluci´on z del problema de m´ınimos cuadrados usando la factorizaci´on QR de la matriz A. Empiece con el sistema de ecuaciones normales:

A>Az =

| {z }

?

⇐⇒ (QR)>QRz =

| {z }

?

⇐⇒ . . .

8. Programaci´on: soluci´on del problema de m´ınimos cuadrados por medio de QR reducida.

function [z] = leastsquares(A, b), [Q, R] = myqr(A);

z = end

9. Pruebas con datos peque˜nos.

function [] = testleastsquares(), n = 8; m = 4;

A = 2 * rand(n, m) - ones(n, m);

b = 2 * rand(n, 1) - ones(n, 1);

z = leastsquares(A, b);

fz = norm(A * z - b) ^ 2;

normaleq = A’ * A * z - ???;

display(fz);

display(normaleq);

# construct some neighbors of z:

nneighb = 5;

X = repmat(z, 1, nneighb) + 0.1 * randn(m, nneighb);

fX = norm(A * X - repmat(b, 1, nneighb), ’cols’) .^ 2;

display(fX);

testorth = (A * X)’ * (A * z - b);

display(testorth);

end

10. Pruebas con datos de tama˜nos grandes. Modifique la funci´on anterior de tal manera que n y m sean sus argumentos. Hay que medir el tiempo de ejecuci´on de leastsquares. Adem´as de fz y normaleq, mostrar el elemento m´ınimo de fX y la norma del vector testorth.

Programaci´on: m´ınimos cuadrados usando QR, p´agina 2 de 2

Referencias

Documento similar

Hacer pruebas peque˜ nas de la funci´ on programada con matrices de 3 columnas, de 4 columnas, de 5 columnas, para verificar que la funci´ on regresa resultados correctos5. Pruebas

Revise libros y encuentre sugerencias sobre el c´ alculo del vector de Householder y la realizaci´ on del m´ etodo QR con reflexiones de Householder7. Intente de disminuir los

Programar una funci´ on que resuelva sistemas de ecuaciones lineales usan- do funciones programadas anteriormente que realizan la descomposici´ on QR y resuelven sistemas de

Soluci´ on de sistemas sim´ etricas positivas definidas con m´ etodos iterativos, con b´ usqueda exacta sobre cada recta1. Del sistema de ecuaciones a la minimizaci´ on de una funci´

Se supone que a la matriz A se puede aplicar el m´ etodo de eliminaci´ on de Gauss con pivotes diagonales, es decir, para cada p en el paso n´ umero p la entrada (p, p) es no

En lenguajes de programaci´ on orientados a matrices se pueden usar operaciones vectoriales para eliminar el ciclo sobre j.. M´ as a´ un, utilizando la operaci´ on de multiplicaci´

Nivel 2: la funci´ on tiene un ciclo y utiliza operaciones internas para calcular pro- ductos de matrices por vectores o productos di´ adicos de vectores.. Nivel 3: se usa una funci´

Programar algunos m´ etodos de un paso (el m´ etodo de Euler y algunos m´ eto- dos de Runge–Kutta expl´ıcitos o impl´ıcitos) para resolver sistemas de ecuaciones diferen-