Code covered by the BSD License

# Matrix approach to discretization of ODEs and PDEs of arbitrary real order

### Igor Podlubny (view profile)

12 Nov 2008 (Updated )

Functions illustrating matrix approach to discretization of ODEs / PDEs with fractional derivatives.

eliminator(n, ROWS)
```function S = eliminator(n, ROWS)
%
%ELIMINATOR
%
% Returns a matrix S that is called eliminator.
% S is a matrix such that S*A (assuming that this product
% exists) will not contain rows listed in row vector ROWS.
% Numbers of rows in ROWS can be unsorted.
%
% Example:
%     A = hilb(6);
%     S = eliminator(6, [4 6 2]);
%     B = S * A;
% Matrix B will contain rows 1, 3, 5 from the matrix A,
% matrix B will not contain rows 2, 4, 6 from matrix A.
%
% (C) 2000 Igor Podlubny, Blas Vinagre, Tomas Skovranek
%
% See:
% [1] I. Podlubny, A.Chechkin, T. Skovranek, YQ Chen,
%     B. M. Vinagre Jara, "Matrix approach to discrete
%     fractional calculus II: partial fractional differential
%     equations". http://arxiv.org/abs/0811.1355
% [2] R.G. Cooke, Infinite Matrices and Sequence Spaces,
%     MacMillan and Co., London, 1950. 347 pp.

S = eye(n);
r = sort(ROWS);
m = size(r,2);

for k = m:(-1):1
if r(k)-1 == 0
S = S((r(k)+1):(size(S,1)-k+1),:);
elseif r(k) == size(S,1)
S = S(1:(r(k)-1),:);
else
S = [S(1:(r(k)-1),:);  S((r(k)+1):(size(S,1)),:)];
end
end

```