شروع به شبیه سازی؟

برای یاد گرفتن اصول شبیه سازی (فیزیک) باید از کجا شروع کرد؟ با فرض اینکه برنامه نویسی بلد باشید، ولی شبیه سازی انجام نداده باشید… بیشتر مشکلم اینه که نمیدونم الگوریتم برای شبیه سازی باید چه طور باشه؟ چه طور قوانین رو اعمال کرد؟

1 پسندیده

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

  • معادلات دینامیکی حاکم بر سیستم رو باید بدونین. برای مثال در سیستمهای فیزیکی کلاسیک، قوانین نیوتن و نیروهای بین ذرات رو باید بدونین. البته الزامی نداره که دقیق بفهمید ولی باید شکل معادلات رو در دست داشته باشین.

  • نحوه حل معادلات دیفرانسیل، آپدیت وضعیت سیستم، به دست آوردن کمیتهای مناسب رو باید از آنالیز عددی یاد بگیرین. مثلا روش حل رانگ-کوتا رواج نسبی داره و اون رو یاد بگیرین خوبه. در موارد زیادی، ممکنه با حل معادلات تصادفی کار کنین که در سطحی پیشرفته‌تر قرار داره. نحوه حل معادلات تصادفی، مفهوم آنسامبل، وارد کردن نویز در معادلات دیفرانسیل و … رو بهتره یاد بگیرین.

در همه موارد، کدزنی هیچ الزامی نداره و برای هر مسئله‌ای رایج، میتونین نمونه کد رو میتونین پیدا کنین. ولی برای تسلط بر کد و استفاده موثر، بهتره در سطح خوبی موارد بالا رو یاد بگیرین.


خلاصه کلی الگوریتمها هم معمولا به این شکله که

  • شرایط اولیه سیستم وارد میشن: مقادیر اولیه مکان و سرعت برای سیستمهای کلاسیک. پارامترهای لازم هم باید مقداردهی شده باشن، مثلا جرم ذرات و … . پارامتر منظور کمیتهایی هستن که در الگوریتم، با زمان عوض نخواهند شد ولی در معادلات وارد میشن.

  • یک گام معادلات دینامیکی با شرایط داده شده، آپدیت میشن. موقعیتها و سرعت ذرات در زمان جدید تعیین میشن. اگر کمیتی مورد نظر هست که باید در هر مرحله با استفاده از این خصوصیات حساب بشه، حساب-کتاب میشه و الگوریتم حل معادلات تکرار میشه. معمولا یا شرط زمان نهایی یا شرطی برای همگرایی کمیتهای خاصی برای پایان این قسمت لازم دارین.

1 پسندیده