Ünite 3 / 11

Fiziksel Sistemlerin Simülasyonu

Kazanimlar:

  • Dinamik bir fiziksel sistemi solve_ivp gibi çözücülerle simüle edip toplam enerji veya momentum korunumunu izleyerek simülasyonun geçerliliğini doğrulayabilme
  • Adım boyutunu bir yakınsama testiyle seçip sayısal kusurları gerçek fizikten ayırt edebilme
  • Simülasyon sonucunu bilinen analitik durumlar ve fiziksel sınır durumlarıyla karşılaştırarak sınayabilme

Fiziğin büyük kısmı zamanla değişen sistemlerle ilgilenir: salınan bir sarkaç, yörüngedeki bir gezegen, soğuyan bir cisim, yayılan bir dalga. Bu sistemlerin çoğu diferansiyel denklemlerle tanımlanır — yani bir büyüklüğün (konum, sıcaklık) değişim hızını, o büyüklüğün kendisine bağlayan denklemlerle. Bu denklemlerin analitik (formülle kesin) çözümü çoğu zaman yoktur; onun yerine simülasyon yaparız: sistemi küçük zaman adımlarıyla ileri taşıyıp davranışını sayısal olarak izleriz. Bu ünitede yapay zekayı (YZ) simülasyon kodu kurmada nasıl kullanacağınızı ve — en önemlisi — simülasyonun fiziği doğru yansıtıp yansıtmadığını korunum yasalarıyla nasıl doğrulayacağınızı öğreneceksiniz.

Simülasyonun temel fikri ve YZ'nin rolü

Bir simülasyon şu döngüden ibarettir: mevcut durumu al, değişim denklemini uygula, küçük bir Δt kadar ilerle, tekrarla. YZ bu döngüyü kurmada, doğru çözücüyü (solver — diferansiyel denklemi adım adım çözen algoritma) seçmede ve kodu düzenlemede çok hızlıdır. Fizikçinin standart aracı scipy.integrate.solve_ivp'dir (başlangıç değer problemlerini çözen SciPy fonksiyonu). Ama YZ'nin kurduğu simülasyona güvenmeden önce mutlaka sormanız gereken soru şudur: Bu simülasyon, korunması gereken fiziksel büyüklükleri (enerji, momentum, açısal momentum) koruyor mu?

Sistem

Denklem türü

Doğrulama ölçütü

Sarkaç, yay

İkinci derece ODE

Toplam enerjinin sabitliği

Gezegen yörüngesi

Newton çekim ODE'si

Açısal momentum + enerji korunumu

Soğuma/ısı

Birinci derece ODE

Denge sıcaklığına yakınsama

Radyoaktif bozunma

Üstel ODE

Yarı ömür kontrolü

Monte Carlo (rastgele)

İstatistiksel

Bilinen ortalama/dağılıma yakınsama

Not: ODE, "adi diferansiyel denklem" (ordinary differential equation) demektir — tek bir değişkene (genellikle zamana) göre türev içeren denklem.

Adım adım: güvenilir bir simülasyon

1. Fiziği ve başlangıç koşullarını netleştir. Sistemin denklemi ne? Başlangıç konumu, hızı, sıcaklığı ne? Birimler ne? Bunları YZ'ye açıkça verin.

2. Uygun çözücü ve adım boyutunu seç. Çok büyük zaman adımı simülasyonu kararsız yapar (sonuç patlar ya da fizik bozulur); çok küçük adım gereksiz yavaşlatır. YZ önerebilir, ama kararı kontrol edin.

3. Korunum yasasını kod içinde izle. Simülasyon boyunca toplam enerjiyi (ya da momentumu) hesaplayıp yazdırın. Sabit kalması gereken bir büyüklük sürüklüyorsa, simülasyon güvenilmezdir.

4. Bilinen bir çözümle karşılaştır. Örneğin küçük genlikli bir sarkacın periyodu T = 2π√(L/g) formülüyle bilinir; simülasyonun verdiği periyodu bununla karşılaştırın.

