Gnuplot ile verilerden grafik oluşturmak

Benim gibi milimetrik kağıtlardan nefret ediyorsanız, eldeki verilerinizi o küçük noktalara yerleştirmek, onlardan bir eğri çıkartmak ve o eğrinin açısını hesaplamaktan sıkıldıysanız bu yazı tam size göre. Birazdan anlatacaklarım çok işinize yarayabilir.

Gnuplot açık kaynak kodlu grafik oluşturma uygulamasıdır. Grafik’ten kastım her türlü veri’yi görsel olarak sunmaktan bahsediyorum. Bu iki boyutlu kartesian koordinatları olabilir, üç boyutlu kök eğrileri olabilir ya da borsa’daki herhangi bir indeksin işlemleri de olabilir. Gnuplot’un kendine has bir kabuğu var, konsoldan gnuplot yazdığınızda doğrudan giriş yaparsanız. Kullanması da inanın çok kolay. Çok basit tasarlamışlar, ama çok zor işlerin üstünden de gelebiliyor(hastasıyım böyle yazılımların). Bir örnekle başlayalım. Örneğin:

gnuplot> plot sin(x)

yazdığınızda size bir tane sinus dalgası çıkartacak. Bu kadar basit. Şimdi gelelim bizim yapmak istediğimiz şeye.

Elimde bir çok veri var, şimdiki kullanacağım veri geçen hafta kontrol laboratuvarında ısı sensöründe aldığım verileriyle ilgili olacak. Veriler şu şekilde:

# X Y
0 297
30 299
60 303
90 310
120 310
150 312
180 316
210 318

Bu verileri “test.dat” olarak kayıt ediyoruz. Şimdi ilk kolon boş anlamına geliyor, ikinci kolon x ile başlıyor sonraki kolonları da tab ile ayrıştırıyoruz. Burada iki tane eksen için verilerimiz var şimdi bizim için. X ekseni bizim örneğimizde saniye’yi gösteriyor. Y ekseni de kelvin’deki sıcaklık değerini gösteriyor. Görüldüğü gibi zamanla sıcaklık artıyor. Gnuplot ile sonra şunları yazıyoruz

gnuplot> set xlabel “t (sec)”
gnuplot> set ylabel “temperature (kelvin”

Bu iki satır eksenleri adlandırmamızı sağlıyor. Ardından şu komutu yazdıyoruz:

gnuplot> plot “test.dat” using 1:2

Bu komut test.dat dosyasındaki birinci ve ikinci kolonların grafiğini bize çıkartıyor, kendisi şöyle bir şey:

gnuplot

Gördüğünüz gibi güzelce basit bir şekilde verileri yerlerine çıkartı. Şimdi genellikle bu noktaların ortasından geçen bir eğri’yi bulup, o eğrinin eğimini bulmamız bizim işimize yarayabiliyor. Birim zamandaki değişimi görmemizi sağlıyor, daha da önemlisi bu denklem bizim bulduğumuz verilerin denklemini oluşturacağından kolayca istediğimiz andaki veriyi elde edebileceğiz. Noktalardan geçen doğru’nun neye benzediğiniz Gnuplot’a söylemimiz lazım. Bu bir logaritmik fonksiyon olabileceği gibi trigonometrik fonksiyon da olabilir. Bunu biraz araştırdıktan sonra bir blog sayfasında buldum. Bizim örneğimizde basit bir eğri olduğundan fonksiyonumuz şu şekilde olacak:

gnuplot> f(x) = a*x + b

Kısaca y = ax +b olacak. Peki bizim a ve b değerlerimiz nelerdir ? Burada gnuplot devreye giriyor. Kendisi bizim test.dat’daki dosya’dan verileri alıyor ve hesaplama, yanılma yöntemiyle doğru sonucu buluyor(hata payı da var elbette). Onu da şu şekilde yapıyoruz:

gnuplot> fit f(x) “test.dat” via a,b

Bunu yazdığımızda uzun bir çıktı geliyor, altıncı denemeden sonra bize nihai sonuçları veriyor, ben sadece bizim işe yarar kısmı gösteriyorum size:

Final set of parameters Asymptotic Standard Error
======================= ==========================

a = 0.102778 +/- 0.008289 (8.065%)
b = 297.333 +/- 1.04 (0.3499%)

Gördüldüğü gibi a ve b değerli bulundu. Şimdi sadece şu satırı yazıyorum ve sonuçu elde ediyorum:

gnuplot> replot f(x)

Sonuç ise şu şekilde:

gnuplot1

a ve b değerlerinden oluşan denklemimiz ise y = 0.102x + 297.333 şeklide olacak. Denklemi de elde ettiğimize göre bu denklemden kolayca eğimi bulabiliyoruz. Hepsi bu kadar. Böyle uzun uzun yazıldığına bakmayın, topu topu 6-7 satırdan oluşuyor. Cetvele ve milimetrik kağıt ile uğraşmaktan hem daha zevkli hem daha güvenirli. Umarım yukarıda anlattıklarım işinize yaramıştır. Aşağıdaki bağlantılardan çok daha fazlasını bulabilirsiniz.

http://t16web.lanl.gov/Kawano/gnuplot/index-e.html
http://www.gnuplot.info/docs/gnuplot.html

Bardağın yarısı boş mu yoksu dolu mu?

Bur meşhur sorunun bir çok cevabı var. Msn iletisinde şunları yazmıştı geçen bir arkadaşım:

To the optimist, the glass is half full.
To the pessimist, the glass is half empty.
To the engineer, the glass is twice as big as it needs to be.

Benim çok hoşuma gitmişti. Aklıma takılmış olacak ki web’de oradan oraya zıplarken bir yerde şu harika cümleyi gördüm:

The physicists say the glass is neither. It is completely full, half with water, the other half with air.

Ardından bugün okulda arkadaşımı gördüm ve bunu söylemiştim. Sonra başardık konuşmaya, başkaları ne derdi acaba diye düşünüyorken kendi aramızda, ben de o arada atladım ve “Filizof ne derdi ? ” diye sordum Biraz sessizlik oldu, düşünürken şunu deyiverdim:

Hangi bardak ?

Bu da böyle bir anımdı bugün. Bu bardağın yarısı boş mu dolu mu sorusu bu arada bilimsel olarak kullanılan bir metotmuş. Adı da Litmust Testi. Psikoloji’de bir insanın en basitinden iyimser mi kötümser mi düşündüğünü belirtmek için yarıyormuş. Bu yöntem ile çok farklı düşünen insanları da görmek mümkün oluyor , örneğin yukarıdaki mühendis örneği gibi.

Bu testi farklı amaçlarla da kullanabiliyoruz, örneğin bir bardaki barmen-müşteri ilişikisi. Barmen bardağı her zaman tam dolu, yarı dolu, çeyrek dolu,… şeklinde görüyor etrafı, fakat bardaki müşteriler için tam tersi, onlar tam boş, yarım boş, çeyrek boş,… şeklinde görüyorlar etraftaki bardakları.

Devre elemanları ile basit bir güçlendirici yapmak

Geçenlerde hayatımda ilk defa küçük bir devre projesi üzerinde çalıştım. Proje bizim Ele 214 Laboratuvar dersinin bir eklentisiydi. Zorunlu değildi fakat yapmak isteyen yapabilirdi. Geriye dönüp baktığımızda iyi ki yapmışım diyorum. Proje nasıl bir şeydi onu anlatayım.

Transistör, Direnç ve Kondansatör ile basit bir stereo(çift giriş-çıkış) güçlendirici yapacaktık. Bu güçlendiricin toplam kazancı -10 olacaktı. Yani güçlendirici bizim girişe vereceğimiz voltaj değerini 10 katına artıracaktı. Örnek vermek gerekirse 5 voltluk bir girişi çıkışta bize -50 volt olarak verecekti. Önündeki eksi ise dalga boyunun yer değiştiğini gösteriyor. Bu güçlendirici çok basit dediğim gibi ve amacı örneğin kulaklıkları çalıştırmak için kullanabiliniyor. Normal bir kulaklık 5 volt ile çalışıyorsa 0.5Vlik girişin önüne bunu koyabiliriz.

Okumaya devam edin »

Ekle-sil faciası (2)

Ekle-sil haftasında yaşadıklarımı okuyanlar hatırlar, bir sorun vardı okul ile ilgili. Bugün itibariyle tüm derslerim eskisi gibi yerine, kayıtlı olarak gözüküyorum. Bunu da ucuz atlattık. Tabi danışman hocanın yanına 2-3 kere gittip konuşmak, öğrenci işlerine uğrayarak bu sorunu izah etmek işe yaradı. Aman kimsenin başına gelmesin :)

