Matrix approach to discretization of ODEs and PDEs of arbitrary real order
12 Nov 2008
18 May 2009)
Functions illustrating matrix approach to discretization of ODEs / PDEs with fractional derivatives.
function S = eliminator(n, ROWS)
% 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.
% 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
%  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
%  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),:);
S = [S(1:(r(k)-1),:); S((r(k)+1):(size(S,1)),:)];