26 Mayıs 2012 Cumartesi

Gece Olduğunda


Yıllar önce Boğaziçi'nde Ömür Akyüz'den (yanlış hatırlamıyorsam) bilim tarihi hakkında bir ders alıyordum. Dersten aklımda kalan fazla birşey yok ancak bir bilimkurgu hikayesinden bahsettiği hatırımda kalmış hocanın. 

Konusu çok ilgimi çekmişti: Birden çok güneşe sahip bir sistemdeki bir gezegende hiç gece olmuyor zira her taraftan daima en az bir yıldızı görüyor. Dolayısı ile burada yaşayan insanlar gece nedir bilmiyorlar. Ancak her 2000 yılda bir çok kısa zaman için de olsa gezegenin kendine özgü karma karışık hareketinden dolayı gece oluyor ve elbette buna şahit olan nesilde çok büyük sosyal değişimler yaşanıyor, insanlar çıldırıyor, medeniyet neredeyse sıfırlanıyor ve baştan başlıyor. Bilim adamları arkeolojik verilerden bu periyotu anlayabiliyorlar, aynı zamanda gezegenin kestirilemeyecek derecede karışık hareketini çözmeye çalışıyorlar ve gecenin ne zaman olacağını kestireiliyorlar. Devamını anlatmayayım...

Uzun zamandır (abartmıyorum yıllardır) ara ara aklıma gelirdi bu kitabın adı neydi nereden bulunabilir diye, zira hakkında tek aklımda kalan şey yukarıdaki paragraftaki bilgiler ve "When the night falls" gibi bir isimdi. Yazarını filan bilmiyordum ve google aramaları sonuç vermiyordu. Yarım saat kadar önce kendiliğinden karşıma çıktı bu sitede! 2 numaradaki sesli kitap ilgimi çekti açtım wikipediadan filan aradım EVET O! Konusu filan aynı. İsmi de tahmin ettiğimden daha basitmiş. :-)) Şimdi bulup okumak için sabırsızlanıyorum.

Neyse gelelim işin fizik kısmına. Birbirini belli bir kuvvet kanununa göre iten veya çeken iki cisimin hareketine 2-cisim problemi denir. Klasik mekanik kitaplarında bir ünitede işlenen ve çözümü analitik olarak yapılabilen iyi incelenmiş bir problemdir. Rutherford saçılmasından Dünya-Güneş sisteminin basitleştirilmiş çözümlerine kadar birçok yerde uygulamaları vardır. Ancak sistemin içerisine etkisi ihmal edilemeyecek kadar büyük olan bir diğer cisim katarsanız o zaman 3-cisim problemi ile karşılaşırsınız ki problem bir anda analitik olarak ÇÖZÜMSÜZ bir hal alır. Denklemlerin karşılıklı çiftlenimli tabiatı ayrıştırıp çözülmelerine izin vermez. Yapılabilecek yegane şey nümerik olarak çözmeye çalışmaktır. Bilim adamları 200 yıldan fazla süredir 3-cisim problemi ile uğraşmışlar ve sadece bazı özel durumlar için çözümler bulabilmişlerdir. Genel durumun çözümü yoktur. 

3'den fazla cisime genelleştirirsek n-cisim probleminden bahsdebiliriz ve elbette ki bu da çözümsüz olan ve sisteme özgü parametreler ile nümerik olarak incelenmesi gereken kaotik bir sistemdir. İşte Asimov bilim kurgu öğesini bu kaotiklik ve kestirilemezlik üzerine kurmuştur. Hikayedeki sistemde 6 tane güneş vardır dolayısı ile "en iyi" ihtimalle 7-cisim problemi söz konusudur ve evet (neden olmasın) böyle bir sistemde 2000 yılda sadece bir gün gece olabilir. Başka neler olabilir kim bilir...

İşte bu ihtimal dahilinde yazılmış kurgu o kadar ilgimi çekmişti ki yıllardır unutmamışım. Bulunca çok sevindim... :-))

21 Mayıs 2012 Pazartesi

