के माध्यम से पाइथन का उपयोग करते हुए ओडीई की प्रणाली में फिटिंग डेटा को मुझे सिस्टी & नम्पी के माध्यम से पाइथन में अपने MATLAB कोड का अनुवाद करने में कुछ परेशानी हो रही है। मैं अपने दस मनाए गए डेटा पॉइंट्स में फिट होने के लिए ओडीई की प्रणाली के लिए इष्टतम पैरामीटर मान (k0 और k1) कैसे ढूंढ सकता हूं, इस पर अटक गया हूं। मैं वर्तमान में k0 और k1 के लिए प्रारंभिक अनुमान है। MATLAB में, मैं 'fminsearch' नामक कुछ का उपयोग कर सकता हूं जो एक ऐसा कार्य है जो ओडीई, मनाए गए डेटा बिंदुओं और ओडीई की प्रणाली के प्रारंभिक मानों की प्रणाली लेता है। इसके बाद पैरामीटर k0 और k1 की एक नई जोड़ी की गणना की जाएगी जो मनाए गए डेटा को फिट करेगी। मैंने यह देखने के लिए अपना कोड शामिल किया है कि क्या आप मेरे डेटा को फिट करने वाले इष्टतम पैरामीटर मान k0 और k1 को खोजने के लिए किसी प्रकार के 'fminsearch' को लागू करने में मेरी सहायता कर सकते हैं। मैं अपने lsqtest.py फ़ाइल में ऐसा करने के लिए जो भी कोड जोड़ना चाहता हूं।सिप्पी और न्यूम्पी
मैं तीन .py फ़ाइलों - ode.py, lsq.py, और lsqtest.py
ode.py:
def f(y, t, k):
return (-k[0]*y[0],
k[0]*y[0]-k[1]*y[1],
k[1]*y[1])
lsq.py:
import pylab as py
import numpy as np
from scipy import integrate
from scipy import optimize
import ode
def lsq(teta,y0,data):
#INPUT teta, the unknowns k0,k1
# data, observed
# y0 initial values needed by the ODE
#OUTPUT lsq value
t = np.linspace(0,9,10)
y_obs = data #data points
k = [0,0]
k[0] = teta[0]
k[1] = teta[1]
#call the ODE solver to get the states:
r = integrate.odeint(ode.f,y0,t,args=(k,))
#the ODE system in ode.py
#at each row (time point), y_cal has
#the values of the components [A,B,C]
y_cal = r[:,1] #separate the measured B
#compute the expression to be minimized:
return sum((y_obs-y_cal)**2)
lsqtest .py:
import pylab as py
import numpy as np
from scipy import integrate
from scipy import optimize
import lsq
if __name__ == '__main__':
teta = [0.2,0.3] #guess for parameter values k0 and k1
y0 = [1,0,0] #initial conditions for system
y = [0.000,0.416,0.489,0.595,0.506,0.493,0.458,0.394,0.335,0.309] #observed data points
data = y
resid = lsq.lsq(teta,y0,data)
print resid
क्या आप यह देख रहे हैं? [scipy fmin] (http://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin.html) – Dhara
असंबद्ध नोट के रूप में, आप matlab शैली का उपयोग करने के लिए _need_ नहीं करते हैं- पायथन में समान नाम वाली फाइलें। – tacaswell