f˙ız˙ıkte sayısal y¨ontemler - Çukurova Üniversitesi Fizik Bölümü
Transkript
f˙ız˙ıkte sayısal y¨ontemler - Çukurova Üniversitesi Fizik Bölümü
FİZİKTE SAYISAL YÖNTEMLER Doç. Dr. Metin Özdemir Çukurova Üniversitesi Fizik Bölümü 2 ÖNSÖZ Bu ders notları Fizik Bölümünde zaman zaman seçmeli olarak vermekte olduǧum sayısal analiz dersinin hazırlanması sırasında ortaya çıkmıştır. Notlar eksiksiz olmaktan çok uzak olup sürekli bir deǧişim ve gelişme içerisindedir. Notların hazırlanmasındaki temel amaç konu ile ilgili hem daha düzenli bir kaynak yaratmak, hem de bu konuda varolan eksikliǧi gidermeye katkıda bulunmaktır. Bu ders notları sayısal analiz konusunda tamamen teorik bir çalışma olmadıǧı gibi tamamen sayısal bir el kitabıda deǧildir. Konular üniversite birinci ve ikinci sınıf standart matematik derslerini takip etmiş biri için kolaylıkla izlenebilecek durumdadır. Ayrıca bu notları kullanacak olanların FORTRAN programlama dili ile ilgili giriş düzeyinde yeterli bilgiye sahip oldukları, fortran programlarını yazıp derleyebilecekleri gerekli yazılımların bulunduǧu bir bilgisayara erişimlerinin bulunduǧu kabul edilmiştir. Programlar FORTRAN 77 dilinde yazılmıştır. Programların büyük kısmı belirli bir problemi çözmek veya işlevi yerine getirmek üzere yazılmıştır. Çalışır durumdaki bu programlar eksiksiz olarak öǧrenciye verilecektir. Öǧrenci bu programları varsa deǧişik parametreler, başlangıç şartları vs. için çalıştırarak aşinalık kazanacak, aynı zamanda programın/kullanılan yöntemin iyi/kötü taraflarını keşfetmiş olacaktır. Daha sonra benzeri problemleri çözmek üzere bu programlarda gerekli deǧişikliklerin yapılması istenecektir. Ele alınan konuların anlatımı ve bunların bilgisayarda pratik uygulaması beraberce yürütülecek şekilde tasarlanmıştır. Bu nedenle öǧrencinin notları adım adım takip etmesi durumunda en iyi verim elde edilmiş olacaktır. Pratik uygulamaları daha sonra yapmak isteyenler veya bu durumun daha uygun olduǧu durumlar için kullanılmak üzere her bölümün sonuna bir ’Labaratuvar Saati’ eklenmiştir. Burada o bölüme ait pratik olarak bilgisayar başında yapılması gereken her şey tekrar edilmiştir. Bu nedenle bölüm içinde anlatılan konular ile labaratuvar bölümünde istenenler bazen tamamen aynı olabilir. Bu, tekrara düşme pahasına olsa da yapılmıştır. Bu dersi daha önce almış olan ögrencilerin bu notların hazırlanmasına dolaylı veya dolaysız mutlaka katkıları olmuştur, onlara teşekkür ediyorum. Eylül 2004 Metin Özdemir Çukurova Üniversitesi Fizik Bölümü 01330 Adana metoz@cu.edu.tr İÇİNDEKİLER 1 GİRİŞ 1.1 Giriş . . . . . . . . . . . . . . . . . . . . . . 1.2 Hassasiyet, Hata ve Kararlılık . . . . . . . . 1.3 Hassasiyet Kaybı ve İşlem Önceliği . . . . . 1.4 Örnek Programlar ve Öneriler . . . . . . . . 1.4.1 Verilerin Ekrandan Okutulması . . . 1.4.2 Boyutlu Değişkenler ve Döngüler . . 1.4.3 ’Subroutine’ Alt Programı . . . . . 1.4.4 ’Function’ Alt Programı . . . . . . 1.4.5 Çıktıların Bir Dosyaya Yazdırılması 1.4.6 Verilerin Dosyadan Okutulması . . . 1.4.7 Grafik Çizimi . . . . . . . . . . . . . 1.5 Labaratuvar Saatleri . . . . . . . . . . . . . 1.6 Labaratuvar Saati-I . . . . . . . . . . . . . . 1.7 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 LİNEER OLMAYAN DENKLEMLER (KÖK BULMA) 2.1 Giriş . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Grafik Yöntemi . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Yarılama Metodu . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Kiriş Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Sekant Metodu . . . . . . . . . . . . . . . . . . . . . . . . . 2.6 Newton-Raphson Metodu . . . . . . . . . . . . . . . . . . . 2.7 Newton-Raphson Metodu ile İki Denklemin Çözülmesi . . . 2.8 Müller Metodu: Sanal Kökler . . . . . . . . . . . . . . . . . 2.9 Sabit Nokta İterasyonları . . . . . . . . . . . . . . . . . . . 2.10 Newton-Raphson Metodunun Genelleştirilmesi . . . . . . . . . . . . . . . . . . . . . . . . . 2.11 Labaratuar Saati-II . . . . . . . . . . . . . . . . . . . . . . . 2.12 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . . . . . . . 3 ADİ DİFERANSİYEL DENKLEMLERİNİN ÇÖZÜMÜ 3.1 Giriş . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Sayısal Türev Alma . . . . . . . . . . . . . . . . . . . . . . 3.3 Euler Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Euler Metodu İçin Hata Tahmini . . . . . . . . . . . 3.3.2 Euler Metodunun Kararlılık Analizi . . . . . . . . . 3.4 Euler-Richardson Metodu . . . . . . . . . . . . . . . . . . . 3.5 Runge-Kutta Metodu . . . . . . . . . . . . . . . . . . . . . 3.5.1 İki-Adımlı Ruge-Kutta Metodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 12 14 15 15 17 18 20 21 22 24 25 26 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 29 29 30 32 33 34 36 37 37 . . . . . . . . . 37 37 39 . . . . . . . . 41 41 44 45 47 48 52 54 54 . . . . . . . . . . . . . . . . 4 İÇİNDEKİLER 3.5.2 Dört Adımlı Runge-Kutta Metodu . . . . . . . . . . . . . Adım Uzunluǧu Kontrol Edilebilen Metotlar . . . . . . . . . . . . 3.6.1 Adım Uzunluǧu Kontrollü RK-Verner Metodu . . . . . . 3.7 Stif Problemler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8 Sayısal Çözümler İçin Bazı Öneriler . . . . . . . . . . . . . . . . . 3.8.1 Örnek: Radyal Elektrik Alanı Altında Hareket Eden Yüklü Bir Parçacık . . . . . . . . . . . . . . . . . . . . . 3.8.2 Proje: Elektrik ve Manyetik Alanları Altında Hareket Eden Klasik Elektronlar . . . . . . . . . . . . . . . . . . . 3.9 Verlet Algoritması ve Moleküler Dinamik . . . . . . . . . . . . . 3.9.1 Hızdan Baǧımsız Verlet Algoritması . . . . . . . . . . . . 3.9.2 Hıza Baǧımlı Verlet Algoritması . . . . . . . . . . . . . . 3.10 Labaratuar Saati-III.a . . . . . . . . . . . . . . . . . . . . . . . . 3.11 Labaratuar Saati-III.b . . . . . . . . . . . . . . . . . . . . . . . . 3.12 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . . . . . . . . . . 3.6 55 57 58 60 62 63 65 67 67 67 68 72 75 4 RASGELE SAYILAR ve MONTE CARLO YÖNTEMLERİ 4.1 Rasgele Sayılar . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Rasgele Sayıların Üretilmesi . . . . . . . . . . . . . . . . . . . . 4.3 Rasgele Sayıların Test Edilmesi . . . . . . . . . . . . . . . . . . 4.4 Monte Carlo Yöntemi ile İntegral Alma . . . . . . . . . . . . . 4.5 Metropolis Algoritması . . . . . . . . . . . . . . . . . . . . . . . 4.6 Bir Boyutlu Ising Modeli . . . . . . . . . . . . . . . . . . . . . . 4.7 Labaratuar Saati-IV . . . . . . . . . . . . . . . . . . . . . . . . 4.8 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 LİNEER DENKLEM SİSTEMLERİNİN ÇÖZÜMÜ 5.1 Giriş . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Gauss Yoketme Metodu . . . . . . . . . . . . . . . . . 5.3 Pivot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 LU Çarpanlarına Ayırma . . . . . . . . . . . . . . . . 5.5 Labaratuar Saati V . . . . . . . . . . . . . . . . . . . . 5.6 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . . . . 91 . 91 . 92 . 95 . 97 . 100 . 102 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 77 78 80 82 85 85 88 89 6 SINIR ŞARTLI ADİ DİFERANSİYEL DENKLEMLER 6.1 Giriş . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Sonlu Fark Yöntemleri . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Doǧrudan Çözüm . . . . . . . . . . . . . . . . . . . . . . . 6.2.2 Relaksasyon (İteratif) Yöntem . . . . . . . . . . . . . . . 6.2.3 Özdeǧer-Özvektör problemleri: Lineer, Homojen Diferansiyel Denklemler . . . . . . . . . . . . . . . . . . . . . . . 6.3 Labaratuar Saati-VI . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 Proje: Schrödinger Denkleminin Çözümü . . . . . . . . . . . . . 6.5 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . . . . . . . . . . 105 105 106 106 109 7 İNTERPOLASYON ve EKSTRAPOLASYON 7.1 Giriş . . . . . . . . . . . . . . . . . . . . . . . . . 7.2 Doǧrusal İnterpolasyon . . . . . . . . . . . . . . . 7.3 Lagrange Enterpolasyon Formülü . . . . . . . . . 7.4 Newton Enterpolasyonu ve Bölümlü Farklar . . . 7.5 Labaratuar Saati V . . . . . . . . . . . . . . . . . 7.6 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . 119 119 120 121 122 125 125 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 114 116 117 İÇİNDEKİLER 5 8 DOǦRU UYDURMA YÖNTEMLERİ 127 8.1 Giriş . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 8.2 Labaratuar Saati V . . . . . . . . . . . . . . . . . . . . . . . . . . 127 8.3 ALIŞTIRMA SORULARI . . . . . . . . . . . . . . . . . . . . . . . 127 A FORTRAN Komutlarının Kısa bir Tekrarı A.1 Karakter Sayısı . . . . . . . . . . . . . . . . . . . . . A.2 Deǧişkenler . . . . . . . . . . . . . . . . . . . . . . . A.3 Sabitler . . . . . . . . . . . . . . . . . . . . . . . . . A.4 Tanımlama Komutları . . . . . . . . . . . . . . . . . A.5 Aritmetiksel Komutlar ve Matematiksel Fonksiyonlar A.6 Kontrol Devri . . . . . . . . . . . . . . . . . . . . . . A.7 DO Döngüleri . . . . . . . . . . . . . . . . . . . . . . A.8 Girdi-Çıktı Komutları . . . . . . . . . . . . . . . . . A.9 Alt Programlar . . . . . . . . . . . . . . . . . . . . . B GNUPLOT Grafik Programı B.1 İki Boyutlu Grafik Çizimi . . . . . . . . . . . B.2 Fonksiyon Tanımlama ve Parametrelere Değer B.3 Üç Boyutlu Grafik Çizimi . . . . . . . . . . . B.3.1 Fonksiyon Grafiği Çizme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 129 129 129 130 131 131 133 133 134 . . . . . Atama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 135 138 139 139 C BÖLÜM 2’e AİT PROGRAMLAR 141 C.1 KOK1 programı . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 D BÖLÜM 3’e AİT PROGRAMLAR 145 D.1 ADD1 programı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ŞEKİLLER DİZİNİ 1.1 F (x) ve G(x)’in grafiǧi . . . . . . . . . . . . . . . . . . . . . . . . 25 2.1 2.2 2.3 2.4 2.5 2.6 2.7 Grafik çizerek kök bulma . . . . . . . . . . . . . y = sin(x) ve y = x’in grafiǧi . . . . . . . . . . . Köklerin yarılama metodu ile bulunması . . . . . Köklerin yanlışçizgi yöntemi ile bulunması . . . . Köklerin sekant metodu ile bulunması . . . . . . Köklerin Newton-Raphson yöntemi ile bulunması Newton-Raphson metodunun ıraksama durumu . 30 31 31 33 34 35 35 3.1 3.7 Örnek 3.5’de çözülen diferansiyel denkleminin sayısal ve analitik çözümleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . (3.15)’deki parçacıǧın yörüngesi . . . . . . . . . . . . . . . . . . . Basit harmonik salınıcı probleminde yerdeǧişim ve hız fonksiyonları Basit harmonik salınıcı probleminde yerdeǧişimde yapılan hata . Basit harmonik salınıcının v(t)-x(t) grafiǧi . . . . . . . . . . . . . Va ve Vb potansiyellerinde tutulan aynı merkezli iki silindirik elektrot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aynı merkezli iki silindirik elektrot arasındaki parçacıǧın yörüngesi 4.1 4.2 4.3 4.4 4.5 4.6 Buffon’un π sayısını bulma deneyi . . . . . . Buffon’un π sayısını bulma deneyinin tipik bir Rasgele sayılar arasındaki korelasyona örnek . Rasgele sayıların iki boyutta daǧılımı . . . . . Rasgele sayıların eşit aralıkta daǧılımı . . . . İntegral alma . . . . . . . . . . . . . . . . . . 7.1 Örnek 7.2’de çözülen enterpolasyon fonksiyonu ve enterpolasyon noktalari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 B.1 B.2 B.3 B.4 B.5 B.6 gnuplot açılım ekranı . . . . . . . . plot komutunun kullanımına örnek sin(x) fonksiyonunun grafiǧi . . . . . gnuplot programında deǧişik etkiler Sınırların düzenlenişi . . . . . . . . . gnuplot ile çoklu grafik . . . . . . . 3.2 3.3 3.4 3.5 3.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sonucu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 60 61 61 62 64 65 78 78 80 81 82 83 136 136 137 137 137 139 TABLOLAR DİZİNİ 3.1 3.2 3.3 3.4 3.5 Euler metodu ile bir diferansiyel denkleminin çözümü ADD6 programının örnek bir çıktısı . . . . . . . . . . ADD7 programının örnek bir çıktısı . . . . . . . . . . ADD8 programının örnek bir çıktısı . . . . . . . . . . ADD6 programının örnek bir çıktısı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 57 59 59 72 7.1 Newton enterpolasyonunda tablo oluşturma . . . . . . . . . . . . 125