こういう問題分かる人いますか。実数$x_1 < \cdots < x_n$と$y_1, \ldots, y_n$があって、$f(x_i) = y_i$となるように補完する関数$f$を与えたいとします。ただし$x_{n+1} > x_1, \ldots, x_n$と$y_{n+1}$を与えて再度補間した関数$g$について、$g(x_{n+1}) = y_{n+1}$かつ$g(x) = f(x), x\leq x_n$が成り立つ。

区分線形関数はこういう性質を持ちますが、これより良いやり方は知られているでしょうか。例えば$C^1$とか$C^2$級でやるやり方とか。

Follow

@yoriyuki ぱっと思いつくのは $[x_i, x_{i+1}]$ を $f(x_i)=y_i$, $f(x_{i+1})=y_{i+1}$, $f'(x_i)=f'(x_{i+1})=0$ を満たす3次多項式で補完する方法ですね。(スプラインもどき?)
二階微分まで条件入れた5次多項式なら$C^2$になります。

@tetu

ありがとうございます。

題意は満たしているのですが、$f'(x_i)=f'(x_{i+1})=0$ていう条件がやりたいことからすると人工的に感じますね。階段関数をなめらかにしたものになっているので。

常に$f^{(m)}(x_i)=f^{m}(x_{i+1})=0$としてmを十分大きく取れば良いでしょうか。

@tetu 常に←不要

実装のことを考えると区分線形関数になりそう...

@yoriyuki 実際端点での傾きは0に限る必要は無いですが、その場合いくつにするかをどうやって決めるかが問題ですね。

あとは $[x_i, x_{i+1}]$ 上の多項式を$f_i$として $f_i(x_i)=y_i$, $f_i(x_{i+1})=y_{i+1}$, $f'_{i-1}(x_i)=f'_i(x_i)$ ($f'_{0}(x_1)$は適当に決める)の3条件を満たすように$f_i$を定めるというのも考えられます。

Sign in to participate in the conversation
Mathtodon

A Mastodon instance named Mathtodon, where you can post toots with beautiful mathematical formulae in TeX/LaTeX style.