Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

stmak

st 型の関数の組み立て

構文

stmak(centers,coefs)
st = stmak(centers,x,type)
st = stmak(centers,coefs,type,interv)

説明

stmak(centers,coefs) は、次によって与えられる関数 f の st 型を返します。

f(x)=j=1ncoefs(:,j)ψ(xcenters(:,j))

に対し

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

これは、薄板スプライン基底関数であり、|x| はベクトル x のユークリッド ノルムを示しています。

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

st = stmak(centers,x,type) は、次によって与えられる関数 f の st 型を st に保存します。

f(x)=j=1ncoefs(:,j)ψj(x)

ψj は文字ベクトルまたは string スカラー type で示されているとおり、次のいずれかになります。

  • 'tp00'、薄板スプラインの場合

  • 'tp10'、1 番目の引数に関する薄板スプラインの 1 次導関数の場合

  • 'tp01'、2 番目の引数に関する薄板スプラインの 1 次導関数の場合

  • 'tp'、既定の設定

以下で詳しく説明します。

'tp00'

ψj(x) = φ(|x – cj|2), cj =centers(:,j), j=1:n-3

ここで、φ(t) = tlog(t)

ψn–2(x) = x(1)

ψn–1(x) = x(2)

ψn(x) = 1

'tp10'

ψj(x) = φ(|x – cj|2), cj =centers(:,j), j=1:n-1

ここで、φ(t) = (D1t)(logt + 1)、D1t は t = t(x) = |x – cj|2 の偏導関数

x(1) に関して

ψn(x) = 1

'tp01'

ψj(x) = φ(|x – cj|2), cj =centers(:,j), j=1:n-1

ここで、φ(t) = (D2t)(logt + 1)、D2t は t = t(x) = |x – cj|2 の偏導関数

x(2) に関して

ψn(x) = 1

'tp' (既定の設定)

ψj(x) = φ(|x – cj|2), cj =centers(:,j), j=1:n

ここで、φ(t) = tlog(t)

また、st = stmak(centers,coefs,type,interv) は、interv{j} の指定により、形式 [a,b] (j 番目の変数の範囲) で、st 型の基本区間を指定します。interv の既定値は、すべての与えられた中心を含む最小のボックスとなります。

例 1. 以下は、薄板スプライン基底関数 ψ(x)=|x|2log|x|2, の次の Figure を生成します。ただし、この関数が原点近くで負であることを示すために、適切に制約されています。このため、0 レベルを示すための線が追加されています。

inx = [-1.5 1.5]; iny = [0 1.2];
fnplt(stmak([0;0],1),{inx,iny})
hold on, plot(inx,repmat(linspace(iny(1),iny(2),11),2,1),'r')
view([25,20]),axis off, hold off

例 2. ここでは、薄板スプライン基底関数の 1 次偏導関数 D2ψ (2 番目の引数に関する) を生成し、まったく同じドメイン上にプロットします。

inx = [-1.5 1.5]; iny = [0 1.2];
fnplt(stmak([0;0],[1 0],'tp01',{inx,iny}))
view([13,10]),shading flat,axis off

今回は、st 型の基本区間を明示的に設定した点に注意してください。

得られた以下の Figure は、原点近くの非常に強い変動を示しています。これは、ψ の "2 次" 導関数がそこに対数特異性をもつという事実を反映しています。

参考