Unit 3 / 11

Simulasi Sistem Fizikal

Keuntungan:

  • Keupayaan untuk mensimulasikan sistem fizikal dinamik dengan penyelesai seperti solve_ivp dan mengesahkan kesahihan simulasi dengan memantau jumlah tenaga atau pemuliharaan momentum
  • Keupayaan untuk membezakan artifak berangka daripada fizik sebenar dengan memilih saiz langkah dengan ujian penumpuan
  • Keupayaan untuk menguji hasil simulasi dengan membandingkannya dengan situasi analitikal yang diketahui dan keadaan had fizikal

Kebanyakan fizik berkaitan dengan sistem yang mengubah masa: bandul berayun, planet yang mengorbit, jasad penyejuk, gelombang merambat. Kebanyakan sistem ini diterangkan oleh persamaan pembezaan—iaitu persamaan yang mengaitkan kadar perubahan kuantiti (kedudukan, suhu) dengan kuantiti itu sendiri. Persamaan ini selalunya tidak mempunyai penyelesaian analitikal (formula-tepat); sebaliknya kami mensimulasikan: menggerakkan sistem ke hadapan dalam langkah masa yang kecil dan memantau tingkah lakunya secara numerik. Dalam unit ini, anda akan belajar cara menggunakan kecerdasan buatan (AI) untuk membina kod simulasi dan — paling penting — cara mengesahkan dengan undang-undang pemuliharaan sama ada simulasi itu mencerminkan fizik dengan tepat.

Idea asas simulasi dan peranan AI

Simulasi terdiri daripada kitaran ini: ambil keadaan semasa, gunakan persamaan perubahan, bergerak ke hadapan dengan Δt kecil, ulangi. AI sangat pantas membina gelung ini, memilih penyelesai yang betul — algoritma yang menyelesaikan persamaan pembezaan langkah demi langkah, dan mengedit kod. Alat piawai ahli fizik ialah scipy.integrate.solve_ivp (fungsi SciPy yang menyelesaikan masalah nilai awal). Tetapi sebelum anda mempercayai simulasi yang dicipta oleh AI, soalan yang anda mesti tanya ialah ini: Adakah simulasi ini mengekalkan kuantiti fizikal (tenaga, momentum, momentum sudut) yang perlu dipelihara?

Sistem

Jenis persamaan

Kriteria pengesahan

bandul, musim bunga

ODE darjah kedua

Ketekalan jumlah tenaga

orbit planet

ODE graviti Newtonian

Momentum sudut + pemuliharaan tenaga

Sejukkan/panaskan

ODE ijazah pertama

Penumpuan kepada suhu keseimbangan

pereputan radioaktif

ODE eksponen

Kawalan separuh hayat

Monte Carlo (rawak)

statistik

Penumpuan kepada min/taburan yang diketahui

Nota: ODE bermaksud "persamaan pembezaan biasa" — persamaan yang melibatkan derivatif berkenaan dengan pembolehubah tunggal (biasanya masa).

Langkah demi langkah: simulasi yang boleh dipercayai

1. Jelaskan fizik dan keadaan awal. Apakah persamaan sistem itu? Apakah kedudukan permulaan, kelajuan, suhu? Apakah unit-unit tersebut? Berikan ini secara eksplisit kepada AI.

2. Pilih penyelesai yang sesuai dan saiz langkah. Langkah masa yang terlalu besar menjadikan simulasi tidak stabil (hasilnya meletup atau fizik pecah); Langkah yang terlalu kecil melambatkan tanpa perlu. AI mungkin mencadangkan, tetapi mengawal keputusan itu.

3. Patuhi undang-undang pemuliharaan dalam kod. Kira dan cetak jumlah tenaga (atau momentum) sepanjang simulasi. Jika ia hanyut magnitud yang sepatutnya kekal malar, simulasi tidak boleh dipercayai.

4. Bandingkan dengan penyelesaian yang diketahui. Sebagai contoh, tempoh bandul amplitud kecil diketahui dengan formula T = 2π√(L/g); Bandingkan tempoh yang diberikan oleh simulasi dengan ini.