Sonlu Potansiyel Kuyusu


Bitirme çalışması yaptırdığım bir öğrencimin projesinde model bir sistem olarak sonlu potansiyel kuyusunu inceliyorduk. Bunun için de nümerik çözümlerden emin olmak lazımdı. İnternette bu işi yaptığını söyleyen birkaç program ve site var onları kullanalım dedik hepsi birbirinden kafa karıştırıcı idi, emin olamadım. Mecburen bu işi yapan bir kodu kendim yazmam gerekti. Ancak olması gerektiğinden çok uzun sürdü bir şekilde bu iş ve nihayet bitti hemen burada yayımlayıp ensemden atmak istiyorum. Açık kod...

Kuantum mekaniğinin standart alıştırmalarından olan bu problemin "çözümü" birçok kaynakta mevcut. Çözümünü tırnak içinde yazdık zira problem analitik olarak çözülemez. Sınır şartlarının eşitlenmesi sonucunda enerji için çıkan ve "ağır şekilde non-lineer" olan bir bilinmeyenli denklem en sade hale getirilip bundan sonra denklemin nümerik olarak çözülmesi gerektiği söylenir.

Bu yazıda denklemin türetilmesini tekrarlayıp nümerik çözüm için bir algoritma vereceğim. Esas nümerik metod üzerinde durmak istediğimden dolayı teori kısmını sadece önemli noktalara değinerek biraz hızlıca geçeceğim. Dediğim gibi birçok kaynaktan detaylara bakılabilir.

Problemi hatırlayalım: -L ile +L koordinatları arasında -V0'a eşit olan ve diğer her yerde 0 olan bir potansiyelde zamandan bağımsız Schrodinger denklemi çözmeye çalışıyoruz. Potansiyeli yukarıda gösterildiği gibi I. bölge, II. bölge ve III. bölge diye işaretleyelim. Kuyunun içerisinde "bağlı" durumlar (bounded states) arıyoruz dolayısı ile enerjimizin -V0 < E < 0 koşullarına uyması gerekir. 

I. ve III. bölgedeki çözümün genel hali aşağıdaki gibidir.



Burada olurken I. bölgede x < 0 olduğundan ve fonksiyonun normalize edilebilir bir ifade olması şartından dolayı A = 0 olmak zorundadır (aksi takdirde sonsuza patlar). Aynı mantıkla III. bölgedeki çözüm için de B = 0 olmak zorundadır.

II. bölgedeki çözüm ise aşağıdaki şekilde yazılır:



Burada ifadesi ile verilir. Bundan sonra yapılması gereken -L ve +L deki sınır şartlarında hem fonksiyonları hem de türevlerini eşitlemek ve çıkan denklemlerden E'yi bulmaya çalışmaktır.

Bu noktada işi nispeten kolaylaştıran bir teorem yardımımıza koşar. Eğer potansiyeliniz "çift fonksiyon" ise ( V(x) = V(-x) ise ) o zaman çözümler tek ve çift fonksiyonlar olarak ayrı ayrı incelenebilir. Bu yoldan devam edecek olursak tek çözümler için II. bölgede sadece sinüs çözümünü çift çözümler için ise sadece kosinüs çözümünü alabiliriz.

Çift çözümlerle başlayalım: (üstellerdeki kappa'larla trigonometriklerdeki k'lar karışmasın)





(Çözüm çift olduğu için I. ve III. bölgedeki baş katsayıları eşit aldık.)

Bunların türevlerini de alıp -L ve +L sınırlarındaki eşitlemeleri de yapacak olursak 4 denklem elde ederiz ancak bu denklemler ikişer ikişer birbirleriyle aynı olduklarından sadece aşağıdaki 2'si kalır elde:




Bunları taraf tarafa böldüğümüz zaman:



denklemini elde ederiz. Kappa ile k'nın daha önce verdiğimiz tanımları kullanılarak aralarında bir bağıntı yazmak mümkündür:



