回答編集履歴
2
fix answer
test
CHANGED
@@ -1,9 +1,13 @@
|
|
1
|
-
[他の方の回答](https://teratail.com/questions/4c0801dgxwz3q4#reply-24znx4yfpakzk2)で
|
1
|
+
以前[他の方の回答](https://teratail.com/questions/4c0801dgxwz3q4#reply-24znx4yfpakzk2)で申し上げたことがあるのですが,そのような結果でも上記データを目的関数でfittingした結果で間違いありません.
|
2
2
|
|
3
|
-
最小二乗法で得られる解
|
3
|
+
最小二乗法で得られる解において,[与えた初期状態](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html)`p0`
|
4
4
|
> Initial guess for the parameters (length N). If None, then the initial values will all be 1
|
5
|
-
が悪かったため,局所的最適解を得ています.
|
5
|
+
が悪かったため,局所的最適解を得ています.
|
6
6
|
|
7
|
-
|
7
|
+
現状,「初期値が全て`1`で初期化された局所的最適解は望んだ関数を描かない」という情報が得られたことになるので,これ以外の初期値で,試行すると良いでしょう.
|
8
8
|
|
9
|
+
もし自身で当たっていると思しき`beta, gamma`を知っているなら,その値を`p0`に入れてやってください.運が良ければ最適解にシフトするものと思われます.
|
10
|
+
|
9
|
-
値が何もわからないのであれば,引数の数だけランダムに初期値を生成して与えると良いでしょう.
|
11
|
+
値が何もわからないのであれば,引数の数だけランダムに初期値を生成して与えると良いでしょう.
|
12
|
+
|
13
|
+
初期値が全て`1`でフィットする関数なんてたかが知れており,[正弦波ですらフィットしない](https://teratail.com/questions/4c0801dgxwz3q4)ソルバを扱う中で,解に近い値を入れざるを得ないのは当然の事態と思います.
|
1
fix answer
test
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
[他の方の回答](https://teratail.com/questions/4c0801dgxwz3q4#reply-24znx4yfpakzk2)でも以前申し上げたことがあるのですが,上記データを目的関数でfittingした結果で間違いありません.
|
2
2
|
|
3
|
-
最小二乗法で得られる解のうち,[与えた初期状態](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html)`p0`
|
3
|
+
最小二乗法で得られる解のうち,[与えた初期状態](https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.curve_fit.html)`p0`
|
4
|
+
> Initial guess for the parameters (length N). If None, then the initial values will all be 1
|
5
|
+
が悪かったため,局所的最適解を得ています.現状,「初期値が全て`1`で初期化された局所的最適解は望んだ関数を描かない」という情報が得られたことになるので,これ以外の初期値で,試行すると良いでしょう.
|
4
6
|
|
5
7
|
もし自身で当たっていると思しき値を知っているなら,その値を`p0`に入れてやってください.運が良ければ最適解にシフトするものと思われます.
|
6
8
|
|
7
|
-
値が何もわからないのであれば,引数の数だけランダムに初期値を生成して与えると良いでしょう.
|
9
|
+
値が何もわからないのであれば,引数の数だけランダムに初期値を生成して与えると良いでしょう.本方法は上述のリンクにあるので参考にしてください.
|