annotate vandermonde.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
parents 0090a86d8b72
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
660
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
1 % Create vandermonde matrix for points x and polynomials of order p
770
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
2 % x is a list of N points of size [N,dim],
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
3 % p is a list of polynomial orders of size [M, dim].
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
4 % the given mononomials are evaluated and the NxM matrix V is returned.
660
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
5 function V = vandermonde(x, p)
770
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
6 assert(size(x,2) == size(p,2), 'x and p must have the same number of columns')
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
7 n = size(x,1);
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
8 m = size(p,1);
660
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
9
770
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
10 for i = 1:m
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
11 V(:,i) = mononomial(x, p(i,:));
660
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
12 end
770
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
13
0090a86d8b72 Improve mononomial and vandermonde functions to work in multiple dimension and adapt to sym or double inputs
Jonatan Werpers <jonatan@werpers.com>
parents: 660
diff changeset
14 assertSize(V,[n,m]);
660
184833fe4c0e Add monomial, vandermonde and stencil cretation tools
Jonatan Werpers <jonatan@werpers.com>
parents:
diff changeset
15 end