Burada  ifadesinin kısaltmasıdır. Bu bağıntı yardımı ile bir önceki denklemde kappadan kurtulmak ve k cinsinden yazmak mümkündür. Sonuçta denklem aşağıdaki hale gelir:



Korkunç derecede non-lineer olan bu denkleml cepte dursun bir de kardeşini türetelim. (Yani tek çözümlere bakalım) Tek çözümler için yapılması gereken II. bölgede sinüslü çözümü almak ve I. ve III. bölgedeki çözümlerin baş katsayılarının işaretlerinin birini eksili hale getirmektir. Bundan sonra yukarıdaki aşamaların yolundan devam edersek aşağıdaki denklemi elde ederiz.



İki denklemde de sağ taraftaki ifade tanıdıktır: Yarıçapı k0 olan bir çember denklemi. Soldaki ifadeler ise tanjant ve kotanjant fonksiyonunun değişkenin kendisi ile çarpılarak "sivriltilmiş" halidir. Sağ ve sol tarafların çözümlerine aşağıdaki grafik üzerinde bakalım.


Yatay ekseni k olan grafiğimizde dikey eksen denklemlerde sağ ve sol taraflardaki fonksiyonların aldıkları değerleri ifade etmektedir. Siyah ile çizilmiş eğri çeyrek çemberimizden başka birşey değildir. Kırmızı ile çizilen ise çift çözümlerden gelen k.tan(kL) fonksiyonu iken mavi kesikli çizgilerle gösterilen tek çözümlerden gelen -k.cot(kL) fonksiyonudur. İşte mavi ve kırmızı çizgilerin siyah çemberi kestiği noktalara ait olan k değerleri denklemin çözümünü ifade ederler. Bu değerleri bulmak istiyoruz. 

Yukarıdaki grafikte inceleme örneği olarak 1 nm genişliğinde 10 eV derinliğinde bir kuyuda bulunan elektron problemi seçilmiştir. Görüldüğü gibi 6 noktada kesişim vardır. Yani bu durumda 6 tane bağlı durum mevcuttur. (Sonlu potansiyelde mümkün olan bağlı durumların sayısı  her zaman sonludur.) Grafikten çıkarılabilecek başka güzel yorumlar da vardır. Mesela kuyunun derinliğini arttırırsanız çemberin çapı da artacağından dolayı daha fazla sayıda kesişim noktası (yani bağlı durum enerji seviyesi) olacağı söylenebilir. Yine kuyunun genişliğini arttırmak trigonometrik fonksiyonların "peryotlarını" azaltacağından dolayı çemberin içine daha sık yerleşecekler ve kesişim sayısı artacaktır. Bu güzel grafikte daha fazla kaybolmadan nümerik metodumuza geçelim. Dediğim gibi buraya kadar olanlar ders kitaplarında var. Bundan sonrası ise sadece burada var... :-))

Probleme şöyle yaklaşıyorum: Tanjant ve kotanjant fonksiyonlarının içi pi/2 (ve bazı tek-çift katları) olduğunda sonsuza patlıyor dolayısıyla herşeyden önce bu sonsuzluklardan kaçınmam lazım. Bunun için yatay ekseni pi/2L uzunluğunda dilimlere ayırıyorum ve herbir dilimin içini ayrı ayrı inceliyorum. Birinci, üçüncü, beşinci, vs. tek sayılı dilimlerde çift çözümden gelen denklemi; ikinci dördüncü, vs. çift sayılı dilimlerde de tek çözümden gelen denklemi çözmem lazım. 

Tek-çift mantığını bilgisayara anlattıktan sonra her dilimi aradığım hassasiyete göre (genelde binlerce) parçaya bölüyor ve k'nın değerini her parçada hesaplayarak arttırmaya başlıyorum. Trigonometrik değer çemberin değerinden büyük olduğu anda döngüye durmasını söylüyorum ve bu k değerini kaydediyorum. Ondan sonra bir sonraki dilime geçiyorum ve işlemi tekrarlıyorum. Kaç tane dilim kullanacağımı da ilk başta çemberin yarıçapına göre belirliyorum. 