5. Tukar parameter, tingkah laku ujian. Adakah ayunan dilembapkan apabila geseran ditambah? Adakah orbit berubah seperti yang dijangkakan apabila jisim meningkat? Uji dengan intuisi fizikal.

Petua: Tambahkan "penjejak tenaga" pada setiap simulasi: hitung jumlah tenaga pada setiap langkah dan plotkannya sebagai nisbah kepada tenaga awal. Dalam sistem tanpa geseran, nisbah ini harus kekal malar hampir kepada 1. Hanyut lebih daripada 1% adalah tanda bahawa anda perlu mengurangkan saiz langkah atau menukar penyelesai.

tiga kes mini

Kes 1 — Ledakan tenaga. Seorang pelajar mensimulasikan orbit planet dengan kaedah Euler yang mudah (kaedah langkah paling primitif) yang ditulis oleh AI. Orbit secara beransur-ansur melebar dari semasa ke semasa dan planet itu "terbang". Semasa pelajar memantau jumlah tenaga, dia melihat bahawa ia sentiasa meningkat-kecacatan yang diketahui kaedah Euler. Dia meminta AI untuk penyelesai yang menjimatkan tenaga dengan lebih baik (kaedah yang lebih sesuai dengan solve_ivp) dan orbitnya mengendap menjadi elips yang stabil.

Kes 2 — Unit salah, tempoh salah. Seorang guru mendapati tempohnya ialah 0.2 s dalam simulasi bandul, tetapi nilai jangkaan ialah 2 s. Apabila dia menelitinya, dia menyedari bahawa AI memasuki panjang dalam sentimeter dan menggunakannya sebagai meter dalam formula. Dengan pembetulan unit, simulasi bersetuju dengan nilai analisis T = 2π√(L/g).

Kes 3 — Pengesahan Monte Carlo. Seorang penyelidik meminta AI untuk kod yang secara rawak sampel (Monte Carlo - simulasi statistik dengan nombor rawak) zarah mengenai pengesan. Untuk mengesahkan keputusan, dia menjalankan kes mudah yang diketahui secara analitikal (cth. menganggar π dengan nisbah luas bulatan) dengan kaedah yang sama; Apabila kod meramalkan π dengan betul, keyakinannya terhadap simulasi sebenar meningkat. Beliau juga memerhatikan bahawa apabila bilangan sampel bertambah, hasilnya mengecil dan menumpu kepada nilai sebenar.

Empat templat yang boleh disalin

1) Simulasi yang dipantau pemuliharaan:

Tulis kod Python yang mensimulasikan sistem fizikal berikut dengan solve_ivp: [sistem, persamaan, keadaan awal, unit]. Sepanjang simulasi, hitung jumlah tenaga (dan momentum, jika ada) pada setiap langkah dan plot nisbahnya kepada nilai awalnya dari semasa ke semasa. Ambil perhatian bahawa dalam kes tanpa geseran, nisbah ini harus kekal malar ~1.

2) Perbandingan analitikal:

Tambah kod yang membandingkan hasil simulasi berikut dengan penyelesaian analisis yang diketahui sistem ini ([formula]). Plot kedua-duanya pada graf yang sama dan cetak perbezaan maksimum antara berangka dan analitik. Kod simulasi: [di sini]

3) Ujian saiz / kestabilan langkah:

Tulis kod yang menjalankan simulasi berikut dengan langkah masa yang berbeza (cth. dt = 0.1, 0.01, 0.001) dan tunjukkan cara keputusan berubah. Tentukan selepas saiz langkah yang mana hasilnya stabil (menumpu). Kod: [di sini]

4) Ujian keadaan had fizikal:

Cadangkan 3 ujian keadaan had fizikal untuk simulasi berikut: (cth. tenaga harus dikekalkan apabila geseran sifar, terhenti dengan cepat apabila geseran besar, bagaimana tempoh perlu berubah apabila jisim berganda). Tulis keputusan yang dijangkakan bagi setiap ujian dalam satu ayat. Kod: [di sini]

Gesaan lemah / Gesaan kuat

