I am supposed to plot the size k of a Hilbert matrix and condition number . I am supposed to plot k = 5, 10, 15, 20, 25, 30 vs condition # wrt to 1-norm, cond inf-norm, cond 2-norm
2 views (last 30 days)
Show older comments
I have the code below which outputs the respective matrices and condition numbers but I am confused on how I am supposed to plot the actual matrix vs the norms. code below;
k = [ 5 10 15 20 25 30];
for k = 1:5
hilbert = hilb(k)
cond(hilbert,2)
end
for n = 1:5
hilbert = hilb(k)
cond(hilbert,1)
end
for n = 1:5
hilbert = hilb(k)
cond(hilbert, inf)
end
%k = (5, 10, 15, 20, 25, 30);
%condNum = (1, 2, inf)
%plot(
Is there a better way to write the loop instead of repeating loops? Additionally, how would I plot the size versus the cond numbers ? Would it be better to do each separately for the three norms then record the values and then plot them? I am stuck on how to proceed and wonder if I am even writing this code correctly according to the instructions. Any pointers in the right direction would be greatly appreciated
0 Comments
Answers (1)
Dohyun Kim
on 27 Dec 2017
Edited: Dohyun Kim
on 27 Dec 2017
k = [5,10,15, 20, 25, 30];
cond1 = zeros(1,length(k));
cond2 = zeros(1,length(k));
condinf = zeros(1,length(k));
for i = 1 : length(k)
H = hilb(k(i));
cond1(i) = cond(H,1);
cond2(i) = cond(H,2);
condinf(i) = cond(H,inf);
end
plot(k,cond1,k,cond2,k,condinf)
I suggest you to use
semilogy(k,cond1,k,cond2,k,condinf)
instead of just plot. Since condition number grows fast, it is better to use log scale for y-axis
Also, you may get warning while get condition number for large k.
In my case, from k = 15, I get warning when we get condition number in 1-norm and inf-norm.
Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.765788e-19.
I think we cannot trust the result for k>=15.
However, result shows that they are bounded by 10^19 which appears to similar in the warning message.
FYI, RCOND is reciprocal of condition number (= 1/cond(A))
0 Comments
See Also
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!