Assignment_2_test_scripts
P1
% P1 Examines OrthoDet
n = 10;
nTrials = 1000;
clc
randn('seed',0);
nCorrect = 0;
for eg=1:nTrials
[U,S,V] = svd(randn(n,n));
if det(U)*OrthoDet(U) > 0
nCorrect = nCorrect + 1;
end
end
disp(sprintf('Number correct in %1d trials = %1d',nTrials,nCorrect))
P2
% P2 Explores the quality of Cond1Norm
clc
randn('seed',0);
disp('ratio = Cond1Norm(T) / (norm(T,1)*norm(inv(T),1))')
disp(' ')
disp('Approx Cond(T,2) minRatio aveRatio')
disp('---------------------------------------------------')
nTrials = 100;
n = 50;
for k=1:12
% Examine how close the estimated condition number is to the "true"
% condition number. Report both average and worst case.
s = 0;
for m = 1:nTrials
% Generate a random upper triangular matrix T with
% 2-norm condition 10^k
[U,S,V] = svd(randn(n,n));
S = diag(linspace(1/10^k,1,n));
[Q,T] = qr(U*S*V');
ratio = Cond1Norm(T)/cond(T,1);
s = s + ratio;
if m==1
minRatio = ratio;
else
minRatio = min(ratio,minRatio);
end
end
aveRatio = s/nTrials;
disp(sprintf(' 10^%2d %10.3f %10.3f',k,minRatio,aveRatio))
end
P3
% P3 Tests MarkovSol
randn('seed',0)
rand('seed',0)
format long
n = 15;
q = 3;
f = randn(n,1); g = randn(n,1);
u = randn(q,1); v = randn(q,1);
b = rand(n,1);
clc
[x0,X] = MarkovSol(f,g,u,v,b)