Üç Eğilimeğrisi
Pazartesi, 09 Eylül 2019

Adının da işâret ettiği (Gnu's Not Unix!) üzere açık-kaynak hareketinin eski (1986) ve köklü yazılımlarından olan gnuplot, temel olarak komut satırından idâre edilen fonksiyon/veri çizim programıdır. Sâhip olduğu yetenekler sebebiyle dünya çapında bilim/mühendislik camiası tarafından yaygın olarak kullanılmaktadır, fakat Türkiye açısından aynısını ifâde etmek biraz zordur, zirâ pencereci ve de tencereciyiz biz...

Bu yazılımı, ilgilenebilecek olan gençlere ve geleceğin mühendis adaylarına biraz tanıtabilmek için birşeyler söylemek icâb ediyordu. Uygulamalı bir örnek verebilmek için de ilgi çekici olabilecek bir konu gerekliydi. Bu doğrultuda sitenin gidişâtı ile de bağlantılı "takviyesiz silindirik kabukların burkulması" hakkında yayınlamış bir veri dizisi gâyet uygun gözüküverdi.

Önce unutmadan söz konusu veriye erişim sağlayalım:

♦ uçbirim:
wget http://alarga.uskudar.biz/dosyalar/noktalar.dat.tar.gz

İçeriğine bakıldığında görülebileceği gibi elimizde çeşitli yarıçap/kalınlık oranları için elde edilmiş denel burkulma yükü değerlerinin analitik çözüme oranlarını gösteren (x;y) düzeninde verilmiş ve boşluk/sekme ile ayrılmış 314 satır veri mevcut.

İşletim sisteminizde çalışan bir gnuplot sürümünün kurulu olduğunu ve çakma değil gerçek bir işletim sistemi kullandığınızı varsayarak devam edelim. Bu arada aşağıdaki örnek uygulamanın gnuplot 5.0 üzerinde çalıştırıldığını belirtelim. Şimdi doğrudan uçbirim üzerinden, söz konusu ham veriyi 2B olarak görüntüleyebiliriz:

♦ uçbirim:
gnuplot

♦ uçbirim:
gnuplot> set decimalsign locale; plot 'noktalar.dat'

Görüldüğü gibi komut iki temel bölümden oluşuyor; ilk bölüm veri dosyasına uygun olacak şekilde ondalık ayırıcının "," olarak tanımlanması ki Türkçe'ye ayarlı bir bilgisayar için bu komut sayesinde işlem otomatik olarak gerçekleşir. İkinci bölümde ise işâret edilen veri dosyası içindeki noktalar otomatik olarak bir X11 penceresi üzerine çizilir. Eğer bir sorun çıkmadıysa veri dağılımının çizimini görebilmiş olmanız gerekir.

♦ gnuplot:
  1. # gnuplot ile eğilimeğrisi - http://alarga.uskudar.biz
  2. # Bütün giriş-çıkışlar için Türkçe ondalık ayırıcının "," olarak tanıtılması
  3. set decimalsign locale; set decimalsign "."
  4.  
  5. set title "Takviyesiz Silindirik Kabuklar için Burkulma Yükleri"
  6. set grid # artalan ızgarası
  7. set xlabel "r / t" # X-ekseni başlığı
  8. set ylabel "P_{deney} / P_{hesap}" # Y-ekseni başlığı
  9. set xrange [0:4250] # X-ekseni aralığının ayarlanması
  10. set yrange [0:1] # Y-ekseni aralığının ayarlanması
  11. set xtics 0,500,4000 # X-ekseni aralıkları için özel ayar
  12.  
  13. set termoption enhanced
  14. f1(x) = a*log10(x) + b # Logaritmik eğilimeğrisi
  15. fit f1(x) 'noktalar.dat' via a,b
  16.  
  17. f2(x) = c + d*x + e*x**2 + f*x**3 # 3.derece Polinom eğilimeğrisi
  18. fit [25:4250] f2(x) "noktalar.dat" via c,d,e,f
  19.  
  20. f3(x) = g*x**h; # Üstel eğilimeğrisi
  21. fit f3(x) "noktalar.dat" via g,h
  22.  
  23. plot 'noktalar.dat' with points pointtype 6 pointsize 1 title 'veri noktaları', \
  24. f2(x) with lines linewidth 1.5 linecolor 7 title sprintf('f(x) = %.2f %.3g·x+%.3g·x^2 %.3g·x^3', c,d,e,f), \
  25. f1(x) with lines linewidth 2.0 linecolor 2 title sprintf('f(x) = %.3f·log10(x) + %.3f', a,b), \
  26. f3(x) with lines linewidth 1.5 linecolor 4 title sprintf('f(x) = %.4f·x^{%.5f}', g,h)
  27.  
  28. pause mouse close # gnuplot-X11 çizim penceresinin açık kalması için

gnuplot: burkulmaOranları


Gnuplot doğrudan ve tam işlevli olarak sadece komut satırı üzerinden idâre edilebilir. Bununla birlikte bâzı durumlarda önceden ayarlanmış bir betik dosyası üzerinden kullanılması daha verimli olabilmektedir.

Hemen yukarıda verilen gnuplot betiğinin içeriği, "burkulmaOranları" veya keyfinize göre herhangi bir isimde adlandırılmış boş bir metin dosyasının (dosya uzantısına gerek yok) içine yapıştırıldığında işlem tamam sayılır. Geriye çalıştırmak kalıyor:

♦ uçbirim:
gnuplot burkulmaOranları

Olağan şartlarda, saniyeler içinde aşağıdaki [Resim.1] görüldüğü gibi uçbirim penceresinde işlemin doğru olarak sonuçlandığını ve açılan yeni bir pencerede de betik ile talep edilen çizimin nihaî hâlini [Resim.2] görebilmeniz gerekir.

Buradaki çözüm esnasında alınan uçbirim ekran görüntüsü

Resim.1) Yukarıdaki betik için, uçbirim penceresinin son satırları. Eğilim çizgileri için gerçekleşen hesapların ayrıntıları aynı dizin içinde otomatik olarak oluşacak olan "fit.log" dosyası içinde görülebilir.


