中間に向けてやること
・TAの関数近似がうまくいかないときは基底関数の数が足りない説
・基底関数の数増やしたら振動が抑えられてる
・分配関数の話(https://ja.wikipedia.org/wiki/%E5%88%86%E9%85%8D%E9%96%A2%E6%95%B0)
・複製の流れ
最初betaは0.01
1.w,sの更新は無しで,mのみ式(32)で更新→mが収束したら(100回回したら、とかで対処)累積2乗誤差関数を計算→収束判定を下回ってたら終了、上回ってたら2.へ
2.式(36)をbetaの値を大きくしながら計算→mが増えたらそのmの位置に基底関数を複製→1.へ
・pythonの非線形方程式を解くモジュールは,その方程式が複数の解をもつ場合でも初期値に近い1つの解しか出力しないため,解の範囲を絞って複数回適用する??
➡-20<x<20な訳だから,式(36)をx=-20からx=20まで計算して式(36)=0となる点を探す??それか-から+または+から-になる点を探せばゼロ点を探せる説
➡×
➡-20から20まで0.1刻みとかで数百個のデータ点を発生させて,それぞれのデータ点に対する式(36)の左辺の値を算出する.→-から+,+から-になる点をピックアップすれば非線形方程式を解かなくても大丈夫説
・sympyで方程式を解く(newton法)( https://watlab-blog.com/2020/05/17/newton-raphson/ )
➡sympyは解析的に非線形方程式を解けるけどめっっっっちゃ遅い
➡numpyでnewton法するしかない??
・・数値解
・SymPyのfsolve…初期値依存する
・newton法…初期値に依存する,式(36)にnewton法を適用して根を求めたところでstep2の時点のmが複製されるだけ→newton法でわざわざやる意味ない??
・・解析解
・SymPyのsolve…超遅い
・・二分法←これを試す!!!!