برداشت های من از جهان پیرامون

بایگانی
آخرین نظرات

ویروس کرونا و معادلات دیفرانسیل

يكشنبه, ۴ اسفند ۱۳۹۸، ۰۷:۰۳ ب.ظ

یکی از کاربردهی معادلات دیفرانسیل در بررسی سرعت رشد بیماری های واگیر هست. که من الآن میخوام یک مدل ساده مبتنی بر معادلات دیفرانسیل رو برای سرعت رشد ویروس کرونا در شهر قم ارائه بدم. بدون هیچ توضیحی میرم سر نوشتن مدل و درنهایت نتیجه مدل رو هم با محاسبات کامپیوتری تحلیل میکنم.

( روش دیگه برای بررسی سرعت رشد بیماری استفاده از شبیه سازی مونت کارلو هست که اگر انشالله فرصت شد اون رو هم در اینده انجام میدم)

======

پارامترهای مدل:

H(t) : تعداد افراد سالم در شهر در لحظه t

S(t) : تعداد افراد بیمار که هنوز بیماری آن ها تشخیص داده نشده است در لحظه t

Z(t) : تعداد افراد بیماری که، بیماری آن ها تشخیص داده شده است در زمان t

\alpha (t) : سرعت سرایت بیماری از افرادی که بیماری آنها تشخیص داده نشده به افراد سالم در زمان t

\beta (t) : سرعت سرایت بیماری از افرادی که بیماری آنها تشخیص دادهنشده به افراد سالم در زمان t

\gamma (t) : سرعت بهبود افرادی که بیماری آنها تشخیص داده شده است  در زمان t

\mu (t) : سرعت بهبود افرادی که بیماری آنها تشخیص داده نشده است در زمان t

\delta (t) :  سرعت مرگ افرادی که بیماری آنها تشخیص داده شده است در زمان t

\zeta (t) :  سرعت مرگ افرادی که بیماری آنها تشخیص داده نشده است در زمان t

\rho (t) : سرعت تشخیص بیماری در زمان t

 

در این صورت دستگاه معادلات دیفرانسیل زیر تا حد قابل قبولی میتونه همه گیری بیماری رو مدل کنه:

 

\frac{{dH}}{{dt}} = ( - \alpha (t)S(t) - \beta (t)Z(t))H(t) + \gamma (t)Z(t) + \mu (t)S(t)

 

{\frac{{dZ}}{{dt}} = \rho (t)S(t) - (\gamma (t) + \delta (t))Z(t)}

 

{\frac{{dS}}{{dt}} = (\alpha (t)S(t) + \beta (t)Z(t))H(t) - \rho (t)S(t) - (\mu (t) + \zeta (t))S(t)}

 

بنابراین یک دستگاه معادلات دیفرانسیل غیر خظی مرتبه اول داریم که با حلش میتونیم به مدل سرعت رشد بیماری برسیم.

من پارمترهای مدل رو به صورت زیر تنظیم می کنم:

H(0) = 1,000,000 : جمعیت شهر قم

S(0) = 200 : افرادی که بیمار هستن ولی هنوز بیماری شون تشخیص داده نشده

Z(0) = 18 : افرادی که بیماری اونها تشخیص داده شده تا این لحظه

\alpha (t) = \frac{{Ln(1.4){e^{ - \frac{t}{{30}}}}}}{{H(0)}}    : زیرا به مرور زمان مردم آگاه تر میشن و بیشترر مراقبت میکنن مریض نشن

\beta (t) = \frac{{Ln(1.05)}}{{H(0)}}

\gamma (t) = Ln(1.3)

\delta (t) = Ln(1.003)  

\mu  = Ln(1.1)  خیلی از افراد چون بدنشون مقاوم هست چند روز بعد از گرفتن بیماری خود به خود خوب میشن

\zeta  = 0

\rho  = \ln (1.2)(1 - {e^{\frac{{ - t}}{{300}}}})  به مرور مهارت کادر درمان در تشخیص بیماری افزایش پیدا میکنه.

 

++++++++++++++++++++++

 

حل مدل: اول چند نکته در مورد حل این مدل بگم:

۱- کارایی مدل های اینجنینی تا حد زیادی وابسته به تخمین درست پارامترهای مدل هست و برای تخمین درست پارامترها نیاز هست که آمار درستی از مبتلایان در دسترس باشه که من به چنین آماری دسترسی نداشتم، من سعی گردم با توجه به اطلاعاتی که از رسد بیماری در ووهان چین در دسترس بود پارامترها رو تخمین بزنم.

۲- عملکرد خوب یا بد ما به شدت میتونه پارامترهای مدل رو در طول دروه بیماری تغییر بده و ننایج رو دستخوش تغییر کنه.