Sonuç olarak elde edilen gnuplot çizimi ve noktaların eğilim eğrisi

Resim.2) "burkulmaOranları" betiği ile elde edilen sonuç. Veri noktalarının dağılımı, üç farklı yöntem (3. derece Polinom, Logaritmik ve Üstel) ile elde edilen eğilimeğrileri ve bu eğrilerin eşitlikleri ile birlikte. Betik üzerinde değişiklik yaparak etkilerini görmek size kalmış...
Bu X11 penceresi üzerinde fare ile yakınlaştırma, kaydırma ve istenen bir noktadan veri alma, çizimin *.png, *.pdf veya *.svg olarak ihracı vesaire gerçekleştirilebilir.


Bu örnek çalışmada kullanılan temel veri, kaynak [3] üzerindeki bir grafikten geri kazanılmıştı. Söz konusu resim dosyasından sayısal verilerin alınması için ise g3data adlı bir başka yazılım kullanılmıştır ki bu yazılımı merak edenler [4]'e göz atabilir.

Şimdi elimizdeki bu veriye biraz da asıl yönüyle bakarsak, geometrik kusurların burkulma hususunda ne kadar önemli bir ayrıntı olduğunu da kavramış oluruz. Bu grafik eksenel yük altında, muhtelif yarıçap/kalınlık oranındaki, hafifçe şekil kusurlarına sahip silindirik yapıların deneylerle elde edilen sonuçları ile nazari çözümlerle elde edilen burkulma yükü değerleri arasında ne kadar büyük farklar olabildiğini de açıkça göstermektedir. Yükleme ve sınır şartlarının türleri de kusur hassasiyetin seviyesi üzerinde büyük bir etkiye sahiptir.

Herhangi bir imalât sonucunda geometrik kusurlar oluşması kaçınılmazdır. Bununla birlikte bu kusurların sınırlarını bilebilmek ve uygulayabilmek de hayâti önem taşımaktadır. Biraz daha somut bir örnek vermek ve kabaca ifâde etmek gerekirse, denizaltı mukavim tekneleri üzerinde enine doğrultuda, çapın %0,3'ü kadar bir kusur azamî dalış derinliğinin üçte birinin kaybedilmesi anlamına gelebilir ki mesela 6,2m çapındaki bir Tip209/214 gövdesi için bu ~19mm'den ibârettir.

♦ Kaynaklar

1. gnuplot genelağ sitesi - http://www.gnuplot.info
2. gnuplot 4.6 - An Interactive Plotting Program, 2014, Thomas Williams - Colin Kelley
3. http://fgg-web.fgg.uni-lj.si/~/pmoze/esdep/master/wg08/l0600.htm
4. Grafiklerden veri ayıklamak hakkında - http://uskudar.biz/seyir-defteri/yazılım/grafiklerden-kolayca-sayı-ayıklamak-g3data.html
 
Telif Hakkı © 1997-2019 [uskudar.biz]
- sürüm 6.0.0 - Bütün Hakları Saklıdır.
Kullanım şartları için tıklayın!