Bütün k'lar kaydedildikten ve döngüler tamamlandıktan sonra k'ları basitçe enerji karşılıklarına çeviriyor ve yazdırıyorum. İşte bu işi yapan python dilinde yazılmış bir program:

#################################

from math import pi,tan     # Pi sayisi ve tanjant fonksiyonu
h2m = 3.815         # hbar^2 / 2m  (eV.Ang^2) birimlerinde m elektron kutlesi
L = 5                     # angstrom biriminde      DIKKAT !!! KUYU GENISLIGI = 2L dir.
V0 = 10.0              # Kuyunun derinligi   eV biriminde
def cot(x):             # math modulunde kotanjant yoktu kendim tanimladim
    return 1/tan(x)

def k(n,m):                           # k'yi bu sekide bir fonksiyon olarak tanimladim.
    return (pi*n/(2*L)) + m  #  n dilim sayisi m ise dilimin icerisindeki adim.

k0_sq = V0/h2m    # k0'in karesi
k0 = k0_sq**0.5     # k0

adim = 100000       # her bir dilimi yuzbine bolup inceliyorum
m0 = pi/(2*L*float(adim))    # adim arttirma miktari

par_say = int(k0*2*L/pi)+1  #parca sayisi. Bu k0'a gore hesaplaniyor
print par_say,' tane cozum var. Eenrjiler:'   # Cozum sayisi ekrana yaziliyor

for n in range(par_say):    # Ana dongumuz
    m = m0
    if n%2 == 0:                 # Cift cozumler icin
       while k(n,m)*tan(k(n,m)*L) < (k0_sq-(k(n,m)**2))**0.5:
             m += m0              # adimimizi arttiriyoruz
             if k(n,m) > k0:      #son parca icin emniyet subabi
                break                 # k nin k0'dan buyuk oldugu anda duruyoruz ve
       print h2m*(k(n,m)**2) - V0   # ekrana yaziyoruz.
    else:                           # Tek cozumler, ayni mantik
       while -1*k(n,m)*cot(k(n,m)*L) < (k0_sq - (k(n,m)**2))**0.5:
             m += m0
             if k(n,m) > k0:
                break
       print h2m*(k(n,m)**2) - V0  # Bazi kitaplar kuyunun dibini 0 alir o zaman V0'i
                                                            # silebilirsiniz.

######################################

Yukarıdaki grafikte verilen örnek için yazılmış bu kodu çalıştırdığımızda enerji değerleri eV cinsinden aşağıdaki gibi bulunur:
6 tane cozum var. Enerjiler:
-9.70204904621
-8.81234584649
-7.34506318636
-5.33167725429
-2.8477862078
-0.223618800482

19 Mayıs 2012 Cumartesi

"Dolu" Dolu Düşünceler

Dün kampüsten Tübitak'a gitmek için yola çıktım ve arabanmn tepesine bunlardan yağdı. 20-30 tane küçük çaplı ezik var tavanda ve ön kaportada.  Arabanın içinde çıkan sesleri duyduğumda çok daha kötüsünü bekliyordum. Buna da şükür... 

Peki bu "sevimli" şeyler hangi hızla çarpıyorlar arabaya? Üzerinde kafa yorunca biraz ürkütücü bir sonuç çıktığını gördüm: Dolu tanesi ne kadar büyük olursa o kadar hızlı çarpıyormuş !!!

Aşağı düşen cisimler elbette ki yerçekimi ivmesi ile orantılı olarak hızlanırlar ancak hava gibi bir akışkanın içinde düşme söz konusu ise o zaman sürtünmeyi hesaba katmak gerekir. (Bu arada bu bloga yazdığım yazılar arasında şimdiye kadar en popüleri yüzey sürtünmesi ile alakalı yazdığım yazı idi, bu ilgi için teşekkürler) Akışkanlardaki sürtünme kuvveti yüzey sürtünmesinden çok farklıdır. Kuvvetin büyüklüğünü veren en genel formül şudur:



