注意点等を整理していきます。parameterがほぼ理想状態からスタートし、水-エタノールの回帰を行います。以下の流れでソルバーを設定します。最終的なフィッティング結果です。Pythonの最適化関数を使った場合scipyでの回帰計算方法については、こちらをご参照ください。初期値として、a12=1.0、a21=1.0、α=0.3を与え、a12~b21を推算します。(c12~e21とβ12は0で固定します。)最終的なフィッティング結果です。Quartet(アンスコムの例)。Reconciliation最小二乗法と重みづけプラントの生データは、マテバラが取れていないことがままあります。入出の流量計の誤差、分析精度の問題がありますので、シミュレーションモデル構築前にマテバラの取れたデータを用意する必要があります。Splineの考え方n個のデータ(x1,y1)~(xn,yn)について、以下3つの条件を満たす3次スプライン関数S(x)を考えます。Splineの場合、境界条件として、S''(x)の始点と終点を0としますが、こちらは後述します。条件2から考えていきます。(大概の解説はS(x)=\(ax^3+bx^2+cx+d\)から追いかけていきますが、私は上記お勧め書籍で説明されている2次導関数から追いかける方が分かりやすいので、2からスプライン関数を求めます。)3次関数S(x)の2次導関数は、1次関数となります。x_i\)において、下図のようにS''(x)を表現することができます。S''(x)を積分し、S'(x)、S(x)を求めます。S(x)が求まったので、続いて条件3を評価します。\(S(_{i-1})=y_{i-1}\)、\(S(_{i})=y_{i}\)より、以下積分定数C1、C2を求めます。最後に、条件1を評価します。S'(x)が連続であることから、\(x_i\)において、\(S'_i(x_i)\)と\(S'_{i+1}(x_i)\)は等しくなります。M_n\)が求まります。M_{n-1}\)を求めるには、三重対角行列アルゴリズムであるトーマスアルゴリズム(TDMA)を用います。以下具体的な解き方については、「Silverlightでツール作成」の項で後述いたしますが、Excelを使う場合は、逆行列が簡単に求まりますので、もっと簡単です。例として、次の6点を通るスプライン曲線を考えます。(11.1,34.3),(20.9,62.1),(40.0,64.5),(65.6,75.9),(73.9,90.7),(90.9,95.9)x1~x6、y1~y6を代入し、M2~M5を求めていきます。splineの条件から、M1=M6=0)Excelの場合は、minverse関数で逆行列を、mmult関数で行列の積を簡単に求めることができます。Splineが求まります。(もっと刻みは増やした方が良いです)PythonのInterpolate関数を用いる場合こちらにまとめています。Silverlightでツール作成サンプルツール簡単なサンプルツールをSilverlightで作成しましたので、こちらで最終形のイメージを掴んでください。(こちらがツールへのリンクになります。Splineで繋ぎます。\)である必要がありますので、ご注意ください。Spline補完をするため、生成した各Xのデータを8等分し、そのXにおけるYを補完で求めています。Numericsでも可能ですが、重くなるのでTDMAを入れ込みます。当サイトに不具合、ご意見等ございましたらCEsolutionにお知らせください。