5. Parametreyi değiştir, davranışı sına. Sürtünme eklendiğinde salınım sönümleniyor mu? Kütle artınca yörünge beklendiği gibi mi değişiyor? Fiziksel sezgiyle test edin.

İpucu: Her simülasyona bir "enerji izleyici" ekleyin: her adımda toplam enerjiyi hesaplayıp, başlangıç enerjisine oranını çizdirin. Sürtünmesiz bir sistemde bu oran 1'e yakın sabit kalmalıdır. %1'den fazla sürüklenme, adım boyutunu küçültmeniz ya da çözücüyü değiştirmeniz gerektiğinin işaretidir.

Üç mini vaka

Vaka 1 — Enerji patlaması. Bir öğrenci, YZ'nin yazdığı basit bir Euler yöntemiyle (en ilkel adım yöntemi) gezegen yörüngesi simüle etti. Yörünge zamanla giderek genişledi ve gezegen "uçup gitti". Öğrenci toplam enerjiyi izleyince enerjinin sürekli arttığını gördü — Euler yönteminin bilinen bir kusuru. YZ'den enerjiyi daha iyi koruyan bir çözücü (solve_ivp ile daha uygun bir yöntem) istedi ve yörünge kararlı elipse oturdu.

Vaka 2 — Yanlış birim, yanlış periyot. Bir öğretmen, sarkaç simülasyonunda periyodu 0,2 s buldu ama beklenen değer 2 s idi. İnceleyince YZ'nin uzunluğu santimetre girip formülde metre gibi kullandığını fark etti. Birim düzeltmesiyle simülasyon T = 2π√(L/g) analitik değeriyle uyuştu.

Vaka 3 — Monte Carlo doğrulaması. Bir araştırmacı, YZ'den bir dedektöre çarpan parçacıkları rastgele örnekleyen (Monte Carlo — rastgele sayılarla istatistiksel benzetim) bir kod istedi. Sonucu doğrulamak için, analitik olarak bilinen basit bir durumu (örneğin bir dairenin alanı oranıyla π tahmini) aynı yöntemle çalıştırdı; kod π'yi doğru tahmin edince asıl simülasyona güveni arttı. Ayrıca örnek sayısını artırınca sonucun daralarak gerçek değere yakınsadığını gözledi.

Dört kopyalanabilir şablon

1) Korunum izlemeli simülasyon:

Şu fiziksel sistemi solve_ivp ile simüle eden bir Python kodu yaz:[sistem, denklem, başlangıç koşulları, birimler].Simülasyon boyunca toplam enerjiyi (ve varsa momentumu) her adımdahesaplayıp, başlangıç değerine oranını zamanla çizdir.Sürtünmesiz durumda bu oranın ~1 sabit kalması gerektiğini not et.

2) Analitik karşılaştırma:

Aşağıdaki simülasyonun sonucunu, bu sistemin bilinen analitikçözümüyle ([formül]) karşılaştıran bir kod ekle. İkisini aynı grafikteçiz ve sayısal ile analitik arasındaki maksimum farkı yazdır.Simülasyon kodu: [buraya]

3) Adım boyutu / kararlılık testi:

Aşağıdaki simülasyonu farklı zaman adımlarıyla (ör. dt = 0.1, 0.01, 0.001)çalıştırıp sonuçların nasıl değiştiğini gösteren bir kod yaz.Hangi adım boyutundan sonra sonucun sabitlendiğini (yakınsadığını) belirt.Kod: [buraya]

4) Fiziksel sınır durumu testi:

Aşağıdaki simülasyon için 3 fiziksel sınır durumu testi öner:(ör. sürtünme sıfırken enerji korunmalı, sürtünme büyükken hızla durmalı,kütle iki katına çıkınca periyot nasıl değişmeli). Her testinbeklenen sonucunu bir cümleyle yaz. Kod: [buraya]

