アプリ版:「スタンプのみでお礼する」機能のリリースについて

この”教えて!goo”に載っていた「3次たたみ込み内挿法による補間」についてわからないことがあります.
f(t) = sin(π*t)/(π*t) と言う標本化関数を近似するやり方をとっています.近似すると…
   1-2|t|^2+|t|^3 (0≦|t|<1)
≒  4-8|t|+5|t|^2-|t|^3 (1≦|t|<2)
   0 (2≦|t|)
となるみたいですが,近似はどのようにするのでしょうか?いろいろと画像処理の本を調べて見ても,近似をする途中が載っていないので,誰か教えてください.

A 回答 (1件)

区間の両端で値と一階微係数が合うようにしてあるんですね。


f(t)=sinc(πt) = (sin πt)/(πt)
とすると
f'(t)=(d/dt)sinc(πt) = (cos πt))/t-(sin πt)/(π t^2)
従って
f(0)=1, f(1)=0, f'(0)=0, f'(1)=-1
です。これを満たす3次式g(t)=A+Bt+Ct^2+Dt^3が
g(t)=1-2t^2+t^3
です。条件が4つあるから係数を4個持つ3次式が必要なのです。

h(t)=4-8|t|+5|t|^2-|t|^3
の方はsinc(πt)とあまり似てません。(excelなどで計算してみると良いです。)
h(1) = f(1)=0, h(2)=f(2)=0, h'(1) = f'(1)= -1
は良いけれど、f'(2)=1/2 に対して、h'(2)=0です。
これは|t|>2を0で近似したいために、無理矢理h'(2)=0(滑らかに0に繋がる)を要請したものと考えられます。

3次式でもっと広い範囲を扱いたければ、n≧1において
f(n)= 0, f(n+1)=0
f'(n)={(-1)^n}/n , f'(n+1)=-{(-1)^n}/(n+1)
を使って、x=t-n, g(x)=A+Bx+Cx^2+Dx^3
を決定すればf(t)≒g(|t-n|)と近似できます。すなわち
g'(x)=(d/dx)g(x) = B+2Cx+3Dx^2
g(0)=0, g(1)=0より、
g'(n)={(-1)^n}/n , g'(n+1)=-{(-1)^n}/(n+1)
従って、
A = 0
B={(-1)^n}/n
C={(-1)^n}{-(n+2)/(n(n+1))}
D={(-1)^n}{1/(n(n+1))}
です。

なお、もっと高次の近似式を使える場合には、
sin πt = (πt) - {(πt)^3}/3! + {(πt)^5}/5! - {(πt)^7}/7! + .....
を使って、
f(t)=sinc(πt) =1 - {(πt)^2}/3! + {(πt)^4}/5! - {(πt)^6}/7! + .....
とすることもできます。(これもexcelなどでグラフに描いてみるとよく分かります)

なおstomachmanは計算間違いの常習犯です。
    • good
    • 0
この回答へのお礼

す・すばらしすぎる…(感涙)

本当にどうもありがとうございます!!
研究をしているんですが,教授に聞かれて,求め方がぜんぜんわからずに困っていました。EXCELでもやってみます。ありがとうございました.

お礼日時:2001/02/10 03:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!