Skip to main content

問題 3.2

まず、h(x)h(x)c(x)c(x)を用いて表すと

h(x)={mix(0.3,0.9,c(x+1))=0.3+0.6c(x+1)(1x0)mix(0.9,0.6,c(x))=0.90.3c(x)(0x1)h(x) = \left\{ \begin{array}{ll} \text{mix}(0.3, 0.9, c(x+1)) = 0.3 + 0.6 c(x+1) & (-1 \leq x \leq 0)\\ \text{mix}(0.9, 0.6, c(x)) = 0.9 - 0.3 c(x) & (0 \leq x \leq 1) \end{array} \right.

であるため、h(x)h(x)[1,1][-1, 1]区間上でC3C^3級となるには、c(x)c(x)として[0,1][0, 1]区間上でC3C^3級な補間関数であり、かつ補間する各点(ここでは(0,0)(0,0)(1,1)(1,1))で導関数cc', cc'', cc'''らの値がそれぞれ00となるものが見つかれば良い。

これを言い換えると、以下の8つの等式を満たすc(x)c(x)を導き出せば良い、ということである。 8つの等式とは、補間関数の定義から得られる

c(0)=0,c(1)=1(ex3.2.1)\tag{ex3.2.1} c(0)=0, c(1)=1

と、各導関数と補間点の関係から得られる

c(0)=0,c(1)=0c(0)=0,c(1)=0c(0)=0,c(1)=0(ex3.2.2)\tag{ex3.2.2} \begin{array}{c} c'(0)=0, c'(1)=0 \\ c''(0)=0, c''(1)=0 \\ c'''(0)=0, c'''(1)=0 \end{array}

らを指す。

さて、得られた等式は8つあるので、多項式c(x)c(x)を求めるにあたり、8つの係数を持った7次の多項式から始めたい。つまりc(x)c(x)が下記の様に表現できたとして、各ana_nの値を求めたい。

c(x)=a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x+a0c(x) = a_7 x^7 + a_6 x^6 + a_5 x^5 + a_4 x^4 + a_3 x^3 + a_2 x^2 + a_1 x + a_0

まず、(ex3.2.1)式から、

c(0)=0+0+0+0+0+0+0+a0=0c(1)=a7+a6+a5+a4+a3+a2+a1+a0=1c(0) = 0 + 0 + 0 + 0 + 0 + 0 + 0 + a_0 = 0 \\ c(1) = a_7 + a_6 + a_5 + a_4 + a_3 + a_2 + a_1 + a_0 = 1

を得る。次に、各種導関数もana_nを使って記載すると、

c(x)=7a7x6+6a6x5+5a5x4+4a4x3+3a3x2+2a2x+a1c(x)=42a7x5+30a6x4+20a5x3+12a4x2+6a3x+2a2c(x)=210a7x4+120a6x3+60a5x2+24a4x+6a3c'(x)= 7 a_7 x^6 + 6 a_6 x^5 + 5 a_5 x^4 + 4 a_4 x^3 + 3 a_3 x^2 + 2 a_2 x + a_1 \\ c''(x)= 42 a_7 x^5 + 30 a_6 x^4 + 20 a_5 x^3 + 12 a_4 x^2 + 6 a_3 x + 2 a_2 \\ c'''(x)= 210 a_7 x^4 + 120 a_6 x^3 + 60 a_5 x^2 + 24 a_4 x + 6 a_3

であるので(ex3.2.2)式より、

c(0)=0+0+0+0+0+0+a1=0c(1)=7a7+6a6+5a5+4a4+3a3+2a2+a1=0c'(0) = 0 + 0 + 0 + 0 + 0 + 0 + a_1 = 0 \\ c'(1) = 7 a_7 + 6 a_6 + 5 a_5+ 4 a_4 + 3 a_3 + 2 a_2 + a_1 = 0 \\
c(0)=0+0+0+0+0+a2=0c(1)=42a7+30a6+20a5+12a4+6a3+2a2=0c''(0) = 0 + 0 + 0 + 0 + 0 + a_2 = 0 \\ c''(1) = 42 a_7+ 30 a_6+ 20 a_5 + 12 a_4 + 6 a_3 + 2 a_2 = 0 \\
c(0)=0+0+0+0+a3=0c(1)=210a7+120a6+60a5+24a4+6a3=0c'''(0) = 0 + 0 + 0 + 0 + a_3 = 0 \\ c'''(1) = 210 a_7 + 120 a_6 + 60 a_5 + 24 a_4 + 6 a_3 = 0

らを得る。a0=a1=a2=a3=0a_0=a_1=a_2=a_3=0は自明なので、後は4元連立方程式

(11117654423020122101206024)(a7a6a5a4)=(1000)\begin{pmatrix} 1 & 1 & 1 & 1 \\ 7 & 6 & 5 & 4 \\ 42 & 30 & 20 & 12 \\ 210 & 120 & 60 & 24 \\ \end{pmatrix} \begin{pmatrix} a_7 \\ a_6 \\ a_5 \\ a_4 \\ \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \\ 0 \\ 0 \\ \end{pmatrix}

を解いて、a7=20,a6=70,a5=84,a4=35a_7 = -20, a_6 = 70, a_5 = - 84, a_4 = 35を得ることができ、結果として、

c(x)=20x7+70x684x5+35x4c(x) = -20 x^7 + 70 x^6 - 84 x^5 + 35 x^4

を得る。(なお、c(x)c(x)のグラフを描画するとこちらの様になります。)

さて、確認のため、このc(x)c(x)を使ってh(x)h(x)を書きなおしてみると

h(x)={mix(0.3,0.9,c(x+1))=0.921x450.4x542x612x7(1x0)mix(0.9,0.6,c(x))=0.910.5x4+25.2x521x6+6x7(0x1)h(x) = \left\{ \begin{array}{ll} \text{mix}(0.3, 0.9, c(x+1)) = 0.9 - 21 x^4 - 50.4 x^5 - 42 x^6 - 12 x^7 & (-1 \leq x \leq 0)\\ \text{mix}(0.9, 0.6, c(x)) = 0.9 - 10.5 x^4 + 25.2 x^5 - 21 x^6 + 6 x^7 & (0 \leq x \leq 1) \end{array} \right.

となるが、このh(x)h(x)の3次導関数は

h(x)={504x(1+6x+10x2+5x3)(1x0)252x(1+6x10x2+5x3)(0x1)h'''(x) = \left\{ \begin{array}{ll} -504 x (1 + 6 x + 10 x^2 + 5 x^3) & (-1 \leq x \leq 0)\\ 252 x (-1 + 6 x - 10 x^2 + 5 x^3) & (0 \leq x \leq 1) \end{array} \right.

と存在し、かつx=0x = 0で連続となるため、h(x)h(x)C3C^3級であることがわかる。

以上をまとめると、 c(x)c(x)として、7次関数

20x7+70x684x5+35x4-20 x^7 + 70 x^6 - 84 x^5 + 35 x^4

をとると、h(x)h(x)C3C^3級となることができる。