Zayıf prompt / Güçlü prompt

Zayıf: "Sarkaç simülasyonu yaz."
Sonuç: Birimsiz, doğrulamasız, korunum kontrolü olmayan bir kod; fiziği yansıtıp yansıtmadığı belirsiz.
Güçlü: "L = 1 m uzunluğunda, 10° başlangıç açılı basit sarkacı g = 9,81 m/s² ile 10 saniye simüle eden bir solve_ivp kodu yaz. Toplam enerjiyi her adımda izleyip başlangıca oranını çizdir. Ölçülen periyodu, küçük genlik formülü T = 2π√(L/g) ile karşılaştır ve farkı yazdır."
Sonuç: Birimli, korunum izlemeli, analitik değerle karşılaştırmalı, güvenilir bir simülasyon.

Sık yapılan hatalar

  • Korunum yasasını izlememek. Enerji ya da momentum sürükleniyorsa simülasyon yanlıştır; bunu görmeden sonuca güvenmek en yaygın hatadır.
  • Adım boyutunu keyfi seçmek. Çok büyük adım kararsızlık, çok küçük adım gereksiz maliyet doğurur; yakınsama testi şarttır.
  • Analitik karşılaştırma yapmamak. Bilinen bir özel durumla (küçük genlik, sürtünmesiz hal) kıyaslamayan simülasyon denetimsiz kalır.
  • Sayısal kusuru fizik sanmak. Yörüngenin genişlemesi gibi bir davranış çoğu zaman yöntemin kusurudur, gerçek fizik değildir.
  • Rastgele simülasyonda örnek sayısını sabitlemek. Monte Carlo'da örnek sayısını artırıp yakınsamayı görmeden tek sonuca güvenmek yanıltıcıdır.
Dikkat: Bir simülasyon "güzel bir grafik" üretiyor diye doğru olduğu anlamına gelmez. Görsel ikna edicidir ama aldatıcıdır. Simülasyona güvenmeden önce mutlaka bir korunum yasasını izleyin ve bilinen bir durumla karşılaştırın. Doğrulanmamış bir simülasyon, fiziksel bir kanıt değildir.

Özetle

Simülasyon, analitik çözümü olmayan dinamik fiziksel sistemleri anlamanın güçlü yoludur ve YZ simülasyon kodunu hızla kurar. Ama simülasyonun değeri, fiziği doğru yansıtmasına bağlıdır. Bunu güvence altına almanın yolu korunum yasalarını izlemek, uygun adım boyutunu yakınsama testiyle seçmek, sonucu bilinen analitik durumlarla karşılaştırmak ve fiziksel sınır durumlarını sınamaktır. Bir sonraki ünitede odağı, üretilmiş verilerden gerçek deney verilerinin analizine çevireceğiz.

Uygulama görevi

Basit bir dinamik sistem seçin (sarkaç, serbest düşme + hava direnci ya da soğuma). YZ'ye 1. şablonla, korunum ya da denge kontrolü içeren bir simülasyon kodu yazdırın ve çalıştırın. İzlenen büyüklüğün (enerji ya da sıcaklık) beklendiği gibi davranıp davranmadığını kontrol edin. Ardından bir parametreyi (sürtünme, kütle, adım boyutu) değiştirip davranıştaki değişimin fiziksel sezginizle uyuşup uyuşmadığını gözleyin. 5-6 cümleyle not edin.

Kontrol listesi

  • [ ] Sistemin denklemini, başlangıç koşullarını ve birimlerini netleştirdim.
  • [ ] Simülasyonda bir korunum yasasını (enerji/momentum) izledim.
  • [ ] Adım boyutunu bir yakınsama testiyle doğruladım.
  • [ ] Sonucu bilinen bir analitik durumla karşılaştırdım.
  • [ ] En az bir fiziksel sınır durumu testi yaptım.
  • [ ] Sayısal kusurları gerçek fizikten ayırt ettim.