自分でやったこと
乱数を使って適当なデータ(1)を作成しそれを
y=a*sinx+1…(2)
で最小二乗法を用いてフィッティングし、最も良いaの値を決定したいです。
python
1b = np.random.normal(0,1,11) 2deg = np.linspace(0,90,11) 3data = 2*(1+b*0.1)*np.sin(np.radians(deg))+1 #乱数を使ったデータ(1) 4for i in range(1,10): 5 sin_i = (i*0.1+1.5)*np.sin(np.radians(deg))+1#a*sinx+1として1.5≦a≦2.5まで0.1刻みでaの値を変えていく…(2) 6 epsilon = ((data) - (sin_i))**2#データとsin_iの差の2乗の和をとる。 7 sum_all =sum(epsilon)#各iに対する配列epsilonの和をとる。 8 min(sum_all) #最小になるsum_allを表示する。
問題点 ,質問
sum_all
はfloatになっているためmin()
ではnot iterable
(反復できない)となって最小値を求めることができません。
そこで、
1.float型のまま最小値を求める
or
2.float型からlist型に変形して最小値を求める。
方法を教えていただきたいです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/04 10:08