Ekle-sil faciası

Bundan 1-2 hafta önce Hacettepe Üniversitesinin ekle-sil haftası vardı. Değiştirmek istediğimiz şubeleri değiştirebiliyor, yeni şubeleri seçebiliyorduk, yani derslerimizle ilgili her türlü değişikliği yapmamıza hak tanıyor. 2 gün sürüyor. Ben de o sırada Almanca dersini seçmiştim. Sonra sildirtiler ama başka bir mevzu o. Her neyse, bir gözden geçirdim. Sonra da danışmanımın yanına gittim ve ekle-sili onaylaması için konuştum. Yanındayken tamam dedi, ben de odasından çıktım.

O gün bilgi-gözlem’den baktığımda, ekle-sil haftasının onaylı olduğunu görüyordum. Aradan 3-4 gün geçti ve bir daha bakayım dedim. Bu sefer de ne olmasın. Ekle-sil haftası onaysız gözüküyor. Birde önemli olan, ekle-sil haftası bitti. Yani bundan sonra nasıl onaylanacak bilmiyorum. Neyse gittim yanında, durumu izah ettim. Danışman hocam, tamam adını soyadını yazdım hallolacak dedi. Bende herhalde sorun çıkmaz bir daha diyerek oradan ayrıldım.

Aradan bir hafta sonu geçtikten sonra tekrar danışman hocanın yanına gittim(bu arada ekle-sil hâlâ onaysız gözüküyor). Hocaya durumu sorduğumda daha ilginç bir sorunla karşılaştık. Kayıtlı olduğum tüm şubeler, dersler silinmiş. Hiç bir derse kayıtlı değilmişim.

Böyle bir durumda ne yapılabilir hiç bilmiyorum. Yani onaylı bir durumdan, hiç bir derse kayıtlı değilimişim durumuna düştük. Birde hiç bir suçum da yok. Tamamen kendilerinden oluşan bir hata. Ayrıca şimdi hiç bir derse kayıtlı gözükmediğim için, bu dönem de haliyle iptal olmuş oluyor. Bayramdan sonra sınavlar olacak, bu sınavları hoca girmesi lazım benim adıma, bakacak adım yok.

Tamamen bir facia, zaman ne gösterecek bakalım. Gelişmelerden yine burada haberdar ederim.