|
◆ pchfd()
void pchfd |
( |
int |
n, |
|
|
double |
x[], |
|
|
double |
f[], |
|
|
double |
d[], |
|
|
int |
incfd, |
|
|
int |
skip, |
|
|
int |
ne, |
|
|
double |
xe[], |
|
|
double |
fe[], |
|
|
double |
de[], |
|
|
int * |
info |
|
) |
| |
区分3次エルミート(または3次スプライン)補間関数値および微分値
- 目的
- 本ルーチンは与えられた点における区分3次エルミート補間関数値および微分値を求める. 本ルーチンはそれ自身でエルミート補間に使用することができる. また, pchim, pchic, pchspまたはpchseのための補間値の計算に使用することができる.
関数値だけが必要な場合には, 本ルーチンのかわりにpchfeを使用するとよい.
- 引数
-
[in] | n | データ点数. (n >= 2) |
[in] | x[] | 配列 x[lx] (lx >= n)
独立変数値. x[]の要素は昇順でなければならない. |
[in] | f[] | 配列 f[lf] (lf >= incfd*(n - 1) + 1)
関数の値. f[i*incfd]がx[i]に対応する値である (i = 0〜n-1). |
[in] | d[] | 配列 d[ld] (ld >= incfd*(n - 1) + 1)
微分係数の値. d[i*incfd]がx[i]に対応する値である (i = 0〜n-1). |
[in] | incfd | f[] および d[] の要素間隔. (incfd >= 1) |
[in] | skip | 論理変数で, パラメータチェックを省略したいならばtrue(1)を、そうでなければfalse(0)を設定する. これにより, チェックが(pchim, pchic, pchsp あるいは pchseで)すでに終わっている場合に計算時間を節約することができる. |
[in] | ne | 関数値を計算する点の数. (ne >= 1) |
[in] | xe[] | 配列 xe[lxe] (lxe >= ne)
関数値を計算する点.
注:
- xe[]の要素がx[]について昇順のときに最も効率がよい. すなわち, xe[j] >= x[i] であれば xe[k] >= x[i] (すべての k >= jについて).
- xe[]の中で区間[ x[0], x[n-1] ]の外にあるものは, 最も近くの3次式により外挿して値を求め警告エラーを返す.
|
[out] | fe[] | 配列 fe[lfe] (lfe >= ne)
xe[]の各点において計算された, n, x[], f[], d[]で定義された3次エルミート関数の値. |
[out] | de[] | 配列 de[lde] (lde >= ne)
xe[]の各点において計算された, n, x[], f[], d[]で定義された3次エルミート関数の1次微分値. |
[out] | info | = 0: 正常終了
= -1: 入力パラメータ n の誤り (n < 2)
= -2: 入力パラメータ x[] の誤り (昇順でない)
= -5: 入力パラメータ incfd の誤り (incfd < 1)
= -7: 入力パラメータ ne の誤り (ne < 1)
= i > 0: i個の点において外挿が行われた |
- 出典
- SLATEC (PCHIP)
|