|
| 1 | +function [A,properties] = indef(n,r) |
| 2 | +%INDEF Symmetric indefinite matrix with known inertia. |
| 3 | +% A = INDEF(n,r) is the n-by-n matrix with (i,j) element |
| 4 | +% (p(i) + p(j))^r, where r is nonnegative and p(i) = i/n. |
| 5 | +% r defaults to 2. |
| 6 | +% A = INDEF(p,r) has (i,j) element (p(i) + p(j))^r, where |
| 7 | +% p is an input vector of distinct positive entries. |
| 8 | +% If r is an integer with 0 <= r <= n-1 then A has |
| 9 | +% - ceil( (r+1)/2 ) positive eigenvalues, |
| 10 | +% - floor( (r+1)/2 ) negative eigenvalues, and |
| 11 | +% - n - r - 1 zero eigenvalues. |
| 12 | +% If r >= n-1 then A has |
| 13 | +% - ceil(n/2) positive eigenvalues, |
| 14 | +% - floor(n/2) negative eigenvalues. |
| 15 | +% The inertia is also known for real r with 0 < r < n-2. |
| 16 | + |
| 17 | +% Reference: |
| 18 | +% Rajendra Bhatia and Tanvi Jain, Inertia of the Matrix (p_i+p_j)^r], |
| 19 | +% J. Spectr. Theory, 5(1), 71-78, 2015. |
| 20 | + |
| 21 | +properties = {'symmetric', 'indefinite', 'positive'}; |
| 22 | +if nargin == 0, A = []; return, end |
| 23 | + |
| 24 | +p = n; |
| 25 | +if length(p) == 1 |
| 26 | + p = (1:n)'/n; |
| 27 | +end |
| 28 | +if nargin < 2, r = 2; end |
| 29 | +A = (p + p').^r; |
0 commit comments