Lemah: "Tulis simulasi bandul."
Keputusan: kod tanpa unit, tiada pengesahan, tiada pemeriksaan pemuliharaan; Tidak jelas sama ada ia mencerminkan fizik atau tidak.
Kuat: "Tulis kod solve_ivp yang mensimulasikan bandul ringkas panjang L = 1 m, sudut permulaan 10°, dengan g = 9.81 m/s² selama 10 saat. Pantau jumlah tenaga pada setiap langkah dan lukiskan nisbah kepada permulaan. Bandingkan tempoh yang diukur dengan formula amplitud kecil T = 2π√(L/g) dan bezanya."
Keputusan: Simulasi yang boleh dipercayai dengan unit, pemantauan pemuliharaan dan perbandingan dengan nilai analisis.

Kesilapan biasa

  • Tidak mengikut undang-undang pemuliharaan. Jika tenaga atau momentum hanyut, simulasi adalah salah; Mempercayai keputusan tanpa melihat ini adalah kesilapan yang paling biasa.
  • Memilih saiz langkah sewenang-wenangnya. Langkah yang terlalu besar menimbulkan keraguan, langkah yang terlalu kecil menghasilkan kos yang tidak perlu; Ujian penumpuan adalah penting.
  • Tidak membuat perbandingan analitikal. Tanpa membandingkannya dengan kes khas yang diketahui (amplitud kecil, keadaan tanpa geseran), simulasi tetap tidak diawasi.
  • Tersilap kecacatan berangka untuk fizik. Tingkah laku seperti pengembangan orbit sering merupakan kecacatan kaedah, bukan fizik sebenar.
  • Menetapkan bilangan sampel dalam simulasi rawak. Adalah mengelirukan untuk menambah bilangan sampel di Monte Carlo dan bergantung pada satu keputusan tanpa melihat penumpuan.
Awas: Hanya kerana simulasi menghasilkan "graf yang bagus" tidak bermakna ia betul. Visualnya meyakinkan tetapi menipu. Sebelum mempercayai simulasi, pastikan anda mematuhi undang-undang pemuliharaan dan membandingkannya dengan situasi yang diketahui. Simulasi yang tidak disahkan bukan bukti fizikal.

Secara ringkasnya

Simulasi ialah cara yang berkesan untuk memahami sistem fizikal dinamik yang kekurangan penyelesaian analitikal dan membina kod simulasi AI dengan cepat. Tetapi nilai simulasi bergantung pada sama ada ia mencerminkan fizik dengan tepat. Cara untuk memastikan ini adalah dengan mengikuti undang-undang pemuliharaan, memilih saiz langkah yang sesuai dengan ujian penumpuan, membandingkan keputusan dengan kes analisis yang diketahui dan menguji kes had fizikal. Dalam unit seterusnya kita akan mengalihkan fokus daripada data yang dijana kepada analisis data eksperimen sebenar.

Tugasan permohonan

Pilih sistem dinamik mudah (bandulum, jatuh bebas + rintangan udara atau penyejukan). Dengan templat 1, cetak dan jalankan kod simulasi yang termasuk pemuliharaan atau semakan baki dalam AI. Semak sama ada kuantiti yang dipantau (tenaga atau suhu) berkelakuan seperti yang diharapkan. Kemudian tukar parameter (geseran, jisim, saiz langkah) dan lihat sama ada perubahan dalam tingkah laku bersetuju dengan gerak hati fizikal anda. Tulis dalam 5-6 ayat.

senarai semak

  • [ ] Saya menjelaskan persamaan, keadaan awal dan unit sistem.
  • [ ] Saya mengikuti undang-undang pemuliharaan (tenaga/momentum) dalam simulasi.
  • [ ] Saya mengesahkan saiz langkah dengan ujian penumpuan.
  • [ ] Saya membandingkan hasilnya dengan situasi analitikal yang diketahui.
  • [ ] Saya telah melakukan sekurang-kurangnya satu ujian keadaan had fizikal.
  • [ ] Saya membezakan kecacatan berangka daripada fizik sebenar.