Bu iki terimden birincisine vizkozite terimi denir ve hız ile orantılıdır, ikinci terim ise basınç terimi diye isimlendirilir ve hızın karesi ile orantılıdır. Ancak pratikte karşılaşılan durumlarda iki terimin birden kullanıldığı durumlar çok nadirdir. Eğer "ağdalı" bir akışkan söz konusu ise birinci terim baskındır, hava gibi seyrek akışkanlarda ise (eğer cisim milimetre-mikrometre mertebesinde küçük değilse) her zaman ikinci terim baskındır. Dolayısı ile dolu tanemize etki eden kuvveti yazarken ikinci terimi alacağız. 

Yerçekimi altında hızlanmaya başlayan cisim hızlandıkça üzerindeki sürtünme kuvveti de artacağından dolayı belli bir süre sonra "dinamik" bir denge durumu söz konusu olur ve hızlanma artık durur. Paraşütçülerin çok iyi bildikleri bu hıza limit hız ismi verilir. Biz dolu tanemizin limit hızda düştüğünü varsayalım ve bu hızı bulmaya çalışalım. Yukarıda verdiğimiz sürtünme kuvvetindeki ikinci terimin katsayısını biraz daha açık yazarak yerçekimi kuvveti ile birbirine eşitleyelim:



Burada sol taraftaki terim dolu tanemizin kütlesidir. Sağ taraftaki terim ise akışkan sürtünmesinde basınç terimi diye işaret ettiğimiz ikinci terimin daha detaylı yazılmış halidir. Rho ile ifade edilen şey havanın yoğunluğudur. A ise cismin hız vektörüne dik olan en büyük kesitinin alanıdır. (Paraşütçüler havadaki "duruşlarını" değiştirerek A'yı ayarlayıp hızlarını değiştirebilirler.) C ile ifade edilen şey ise sürtünme katsayısı (drag coefficient) diye isimlendirilen birimsiz bir sayıdır. Bu sayı cismin şekline bağlı olup genelde 0 ile 1 arasındadır. Bir yağmur damlası için 0.04 iken küre için 0.47 dir. Başka geometrik şekiller için iki cümle önceki linke bakılabilir.

Biz dolumuzun bir küre olduğunu varsayalım ve sol taraftaki kütle ifadesini ve sağ taraftaki kesit alan ifadesini buna göre açalım.



Denklem sadeleştirildiğinde limit hız için aşağıdaki ifade bulunur:



Bu ifadenin bize söylediği şey iki misli büyük bir dolu tanesinin küçüğüne göre 1.4 kat daha hızlı kafamıza çarpacağıdır. Evet ben de bu yazıyı yazarken rakamı hesaplamamıştım şu anda yutkunup hesaplıyorum ve çıkan sonuca göre yorum yapacağım. :-) 2 cm çapında küresel bir dolu tanesi için:



Rakam çok etkileyici görünmeyebilir (bence iyi ki de öyle değil), ancak  unutulmamalıdır ki bu hesapladığımız hız dolunun havaya göre olan hızıdır ve bilindiği gibi bu meretler genelde sakin havalarda yağmazlar. Rüzgarın hızı vektörel olarak yukarıda bulduğumuz hıza eklendiği zaman hatırı sayılır bir rakam çıkacağı aşikardır.

Benim için burada esas ürkütücü olan tanelerin büyüklüğü arttığında hızın da ölçeğin karekökü ile orantılı olarak artmasıdır. Görenlerin "yumruk büyüklüğünde" diye tarif ettiği bir dolu tanesi için ise bu hızın saatte 100 km'yi aşabileceği aşikardır.

Atmosfer olmasa halimiz dumandı diyesi geliyor insanın bir yandan da atmosfer olmasa zaten dolu da yağmazdı diyebiliriz. Zaten hayat da olmazdı kaskosuz arabayı nerede tamir ettireceğim derdi de... :-))

Atmosfer olmasa idi demişken bir modern zaman klasiği ile bitirelim, bir çırpıda gaza gelerek yazdığım bu tuhaf yazıyı... Başrolde  astronot David Scott, mekan Ay yüzeyi...