前提・実現したいこと
pythonで非線形のfittingをしたいです。
発生している問題・エラーメッセージ
TypeError: can't multiply sequence by non-int of type 'numpy.float64'
listの扱いが誤っているのではないかと考えましたが、初学者で不慣れなため、具体的にどう直したら良いのかまではわかりませんでした。
どなたか訂正箇所を教えていただけませんでしょうか。
該当のソースコード
python
ソースコード
from scipy.optimize import curve_fit import numpy as np import math import seaborn as sns import matplotlib.pyplot as plt x = [0,1.5,3.0,4.5,6.0] y = [7.906926152,8.077877536,8.366099179,8.633237032,8.547916228] sns.pointplot(x, y, join=False) def baranyi_without_Nmax(x, mumax,lag): return 7.906926152 + mumax * x/np.log(10) + np.log10(np.exp(-mumax * x)) * (1-np.exp(-mumax * lag)) + np.exp (-mumax * lag) param, cov = curve_fit(baranyi_without_Nmax, x, y) list_y = [] for num in x: list_y.append(7.906926152 + param[0] * x/np.log(10) + np.log10(np.exp(-param[0] * x)) * (1-np.exp(-param[0] * param[1])) + np.exp(-param[0] * param[1])) sns.pointplot(x, y, join=False) sns.pointplot(x, y=np.array(list_y), markers="")
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/10/14 12:23