MATLAB Answers


How can I create sparse symmetric positive definite linear system?

Asked by D
on 6 Aug 2013
Latest activity Commented on by sai chand on 17 Jul 2019
Dear All :) I'm looking for sparse symmetric positive definite linear system Ax=b. Is it possible to generate it in Matlab? I need matrix A about 50x50 (maximum 100x100 - minimum 20x20) and vector b. It might be floating point numbers... I prefer not compressed format ;)
Thank you in advance.


Sign in to comment.

1 Answer

Answer by Richard Brown on 6 Aug 2013
Edited by Richard Brown on 6 Aug 2013
 Accepted Answer

sprandsym is what you want.
m = 50;
density = 2/m; % for example
rc = 0.1; % Reciprocal condition number
A = sprandsym(m, density, rc, 1);
If you don't want it in compressed column format
A = full(A);
Verify positive definiteness


Show 1 older comment
Not directly, but you might try scaling and rounding results from sprandsym, or something like that
How to generate the matrix b.
Can it be a random one independent of the way A is generated?
I needed to generate a symmetric sparse positive definite matrix. can you help me in that?

Sign in to comment.