You are now following this Submission
- You will see updates in your followed content feed
- You may receive emails, depending on your communication preferences
A = RANDCONDMAT(n, cond, options)
Generates a random n x n matrix with the condition number equal to cond.
A = RANDCONDMAT(...,'symmetric')
Generates a symmetric A.
A = RANDCONDMAT(...,'positive')
Generates a positive definite (either symmetric or not) A.
A = RANDCONDMAT(...,'norm', nrm)
Forces A's matrix norm to equal nrm. Defaults to 1.
This utility can be useful in various tests of numerical algorithms. Example:
n=100;
nchecks = 100
t=zeros(nchecks,1);
er=zeros(nchecks,1);
for i=1:nchecks;
cnd = 30*i;
A = RandCondMat(n,cnd,'symmetric','positive');
b= rand(n,1);
tic; x = pcg(A,b); t(i)=toc;
er(i) = norm(b - A*x);
end
plot ([er,1000*t]); legend('absolute error','time (ms)')
REMARK:
Do not make any assumptions about the distribution of the drawn matrices - specifically, it is not uniform with respect to the induced Lebesgue measure in R^(n^2). The most that can be said is that any matrix in a specified category (e.g., symmetric+positive) is reacheble in principle, using the implemented algorithms.
Cite As
Ofek Shilon (2026). RandCondMat (https://se.mathworks.com/matlabcentral/fileexchange/11782-randcondmat), MATLAB Central File Exchange. Retrieved .
General Information
- Version 1.0.0.0 (2.21 KB)
-
No License
MATLAB Release Compatibility
- Compatible with any release
Platform Compatibility
- Windows
- macOS
- Linux
| Version | Published | Release Notes | Action |
|---|---|---|---|
| 1.0.0.0 | warning remarks added, support for positive + non-symmetric restored (using a different algorithm). |
