Vahid 3 / 11

Fiziki Sistemlərin Simulyasiyası

Qazanclar:

  • Solver_ivp kimi həlledicilərlə dinamik fiziki sistemi simulyasiya etmək və ümumi enerji və ya impuls qorunmasını izləməklə simulyasiyanın etibarlılığını yoxlamaq bacarığı
  • Konvergensiya testi ilə addım ölçüsünü seçməklə ədədi artefaktları real fizikadan ayırmaq bacarığı
  • Simulyasiya nəticəsini məlum analitik vəziyyətlər və fiziki limit vəziyyətləri ilə müqayisə edərək sınaqdan keçirmək bacarığı

Fizikanın çox hissəsi zamanla dəyişən sistemlərlə məşğul olur: salınan sarkaç, orbitdə olan planet, soyuducu cisim, yayılan dalğa. Bu sistemlərin əksəriyyəti diferensial tənliklərlə, yəni kəmiyyətin (vəzifə, temperatur) dəyişmə sürətini həmin kəmiyyətin özü ilə əlaqələndirən tənliklərlə təsvir edilir. Bu tənliklərin çox vaxt analitik (düstur-dəqiq) həlli olmur; Bunun əvəzinə biz simulyasiya edirik: sistemi kiçik zaman addımları ilə irəliyə aparırıq və onun davranışını ədədi olaraq izləyirik. Bu bölmədə siz simulyasiya kodunu yaratmaq üçün süni intellektdən (AI) necə istifadə edəcəyinizi və ən əsası, simulyasiyanın fizikanı dəqiq əks etdirdiyini qoruma qanunları ilə necə yoxlamağı öyrənəcəksiniz.

Simulyasiyanın əsas ideyası və AI-nin rolu

Simulyasiya bu dövrədən ibarətdir: cari vəziyyəti götürün, dəyişiklik tənliyini tətbiq edin, kiçik Δt irəliləyin, təkrarlayın. Süni intellekt bu döngəni qurmaqda, düzgün həlledicini – diferensial tənliyi addım-addım həll edən alqoritmi seçməkdə və kodu redaktə etməkdə çox sürətlidir. Fizikin standart aləti scipy.integrate.solve_ivp-dir (ilkin dəyər məsələlərini həll edən SciPy funksiyası). Ancaq süni intellekt tərəfindən yaradılan simulyasiyaya etibar etməzdən əvvəl soruşmalı olduğunuz sual budur: Bu simulyasiya qorunub saxlanılmalı olan fiziki kəmiyyətləri (enerji, impuls, bucaq momentumu) qoruyurmu?

Sistem

Tənlik növü

Doğrulama meyarları

sarkaç, yay

İkinci dərəcəli ODE

Ümumi enerjinin sabitliyi

planetin orbiti

Nyuton qravitasiya ODE

Bucaq momentumu + enerjinin saxlanması

Sərin/istilik

Birinci dərəcəli ODE

Tarazlıq temperaturuna yaxınlaşma

radioaktiv parçalanma

Eksponensial ODE

Yarım ömrünə nəzarət

Monte Karlo (təsadüfi)

statistik

Məlum orta/paylanmaya yaxınlaşma

Qeyd: ODE "adi diferensial tənlik" deməkdir — tək dəyişənə (adətən zaman) görə törəməni əhatə edən tənlik.

Addım-addım: etibarlı simulyasiya

1. Fizikanı və ilkin şərtləri aydınlaşdırın. Sistemin tənliyi nədir? Başlanğıc mövqeyi, sürət, temperatur nədir? Vahidlər hansılardır? Bunları açıq şəkildə AI-yə verin.

2. Müvafiq həlledicini və addım ölçüsünü seçin. Çox böyük zaman addımı simulyasiyanı qeyri-sabit edir (nəticə partlayır və ya fizika pozulur); Çox kiçik bir addım lazımsız olaraq yavaşlayır. AI təklif edə bilər, lakin qərarı idarə edir.

3. Kodda qorunma qanununa əməl edin. Simulyasiya zamanı ümumi enerjini (və ya təcil) hesablayın və çap edin. Sabit qalmalı olan böyüklükdə sürüşürsə, simulyasiya etibarsızdır.

4. Məlum həll yolu ilə müqayisə edin. Məsələn, kiçik amplitudalı sarkacın dövrü T = 2π√(L/g) düsturu ilə məlumdur; Simulyasiyanın verdiyi dövrü bununla müqayisə edin.

