TI-Nspire & Lua / 補外法 1 / 何かを偶数次多項式で補外する / 聯立方程式を解いて求める

参考: パソコンで見る天体の動き, pp.131-142

既知のいくつかのポイントを通過する未知の曲線が偶数次多項式であると假定してその既知のポイント群の外側に存在する未知のポイントを推定する。聯立方程式を解いて求める。
f:id:ti-nspire:20170704105423p:plain:w600

この数列を既知のポイントとする。
 x=\{\frac{1}{2}, 1, 2, 3, 4\}
 y=\{\frac{277}{64}, −8, −167, −472, 277\}


この 5 元聯立方程式を解く。
 \,\,\,\,\,\frac{277}{64}= a4 \times (\frac{1}{2})^8 + a3 \times (\frac{1}{2})^6 + a2 \times (\frac{1}{2})^4 + a1 \times (\frac{1}{2})^2 + a0
 \,\,\,\,\,\,−8= a4 \times 1^8\,\,\,\,\,\, + a3 \times 1^6\,\,\,\,\,\, + a2 \times 1^4\,\,\,\,\,\, + a1 \times 1^2\,\,\,\,\,\, + a0
 −167 = a4 \times 2^8\,\,\,\,\,\, + a3 \times 2^6\,\,\,\,\,\, + a2 \times 2^4\,\,\,\,\,\, + a1 \times 2^2\,\,\,\,\,\, + a0
 −472 = a4 \times 3^8\,\,\,\,\,\, + a3 \times 3^6\,\,\,\,\,\, + a2 \times 3^4\,\,\,\,\,\, + a1 \times 3^2\,\,\,\,\,\, + a0
 \,\,\,\,277= a4 \times 4^8\,\,\,\,\,\, + a3 \times 4^6\,\,\,\,\,\, + a2 \times 4^4\,\,\,\,\,\, + a1 \times 4^2\,\,\,\,\,\, + a0


x:={((1)/(2)),1,2,3,4}                     © 既知のポイントの数列を定義する。
y:={((277)/(64)),−8,−167,−472,277}         © 既知のポイントの数列を定義する。
p(n):=polyEval({a4,a3,a2,a1,a0},x[n]^(2))  © 偶数次多項式を定義する。
funcs:=expand(seqn(y[n]=p(n),5))           © 聯立方程式を定義する。expand() は見栄えをよくするためだけであってここでは意味はない。
linSolve(funcs,a4,a3,a2,a1,a0)             © 聯立方程式を解く。
polyEval(ans,x^(2))                        © 元の y に戻るかどうか確かめる。

f:id:ti-nspire:20170706185154p:plain:w600
解は  a4=0,\;a3=1,\;a2=-15,\;a1=1,\;a0=5 ( y=0x^8+1x^6-15x^4+1x^2+5) である。
すなわち補外値は  5 である。
 
 
 
――――――――――――――――――――――――――――――――――――――――――――
すなおにこうしたほうがわかりやすい。

linSolve(system(y[n]=a4*x[n]^(8)+a3*x[n]^(6)+a2*x[n]^(4)+a1*x[n]^(2)+a0|n=1,y[n]=a4*x[n]^(8)+a3*x[n]^(6)+a2*x[n]^(4)+a1*x[n]^(2)+a0|n=2,y[n]=a4*x[n]^(8)+a3*x[n]^(6)+a2*x[n]^(4)+a1*x[n]^(2)+a0|n=3,y[n]=a4*x[n]^(8)+a3*x[n]^(6)+a2*x[n]^(4)+a1*x[n]^(2)+a0|n=4,y[n]=a4*x[n]^(8)+a3*x[n]^(6)+a2*x[n]^(4)+a1*x[n]^(2)+a0|n=5),a4,a3,a2,a1,a0)

f:id:ti-nspire:20170706190920p:plain:w600