Hidaulica Metodo del gradiente
Ejercicio 2
Profesor: Pablo Barrera
D´ıa 9 de marzo, 2010
El d´ıa de hoy veremos:
1. Sobre las rutinas CG
2. Ejercicio 2
1
Rutinas de matlab
En lap´agina, se les ha dejado dos m-files, el primero genera.m:
function [A,b]=genera
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
Script para el Metodo del Gradiente Conjugado elaborado
para unejemplo especifico. Generamos una matriz A de la
forma:
A = transpose(Q)*AF*Q
donde
AF = [ diag(v); diag(w) ]
v = rand(n,1)*100; w = a*rand(m,1)+c
y
[Q,R]=qr( rand(n+m) );
por otra parte ellado derecho
xt=linspace(0,2*pi,npm)’;
b=sin(xt);
Uso:
[A,b]=genera;
con el cual se construye una matriz A a partir de otra AF . A la segunda es una mtriz
diagonal a la cual se le hanasociado dos vectores v y w. El segundo es un vector cuyos
valores los hacemos aleatorios, pero dentro de una franja de valores. El primero es un vector
de valores aleatorio en un intervalo amplio. As´ı,AF tiene valores propios en una franja (el
segundo vector es la clave para formarlo).
Luego, se genera una matriz aleatoria de dimensi´on n + m, a la cual se le calcula su
descomposici´on QR, ytomamos la matriz ortonormal Q para transformar AF . Este c´alculo
hace que la matriz
A = QtAF Q
1
sea una matriz llena pero que tiene los mismos valores propios que AF .
El lado derecho delsistema Ax = b, lo calculamos como un vector aleatorio con valores
sobre la funci´on seno en el intervalo [0, 2π]. Si usamos las rutinas en la forma:
>> [A,b]=genera;
Se nos pedir´a la dimensi´on delprimer vector. Si revisa el c´odigo ver´a que v = rand(n,1)*100;
es un vector aleatorio entre 0 y 100. Seguidamente pedir´a la dimensi´on del segundo vector
y dos escalares, un factor y unatraslaci´on: w = a*rand(m,1)+c el valor de c no debe ser
negativo, ni a claro. Necesitamos A sim´etrica y definida positiva, recuerde que en tal caso
los valores propios son positivos.
El programa nos...
Regístrate para leer el documento completo.