5. Parametri, test davranışını dəyişdirin. Sürtünmə əlavə edildikdə rəqs sönürmü? Kütlə artdıqda orbit gözlənildiyi kimi dəyişirmi? Fiziki intuisiya ilə test edin.

İpucu: Hər bir simulyasiyaya bir "enerji izləyicisi" əlavə edin: hər addımda ümumi enerjini hesablayın və onu ilkin enerjiyə nisbət kimi qrafikləşdirin. Sürtünməsiz sistemdə bu nisbət 1-ə yaxın sabit qalmalıdır. 1%-dən çox sürüşmə addım ölçüsünü azaltmaq və ya həlledicini dəyişdirmək lazım olduğuna işarədir.

üç mini qutu

Məsələn 1 - Enerji partlaması. Şagird süni intellekt tərəfindən yazılmış sadə Eyler metodu (ən primitiv addım metodu) ilə planet orbitini simulyasiya etdi. Zaman keçdikcə orbit getdikcə genişləndi və planet “uçdu”. Tələbə ümumi enerjiyə nəzarət edərkən onun daim artdığını gördü - Eyler metodunun məlum qüsuru. O, süni intellektdən enerjiyə daha yaxşı qənaət edən həlledici (sol_ivp ilə daha uyğun üsul) istədi və orbit sabit ellipsə yerləşdi.

Case 2 - Yanlış vahid, səhv dövr. Müəllim sarkaç simulyasiyasında dövrün 0,2 s olduğunu, lakin gözlənilən dəyər 2 s olduğunu tapdı. Onu araşdırdıqda, AI-nin uzunluğu santimetrlə daxil etdiyini və düsturda onu sayğac kimi istifadə etdiyini başa düşdü. Vahid korreksiyası ilə simulyasiya T = 2π√(L/g) analitik dəyəri ilə razılaşdırıldı.

İş 3 - Monte Karlo yoxlaması. Tədqiqatçı süni intellektdən detektora dəyən hissəcikləri təsadüfi nümunələr (Monte Karlo - təsadüfi ədədlərlə statistik simulyasiya) üçün kod istədi. Nəticəni yoxlamaq üçün o, analitik olaraq bilinən sadə bir işi (məsələn, dairənin sahəsinin nisbəti ilə π-ni qiymətləndirmək) eyni üsulla işlətdi; Kod π-ni düzgün proqnozlaşdırdıqda, onun faktiki simulyasiyaya inamı artdı. O, həmçinin nümunələrin sayı artdıqca nəticənin daraldığını və real dəyərə yaxınlaşdığını müşahidə etdi.

Dörd kopyalana bilən şablon

1) Konservasiyaya nəzarət edilən simulyasiya:

Sol_ivp ilə aşağıdakı fiziki sistemi simulyasiya edən Python kodunu yazın: [sistem, tənlik, ilkin şərtlər, vahidlər]. Simulyasiya boyunca hər bir addımda ümumi enerjini (və əgər varsa, impulsunu) hesablayın və zamanla onun ilkin dəyərinə nisbətini təyin edin. Qeyd edək ki, sürtünməsiz vəziyyətdə bu nisbət sabit ~1 qalmalıdır.

2) Analitik müqayisə:

Aşağıdakı simulyasiyanın nəticəsini bu sistemin məlum analitik həlli ilə müqayisə edən kodu əlavə edin ([formula]). Onların hər ikisini eyni qrafikdə tərtib edin və ədədi və analitik arasındakı maksimum fərqi çap edin. Simulyasiya kodu: [burada]

3) Addım ölçüsü / sabitlik testi:

Aşağıdakı simulyasiyanı müxtəlif zaman addımları ilə (məsələn, dt = 0.1, 0.01, 0.001) işləyən və nəticələrin necə dəyişdiyini göstərən kodu yazın. Nəticənin hansı addım ölçüsündən sonra sabitləşəcəyini (birləşdiyini) göstərin. Kod: [burada]

4) Fiziki limit vəziyyəti testi:

Aşağıdakı simulyasiya üçün 3 fiziki limit vəziyyəti testi təklif edin: (məsələn, sürtünmə sıfır olduqda enerjiyə qənaət edilməli, sürtünmə böyük olduqda tez dayanma, kütlə ikiqat artdıqda dövr necə dəyişməlidir). Hər testdən gözlənilən nəticəni bir cümlə ilə yazın. Kod: [burada]