نمودار زیر تعداد افراد ناقل بیماری و همچنین تعداد افرادی که در بیمارستان بستری میشن و مشکل جدی پیدا میکنن رو برای ۱۰۰ روز نشون میده. نمودار سبز رنگ مربوط به افراد ناقل بیماری و نمودار آبی مربوط به کسانی هست که که مشکل جدی پیدا میکنن و باید تحت درمان اساسی قرار بگیرن. محور افقی تعداد روزهاست، و درنهایت بعد از حدود ۱۰۰ روز بیماری ریشه کن میشه. بعد از حدود یک ماه بیماری به اوج فعالیتش میرسه. ماکزیمم تعداد افرادی که همزمان دچار مشکل جدی میشن کمتر از ۵۰۰ نفر خواهد بود (اما تعداد افرادی که در مجموع مشکل جدی پیدا میکنن بیش از ۱۰۰۰ نفر خواهد بود)

 

 

و نمودار زیر هم تعداد کل فوتی ها رو برای حدود ۱۰۰ روزی که احتمالا با بیماری درگیر باشیم نشون میده. در نهایت با این پارامترهایی که من تنظیم کردم حدود ۱۰۰ نفر بر اثر این بیماری در شهر قم فوت خواهند کرد.

 

 

======================

نتایج مدل نشون میده که کنترل این بیماری به شدت وابسته به عملکرد ما در مواظبت از انتقال بیماری به دیگران هست مثلا اگر \alpha (t) = \frac{{Ln(1.4){e^{ - \frac{t}{{30}}}}}}{{H(0)}}   به \alpha (t) = \frac{{Ln(1.7){e^{ - \frac{t}{{30}}}}}}{{H(0)}}   تغییر کنه (یعنی افراد کمتر به مراقبت های بهداشتی عمل کنن و هر فرد مبتلا تعداد بیشتری رو مبتلا کنه) اون موقع تعداد تلفات بیماری میتونه به حدود ۴۰۰۰ نفر برسه!!!

پ ن: یه تبلیغم برای درس حل عددی معادلات دیفرانسیل کنیم که توش تکنیک های حل معادلات دیفرانسیل از نوعی که من اینجا نوشتم ارائه میشه. مسئله بالا به روش رانگ-کوتا-فهلبرگ و توسط دستور ode45 در متلب حل شده.

 

پ ن۲: برای مظالعه بیشتر مثال ۱.۶ از فصل اول این کتاب رو هم ببینید.

Griffiths, David F., and Desmond J. Higham. Numerical methods for ordinary differential equations: initial value problems. Springer Science & Business Media, 2010.

پ ن ۳: من معادله‌ی اول مربوط به مدل گسترش بیماری کرونا رو کمی تغییر دادم. ممنون از دکتر افشین بابایی از دانشگاه مازندارن برای دقت شون در مورد این معادله، که منجر به اصلاح معادله اول شد.

 

  • عباسی

نظرات  (۹)

سلام. خیلی ممنون برای جواب. ولی از اونجایی که

H(100)=1000127

Z(100)=10

S(100)=30

پس در نتیجه

تعداد فوتی ها کل در روز 100 ام= کل جمعیت اولیه شامل سالم ها و بیمارها (1000218) - کل مریض ها در روز 100 ام (40) - سالم ها در روز 100 ام (1000127)= 51

 

که البته در روزهای بعدی بیشتر هم نمی شود. که بنابراین به نظر میرسد نمودار دوم ایراد دارد.

پاسخ:
سلام، پوریا جان. امیدوارم اشتباه نگرفته باشم و همون پوریای خودمون باشی تو دانشگاه بوعلی.

راستش رو بخوایی من دیگه کدهایی رو که برای این پست نوشته بودم رو ندارم. اما اگه تو کد نوشتی و نتیجه ات با اینی که من نوشتم تفاوت داره، احتمالا دلیلش باید این باشه که من یکی از پارامترها رو توی وبلاگ اشتباه تایپ کردم،  یعنی احتمالا یکی از پارامترهایی که من اینجا نوشتم با اون چیزی که برنامه رو باهاش ران کردم متفاوت بوده ولی چون من دیگه برنامم رو ندارم، نمی تونم بفهمم کدوم پارامتر رو اشتباه تایپ کردم.
البته من این پست رو روزهای اولی که کرونا تازه تو ایران شروع شده بود نوشتم و چون در حال حاضر داده های بیشتری در دسترس هست اگر این پست رو امروز مینوشتم میتونستم بهتر پارامترها رو  تخمین بزنم.


سلام. نمودار دوم یعنی تعداد افراد فوت شده طبق چه فرمولی است؟

پاسخ:
سلام. جمعیت اولیه رو منهای افراد سالم و افراد بیمار در لحظه t کردم.

