एक Izhikevich न्यूरॉन एक जैविक न्यूरॉन का एक सरल लेकिन काफी प्रभावी मॉडल है, जिसे असतत समय-स्टीयरिंग सिमुलेशन में उपयोग के लिए डिज़ाइन किया गया है। इस गोल्फिंग चुनौती में, आप इस मॉडल को लागू करेंगे।
पैरामीटर
इस मॉडल में शारीरिक रूप से सटीक मॉडल के दर्जनों मापदंडों की तुलना में केवल 2 अंतर समीकरणों में आयोजित 7 चर शामिल हैं।
v
औरu
न्यूरॉन के दो राज्य चर हैं। यहाँ,v
समय के साथ सेल की क्षमता का प्रतिनिधित्व करने वाला "तेज़" चर है, औरu
कुछ झिल्ली गुणों का प्रतिनिधित्व करने वाला "धीमा" चर है।v
के रूप में इस अनुकरण के उत्पादन में है चर, सबसे महत्वपूर्ण है।a
,b
,c
, औरd
स्थिरांक कि न्यूरॉन के गुणों का वर्णन तय कर रहे हैं। वांछित व्यवहार के आधार पर विभिन्न प्रकार के न्यूरॉन्स में अलग-अलग स्थिरांक होते हैं। विशेष रूप से,c
रीसेट क्षमता है, जो कि झिल्ली क्षमता है, जो सेलिंग के बाद वापस आती है।I
न्यूरॉन में इनपुट करंट का प्रतिनिधित्व करता है। नेटवर्क सिमुलेशन में, यह समय के साथ बदल जाएगा, लेकिन हमारे उद्देश्यों के लिए हमI
एक निश्चित स्थिर के रूप में व्यवहार करेंगे।
आदर्श
इस मॉडल में बहुत ही सरल स्यूडोकोड है। सबसे पहले, हम निरंतर मूल्यों को लेते हैं abcd
और उन्हें आरंभ करने के लिए उपयोग करते हैं v
और u
:
v = c
u = b * c
अगला, हम सिमुलेशन कोड के माध्यम से वांछित के रूप में कई बार लूप करते हैं। प्रत्येक पुनरावृत्ति 1 मिलीसेकंड समय का प्रतिनिधित्व करती है।
for 1..t:
if v >= 30: # reset after a spike
v = c
u = u + d
v += 0.04*v^2 + 5*v + 140 - u + I
u += a * (b*v - u)
print v
कुछ वास्तविक दुनिया के कार्यान्वयन में संख्यात्मक सटीकता के लिए अतिरिक्त कदम शामिल हैं, लेकिन हम यहां शामिल नहीं हैं।
इनपुट
इनपुट के रूप में, अपने कार्यक्रम / समारोह के मूल्यों लेना चाहिए a
, b
, c
, d
, I
, और t
(अनुकरण करने के लिए समय चरणों की संख्या)। एक बार सेट होने पर, इनमें से कोई भी पैरामीटर हमारे सरल सिमुलेशन के दौरान नहीं बदलेगा। इनपुट का क्रम मायने नहीं रखता: आप उस क्रम को निर्दिष्ट कर सकते हैं जिसमें आपका प्रोग्राम इन मापदंडों को लेता है।
उत्पादन
आउटपुट v
सिमुलेशन के दौरान सेल की झिल्ली क्षमता (चर द्वारा दिए गए ) का प्रतिनिधित्व करने वाली संख्याओं की एक सूची होगी । सूची किसी भी उपयुक्त प्रारूप में हो सकती है।
आपके पास अपने आउटपुट में सिमुलेशन के 0 वें मूल्य (किसी भी समय बीतने से पहले प्रारंभिक कॉन्फ़िगरेशन) को शामिल करने का विकल्प है। उदाहरण के लिए, 0.02 0.2 -50 2 10 6
( a b c d I t
आउटपुट) के इनपुट के लिए , दोनों में से एक आउटपुट
-50
-40
-16.04
73.876224
-42.667044096
-25.8262335380956
29.0355029192068
या
-40
-16.04
73.876224
-42.667044096
-25.8262335380956
29.0355029192068
स्वीकार्य है।
आपके मूल्यों को ऊपर वाले लोगों के समान नहीं होना चाहिए, यह इस बात पर निर्भर करता है कि आपकी भाषा कैसे तैरती है।
संदर्भ कार्यान्वयन
यहाँ एक TIO कार्यान्वयन है जो मैंने मॉडल प्रदर्शित करने के लिए पर्ल में लिखा था। पैरामीटर ऊपर लिंक किए गए पेपर से एक "बकबक" न्यूरॉन के हैं, और यह एक प्रदर्शन के रूप में कार्य करता है कि यह मॉडल न्यूरॉन्स के कुछ और अधिक जटिल गुणों को कैसे फिर से बनाने में सक्षम है, जैसे कि उच्च और निम्न गतिविधि के राज्यों के बीच वैकल्पिक। आप उत्पादन को देखें, तो आप देख सकते हैं जहां न्यूरॉन तुरंत कई बार बढ़ जाता है, लेकिन फिर थोड़ी देर के इंतजार कर रहा है कई बार spiking से पहले (सेल इनपुट वोल्टेज के बावजूद I
किया जा रहा लगातार पूरे समय)।
t
कभी नकारात्मक होगा?