Zəif məlumat / Güclü göstəriş

Zəif: "Bir sarkaç simulyasiyasını yazın."
Nəticə: vahidləri olmayan kod, təsdiqləmə, konservasiya yoxlanışı; Bunun fizikanı əks etdirib- əks etdirmədiyi bəlli deyil.
Güclü: "Uzunluğu L = 1 m, başlanğıc bucağı 10°, g = 9,81 m/s² ilə 10 saniyəlik sadə sarkacın simulyasiyasını yaradan sol_ivp kodunu yazın. Hər addımda ümumi enerjiyə nəzarət edin və başlanğıca nisbəti qrafiki ilə ölçün. Ölçülmüş dövrü kiçik amplituda ilə müqayisə edin. T√ (2πg) fərqini çap edin."
Nəticə: Vahidlərlə etibarlı simulyasiya, konservasiya monitorinqi və analitik dəyərlə müqayisə.

Ümumi səhvlər

  • Saxlanma qanununa əməl etməmək. Enerji və ya impuls sürüşürsə, simulyasiya səhvdir; Bunu görmədən nəticəyə inanmaq ən çox yayılmış səhvdir.
  • Addım ölçüsünü özbaşına seçmək. Çox böyük addım qərarsızlıq yaradır, çox kiçik addım lazımsız xərclər yaradır; Konvergensiya testi vacibdir.
  • Analitik müqayisələr aparma. Onu məlum xüsusi halla (kiçik amplituda, sürtünməsiz vəziyyət) müqayisə etmədən simulyasiya nəzarətsiz qalır.
  • Fizika üçün ədədi qüsuru səhv salmaq. Orbital genişlənmə kimi davranış çox vaxt real fizikanın deyil, metodun qüsurudur.
  • Təsadüfi simulyasiyada nümunələrin sayını təyin etmək. Monte Karloda nümunələrin sayını artırmaq və yaxınlaşma görmədən tək bir nəticəyə güvənmək yanlışdır.
Diqqət: Simulyasiyanın "gözəl qrafik" yaratması onun düzgün olması demək deyil. Vizual inandırıcı, lakin aldadıcıdır. Simulyasiyaya etibar etməzdən əvvəl qorunma qanununa əməl etməyinizə və onu məlum vəziyyətlə müqayisə etməyinizə əmin olun. Təsdiqlənməmiş simulyasiya fiziki sübut deyil.

Xülasə

Simulyasiya analitik həlləri olmayan və AI simulyasiya kodunu sürətlə quran dinamik fiziki sistemləri başa düşmək üçün güclü bir yoldur. Lakin simulyasiyanın dəyəri onun fizikanı düzgün əks etdirib- əks etdirməməsindən asılıdır. Bunu təmin etməyin yolu konservasiya qanunlarına riayət etmək, yaxınlaşma testi ilə müvafiq addım ölçüsünü seçmək, nəticəni məlum analitik hallarla müqayisə etmək və fiziki limit hallarını sınaqdan keçirməkdir. Növbəti bölmədə diqqəti yaradılan məlumatlardan faktiki eksperimental məlumatların təhlilinə keçirəcəyik.

Tətbiq tapşırığı

Sadə bir dinamik sistem seçin (sarkaç, sərbəst düşmə + hava müqaviməti və ya soyutma). Şablon 1 ilə süni intellektdə qorunma və ya balans yoxlamasını ehtiva edən simulyasiya kodunu çap edin və işə salın. Nəzarət olunan kəmiyyətin (enerji və ya temperatur) gözlənildiyi kimi davranıb-yaxmadığını yoxlayın. Sonra parametri (sürtünmə, kütlə, addım ölçüsü) dəyişdirin və davranış dəyişikliyinin fiziki intuisiyanızla uyğun olub-olmadığına baxın. 5-6 cümlə ilə yazın.

yoxlama siyahısı

  • [ ] Sistemin tənliyini, ilkin şərtlərini və vahidlərini aydınlaşdırdım.
  • [ ] Mən simulyasiyada qorunma qanununa (enerji/momentum) əməl etdim.
  • [ ] Addım ölçüsünü yaxınlaşma testi ilə təsdiqlədim.
  • [ ] Nəticəni məlum analitik vəziyyətlə müqayisə etdim.
  • [ ] Mən ən azı bir fiziki limit vəziyyəti testi etmişəm.
  • [ ] Mən ədədi qüsurları həqiqi fizikadan ayırdım.