سلام امیدوارم زودتر حالتون خوب بشه بنویسید و ما بتونیم از نوشته هاتون استفاده کنیم دوست عزیز Ado

پاسخ:
سلام. ان شالله.

این داستان های کرونا باعث شد من ی مقدار پیگیر میزان مرگباری بیماری ها بشم و چیزای جالبی دیدم که به نظرم جالب ترینش هاری بود.بیماری ای که بعد از ظهور علائم بالینی تقریبا 100 درصد کشندگی داره و برخلاف اون بیماری هایی که توی لیست ازش بالاتر هستند(مثل جنون گاوی) ابدا هم نادر نیست و سالانه بیش از 59 هزار نفر قربانی میگیره که اکثرا هم کم سن هستند و نکته جالب ترش اینه که تقریبا میشه مرگ و میرش رو نزدیک به صفر رسوند ولی با این وجود هرساله داره تاپ و توپ قربانی میگیره! و خبر چندانی هم ازش توی رسانه ها نیست!(مثل اینکه توی کشورهای پیشرفته چندان شایع نیست و بیشتر برای کشورهای پایین از نظر اقتصادی-اجتماعی هست و واکسنش هم نسبتا گرونه و همین باعث شده که یک جورایی بیخیالش بشند !)

پاسخ:
ممنون، اطلاعات خوبی بود. در مورد هاری هم اگر واکسنش گرون باشه، چاره ای نیست و باید ۵۹ هزار مرگ رو پذیرفت. فرق کرونا اینه که به شدت مسری هست و با اندک اهمالی، حتی  میتونه میلیون ها نفر رو درگیر کنه.

دو تا پزشک بررسیم کردن گفتن ویروسو گرفتی ولی داری خوب میشی(تیکه اخر واسه این بود که امکان ازمایش نبود:|) فقط گفت تا میتونی مایعات بخور و اصلا از خونه بیرون نیا :| (ولی من تبم پایین نمیاد سرم مدام درد میکنه)

پاسخ:
ان شالله زودتر خوب بشید.

فقط خوبی کرونا اینه فکر کنم چجوری تدریس مجازی با کیفیت داشته باشم :)

خیلی ممنونم.

امید دادن از لطف شماست.

من نگرانیم بابت خودم، کلیه‌م یا حتی مرگم نیست دی:

دیدم هی خانواده میگن بیا، و خودم حدس زدم مبتلا شدم ترسیدم انتقال بدم رفتم دکتر :|

پ.ن: ولی بیمارستان صدوقی یزد خیلی نامردن:| تا آدم نمیره عکس العمل نشون نمیدن :| میگم دکتر گفته کرونا دارم بیا نمونه بگیر میگفت نه کسی توو یزد نگرفته :))) انگار مثلا یزدیا هوا و ادما استرلیزه هستن همه شون :| بعد دیدم کلا حرف خودش میزنه گفتم ببین من قم بودم اومدم گفت عه خب پس:))) بخدا رو برگه بیمارستان نوشت بیمار هفته پیش قم بوده خخخخخ خوشحالم اسم قم ابهت خاصی پیدا کرده 

پاسخ:
یعنی الان شما کرونا تون تایید شده، یا خودتون مشکوکید؟

با سلام  خیلی جالب بود...من هم روی مدلسازی کار میکنم...مثلا مدل های بیماری آنفولانزا و....خیلی دوست دارم بیشتر بدونم و بتونم کمک کنم

پاسخ:
سلام. ممنون. چه خوب، اگر نکته ای به نظرتون میرسه که من لحاظ نکردم، ممنون میشم ذکر کنید.

سلام

عاششششق مدل سازی‌های ریاضیم

اول صبح این پست رو خوندم کلی لذت بردم با اینکه داشتم از تب میسوختم!

من فقط دو روز اومدم قم و برگشتم و ویروسو گرفتم :/

(تازه وسواس شستشوی دست هم دارم:| همه‌ش فکر میکنم از استنشاق دود سیگار کسی که ناقل بوده گرفتم توو قم:| فعلا عملیات ویروس رو روی کلیه‌م حس میکنم:| بنظرم تا میشد باید ورود و خروج به شهرایی که کرونا ویروس در اونها گزارش شده به حداقل میرسید. حیف شد میخواستم کارای بزرگی انجام بدم یه کتاب جدیدم تازه کشفش کرده بودم بخونم عی بابا :))))) )

 

پاسخ:
سلام. انگار ویروس تو قم خیلی شایع هست، هرکی چند وقت اومده قم و برگشته ویروس گرفته.
ان شالله که شما هم زودتر خوب شید. و خیلی هم به خودتون تلقین بد نکنید ان شالله یه سرماخوردگی معمولی باشه .

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی