• No se han encontrado resultados

Programaci´ on: el m´ etodo iterativo con direcciones aleatorias

N/A
N/A
Protected

Academic year: 2022

Share "Programaci´ on: el m´ etodo iterativo con direcciones aleatorias"

Copied!
3
0
0

Texto completo

(1)

Programaci´ on: el m´ etodo iterativo con direcciones aleatorias

y con la b´ usqueda exacta sobre cada recta

Objetivos. Programar el m´etodo iterativo con direcciones aleatorias y con la b´usqueda exacta sobre cada recta.

Requisitos. Soluci´on de sistemas sim´etricas positivas definidas por medio de la minimi- zaci´on de un funcional.

1. El m´ınimo de una forma cuadr´atica sobre una recta. Sea A una matriz real sim´etrica estrictamente positiva definida de orden n, y sea b ∈ Rn. Dado un vector x ∈ Rn y una direcci´on p ∈ Rn\ {0}, consideremos la funci´on

g(α) = 1

2(x + αp)>A(x + αp) − b>(x + αp).

Escriba g como un polinomio de grado 2 en la variable α, calcule g0 y encuentre el punto αmin donde g alcanza su valor m´ınimo. Se recomienda usar la notaci´on r = b − Ax.

2. El cambio del residuo al cambiar el vector. Sean A, b, x, p, r los mismos que en el ejercicio anterior. Definimos el vector nuevo y como

y = x + αp.

Exprese el residuo nuevo b − Ay a trav´es del residuo previo:

b − Ay = b − Ax

| {z }

r

+???.

3. Algoritmo.

function [x, s] = randomiter(A, b, tol, smax), n = length(b);

x = zeros(n, 1);

r = b;

s = 0;

while (s < smax) && (norm(r) >= tol), p = 2 * rand(n, 1) - ones(n, 1);

q = A * p;

alpha = (p’ * r) / (p’ * q);

x = x + alpha * p;

r = r - alpha * q;

s = s + 1;

end end

Programaci´on: direcciones aleatorias, p´agina 1 de 3

(2)

4. Una modificaci´on del algoritmo que guarda los pasos.

function [xsequence] = randomitersequence(A, b, tol, smax), n = length(b);

xsequence = zeros(n, smax);

x = zeros(n, 1); r = b; s = 0;

while (s < smax) && (norm(r) >= tol), p = 2 * rand(n, 1) - ones(n, 1);

q = A * p;

alpha = (p’ * r) / (p’ * q);

x = x + alpha * p;

r = r - alpha * q;

s = s + 1;

xsequence(:, s) = x;

end end

5. Prueba en el plano con un dibujo. El siguiente c´odigo consiste de dos funciones y se debe guardar en un archivo plotrandomiter.m

function [] = plotrandomiter(), A = [3 -2; -2 2];

sol = [1; -6]; # exact solution b = A * sol;

n = length(b);

xsequence = randomitersequence(A, b, 1.0E-8, 6);

disp(xsequence);

r = max(abs(xsequence(:, 1) - sol));

plotdomain = [sol(1) - r, sol(1) + r, sol(2) - r, sol(2) + r];

plot(xsequence(1, :), xsequence(2, :), ’-w’, ’linewidth’, 3);

hold on;

ezcontourf(@(var1, var2) f(var1, var2, A, b, sol), plotdomain, 100);

end

function [result] = f(var1, var2, A, b, sol), [size1, size2] = size(var1);

result = zeros(size1, size2);

for j = 1 : size1, for k = 1 : size2,

x = [var1(j, k); var2(j, k)];

result(j, k) = sqrt(0.5 * (x - sol)’ * A * (x - sol));

end end end

Programaci´on: direcciones aleatorias, p´agina 2 de 3

(3)

El dibujo correspondiente:

var2

var1

f (var1, var2, A, b, sol)

0.7 0.8 0.9 1 1.1 1.2 1.3

-2.3 -2.2 -2.1 -2 -1.9 -1.8 -1.7

6. Pruebas con matrices y vectores de tama˜nos grandes. Escriba una funci´on que haga pruebas de la funci´on randomiter con matrices y vectores aleatorios de tama˜nos grandes. Observe c´omo se cambia el tiempo de ejecuci´on y el n´umero de pasos al aumentar n. Para generar matrices aleatorias sim´etricas y positivas definidas se pueden usar los siguientes comandos:

B = rand(n, n); A = B’ * B;

Programaci´on: direcciones aleatorias, p´agina 3 de 3

Referencias

Documento similar

Esta propiedad es la de generar un nuevo vector p k usando solamente la direcci´ on anterior p k−1 .Por lo que este m´ etodo no necesita conocer p 0 ,... Por la de inducci´ on

Si en alg´ un momento nuestro intervalo [a, b] que contiene a la ra´ız se hizo muy corto, digamos su longitud es menor que un n´ umero xtol dado, entonces podemos terminar los

Estudiar un m´ etodo de ortogonalizaci´ on, en el cual se calcula la matriz de Gram de los vectores originales y se transforman simult´ aneamente los vectores y su matriz de Gram,

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

Se dice que A es estrictamente diagonal dominante por renglones, si en cada rengl´ on el valor absoluto de la entrada diagonal es estrictamente mayor que la suma de los

Ya sabemos calcular el gradiente de las formas lineales y cuadr´ aticas... Derivada direccional de la funci´

Estos apuntes est´ an escritos con ayuda de Lourdes Fabiola Uribe Richaud y Juan Esa´ u Trejo

Programaci´ on: m´ etodo babil´ onico para calcular ra´ıces cuadradas, p´ agina 1 de 2... Condici´ on de terminaci´ on y condici´ on de

Escribir una funci´ on que resuelva sistemas de ecuaciones lineales de la forma T x = b, donde T es una matriz cuadrada triangular inferior con entradas diagonales no nulas..

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´

Soluci´ on de sistemas sim´ etricas positivas definidas por medio de la minimi- zaci´ on de un funcional, b´ usqueda exacta sobre cada recta, ortogonalizaci´ on de una lista de

Soluci´ on de sistemas sim´ etricas positivas definidas usando m´ etodos iterativos con b´ usqueda exacta sobre cada recta, ortogonalizaci´ on de Gram–Schmidt1. El m´ınimo de

Programaci´ on: el m´ etodo de Euler para resolver EDO, p´ agina 1 de 3.. F´ ormula de Euler para un paso. Esquema de los m´ etodos de un paso para resolver ecuaciones

Teorema de Picard sobre la existencia y unicidad de soluci´ on del problema de Cauchy, m´ etodos num´ ericos para resolver ecuaciones diferencias con condiciones iniciales..

Resolver los problemas con valores de frontera para ecuaciones diferencias ordinarias lineales de segundo orden usando el m´ etodo de

Saber pasar de una EDO de segundo orden a una EDO vectorial de primer orden, haber programado varios m´ etodos de Runge–Kutta (tambi´ en se pueden usar m´ eto- dos de

En alg´ un lenguaje de programaci´ on escribir una funci´ on que realice este m´ etodo, suponiendo que est´ an dadas una funci´ on que realiza alg´ un m´ etodo de Runge–Kutta

Vamos a suponer que desde el inicio nos dan una precisi´ on requerida de la respuesta que vamos a denotar por xtol (tolerancia de las abscisas), y si encontramos un intervalo

La funci´ on tiene que regresar el par cuya primera componente x es la ´ ultima aproximaci´ on al punto fijo y la segunda componente n muestra cuantas veces se calcularon los valores

El m´ etodo de M¨ uller est´ a basado en la misma idea, pero en cada paso se utilizan tres aproximaciones anteriores y la funci´ on f se reemplaza por un polinomio cuadr´ atico..

Teoremas sobre la convergencia al punto fijo, teorema sobre la divergencia del punto fijo, teorema del punto intermedio, teorema del punto medio, saber dibujar una gr´ afica en

El m´ etodo de punto fijo debe pararse cuando d es peque˜ no (menor que un n´ umero dado xtol) o cuando el n´ umero de los pasos hechos es mayor o igual al n´ umero de pasos m´

Jefe del Departamento de Matem´ aticas del IES Santa Teresa de Madrid y profesor de M´ etodos Matem´ aticos de la Universidad UAX, Madrid (hasta el curso 2008-2009)1.