Main Content

stcol

scattered translates 型選点行列

構文

colmat = stcol(centers,x,type)
colmat = stcol(...,'tr')

説明

colmat = stcol(centers,x,type) は行列で、(i,j) 番目のエントリは次のとおりです。

ψj(x(:,i)),    i=1:size(x,2),j=1:n

二変量関数 ψj と数値 ncenters および文字ベクトルまたは string スカラー type に依存します。これについては、stmak の説明で詳しく述べられています。

centersx は、行数が等しい行列でなければなりません。

type の既定値は文字ベクトル 'tp' で、この既定値の場合、nsize(centers,2) に等しくなり、関数 ψj は次によって与えられます。

ψj(x)=ψ(xcenters(:,j)),   j=1:n

ψ は、薄板スプライン基底関数です。

ψ(x)=|x|2log|x|2

|x| は、ベクトル x のユークリッド ノルムを示しています。

メモ:

type のその他の指定可能な値の説明については、stmak を参照してください。

行列 colmat は、次の線形システムの係数行列です。

jajψj(x(:,i))=yi,   i=1:size(x,2)

f がサイト x(:,i) (すべての i について) で値 yi を内挿するためには、関数 f = Σjajψj の係数 aj が上記を満たしていなければなりません。

colmat = stcol(...,'tr') は、stcol(...) によって返された行列の転置を返します。

例 1. 以下は、次の関数を評価し、

f(x)=ψ(xc1)+ψ(xc2)+ψ(xc3)3.5ψ(x)

規則的なメッシュにプロットします。ψ は前述の薄板基底関数で、c1、c2、c3 の 3 つの点は単位円上にあります。以下の Figure を参照してください。

a = [0,2/3*pi,4/3*pi]; centers = [cos(a), 0; sin(a), 0];
[xx,yy] = ndgrid(linspace(-2,2,45)); 
xy = [xx(:) yy(:)].';
coefs = [1 1 1 -3.5];
zz = reshape( coefs*stcol(centers,xy,'tr') , size(xx));
surf(xx,yy,zz), view([240,15]), axis off

The figure shows a surface containing a paraboloid.

例 2. 以下は、例 1 の関数の勾配の長さも評価し、同じメッシュ上にプロットします。

zz = reshape( sqrt(...
        ([coefs,0]*stcol(centers,xy,'tp10','tr')).^2 + ...
        ([coefs,0]*stcol(centers,xy,'tr','tp01')).^2), 
size(xx));
figure, surf(xx,yy,zz), view([220,-15]), axis off

参考

|