It is important to point out that this approach only workd for a very small number of points (nodes). The differentiating matrix D should be rank one deficient. However running the following simple test shows that even for a very small problem D has additional nullspaces. Already with 20 nodes and quadratically spaced point the method generates a degenerate differentiating matrix.
n = 20;
% Generate a seto of linearly spaced nodes 0 <= x <= 1
x1 = linspace( 0, 1, n )';
% generate quadratically spaced nodes as an example of arbitrary
x2 = x1.^2;
%% Compute the Differentiating Matrices
D1 = collocD( x1 );
D2 = collocD( x2 );
%% Compute the Rank of the Matrices
% The following test shows that the matrices do not have a consistent
% rank. It may be concluded that the method, although theoritically
% sound, is serioudly deficient in its numerical behavious.
disp('Rank of the differentiating matrices');
rD1 = rank( D1 )
rD2 = rank( D2 )
% Rank deficiency
disp('Rank deficiency of the differentiating matrices');
disp('All shound be rank-1 deficient.');
rdD1 = length(x1) - rD1
rdD2 = length(x2) - rD2
Hello! It 's the first time I write on the site. This feature I really like and I think I can be of help for the thesis I am doing. I would like to know if someone could help me to understand the inputs. What is f? xn? yn? xf? yf?
Thank you very much!
Work wonderfully. One question. Not quite understand the Gauss Quadrature, but I noticed that the code by default outputs 64 note points. Can I increase the number of note points in order to improve the integration results?