3

Stackoverflow コミュニティの皆様

私はPythonとプログラミング全般に非常に慣れていないので、答えが得られなくても怒らずにもう一度質問してください.

scipy.optimization.curve_fit を使用して実験データに曲線を当てはめようとしています。これは私のコードです:

%matplotlib inline
import matplotlib.pyplot as plt
import numpy as nm
from __future__ import division
import cantera as ct
from matplotlib.backends.backend_pdf import PdfPages
import math as ma
import scipy.optimize as so


R = 8.314
T = nm.array([700, 900, 1100, 1300, 1400, 1500, 1600, 1700])
k = nm.array([289, 25695, 763059, 6358040, 14623536, 30098925, 56605969, 98832907])


def func(A, E, T):
    return A*ma.exp(-E/(R*T))
popt, pcov = so.curve_fit(func, T, k)

今、このコードはうまくいきますが、関数を次のように変更すると:

def func(T, A, E)

そして、私が得る残りを保管してください:

TypeError: only length-1 arrays can be converted to Python scalars

また、最初のパラメーター ソリューションにはあまり納得できません。変数の順序を変更するとどうなるか教えてもらえますか?

4

3 に答える 3