Kac Yazi Yazariz? / Uygunsuz Icerik’le Ekstrapolasyon Ogreniyorum

Simdi malumunuz yanda bir adet eskici menusu var eski yazilara ulasabilmemizi kolaylastiran. Iste ne zamandir aklimdaydi bu yil bittiginde kac yazi yazmis oluruz diye bir yazi yazayim diye. Kismet buguneymis. Oncelikle 2007 yilinda sadece 6 ay yazmis olmamiza ragmen onu da yillik fit’e dahil ettim. Bunun kasitli olarak yapildigini soyleyeyim. Her neyse. Iki sekilde yaptim calismayi. Yillik ve aylik bazda. Iste yillik bazdan cikan sonuc;

Sadece sagdaki kirmizi egriye dikkat etseniz yeterli. Bunu bir fonksiyona oturttugumuzda ornegin sunu elde ediyoruz.

P(t)=64.5t^2-172.5t+154 yani zamana bagli post sayimiz ki bunu P(t) ile ifade ettim t yani zaman bilindiginde gayet guzel bulunabilir. Ekstrapolasyonu burada yapacagiz iste. Simdi biz su anda dorduncu yili yaziyoruz. Yani t yerine 4 koyup P(t)nin degerini bulacagiz. O da 496 yapiyor. Iste sakatligi goruyorsunuz. Gecmis icin bize dogru sonuclar veren bir denklem bize gelecegi kestirmemizde yardimci olsa dahi guvenilir olmadigini kanitliyor. Elbetteki daha guzel fitler ile ne durumda oldugumuza bakabilirdik. Bu sadece kaba taslak yapilmis bir is.

Gelelim aylik bazdaki curve fitting’e.

Bunu da bir denkleme oturttum ki o da P(t)=0.128*(t^1.377)+3.731 t yerine koymamiz gereken degerler 39, 40, 41, 42 ve 43 daha sonra bu t degerlerinden buldugumuz P(t) leri toplayip uzerine 128 ekleyecegiz ki bu yil sonunda girmis olacagimiz tahmini post sayimizi bulalim. O da bize 253 sayisini veriyor. Bu kismen daha makul bir yaklasim. Yani buradan cikaracagimiz ders ne olacak. Cozunurlugu arttirirsak daha kesin sonuclar alabiliriz. Neyse bakalim yil sonunda 253’e ne uzaklikta olacagiz. Bir de son olarak cubic spline ile fit edilmis aylik bazdaki egriyi vermek isterim.

Bunu paylasmamin nedeni rehavet denen sosyal durumu, sayisal olarak gostermek icin cok guzel bir ornek teskil etmesi. Aslinda shape preserving fit de olurdu ama bunun ekran goruntusunu almisim. Bu isler biraz da kismet tabii. Hah ne diyorduk, rehavet. Post sayisinin arttigi aylardan sonraki ilk ayda nasil dustugune bakar misiniz? Hemen hemen ayni egimle yukselip alcaliyorlar. Yani bir ay ne kadar cok post girilmisse ertesi ay o kadar cok yatiliyor. Yatilan ayin ertesinde de lan gecen ay cok yattim denilip, calisiliyor. Olum valla bilincalti cok pis bir sey. Demedi demeyin bak size verilerle ortaya koyuyoruz iste olayi. Tabii ki bin milyon tane cevresel etken vardir bunlara etki eden ama bu ufak baglantilari gormek bile mutlu ediyor insani. Neyse cok konustum zaten susucam simdim. Rehavete kapilmayin lan.

MATLAB Kontor Egrileri

Lisans donemimizde kimi zaman lazim olmasina ragmen, excel kullanarak cizemedigimiz kontor egrilerinin nasil cizildiginden kisaca bahsedecegim bugun. MATLAB bir derya sizin de bildiginiz uzere. Nimetlerinden biri de bu guzelim grafikleri rahatlikla cizebilmesi. Adim adim yazayim;


Bir kontor egrisi cizebilmeniz icin en az 3 adet degiskene ihtiyaciniz var. Yani eksenler bazinda konusursak x, y ve z degerlerini  bilmelisiniz ki kontor egrinizi cizdirebilesiniz. Isin bana sorarsaniz en zor kismi da burasi. Noktalarinizi tanimlamak. Genelde (yanlis isler pesinde oldugumun farkindayim) bu tarz grafikler gerektiren datalar polar koordinatlar ile ifade ediliyor. Kartezyen olarak ifade edilmisse zaten isiniz rahat ama polar olarak ifade edilmisse onlari kartezyene cevirmenizi oneririm ben. Bunun nasil yapilacagini kisaca tarif edeyim. Aci ve uzunluk olarak ifade edilmis her deger bir polar koordinattir ve icerisinde x ve y eksenlerinin bilgisini barindirir. +x ekseninden baslayarak vektorunuzun oldugu dogru parcasina kadar bolgeden olculur aci. 

Simdi sekilde de goruldugu uzere aci ve uzunluk degerini bildigimiz zaman, uzunlugu acinin sinus ve kosinus degerleriyle carparak, sirasiyla, noktayi temsil eden y ve x degerlerini bulabiliriz. Bunu MATLAB ile pol2cart fonksiyonunu kullanarak yapabiliriz.

Yukarida bahsettigim islemi yaptiktan sonra her sey cocuk oyuncagi. Deneyden elde ettigimiz ya da bir formul ile hesapladigimiz degerlerimizi alt ve ust x-y degerlerimiz icin interpole edip, olcum ya da hesaplama yapmadigimiz noktalardaki z degerlerini kestirecegiz. MATLAB icin bunu yapan fonksiyon griddata. Verilen x, y, z, alt ve ust x-y limitleri ve interpolasyon metodunu girdiginizde size interpole edilmis z degerlerini veriyor. 

Eger yukaridaki islemi de hallettiysek. Simdi sira interpole edilmis degerleri grafige dokmekte. Bu islemi yapan fonksiyon da contour

Eger butun bu islemleri tamamladiysaniz karsinizda mukemmel bir grafik olmali. Yok olmadi diyorsaniz bir soz dizimlerinizi kontrol edin. Iste o syntax’lar.

[X,Y] = pol2cart(THETA,RHO)
[XI,YI] = meshgrid(-800:1:800)
zi=griddata(x,y,z,XI,YI,v4)
contour(XI,YI,zi,8)

theta = aci bilgilerini iceren matris
rho = uzunluk bilgilerini iceren
x = x matrisi
y = y matrisi
z = z matrisi
XI = meshgrid ile elde ettigimiz ve interpolasyonun alt ve ust limitlerini belirten x matrisi
YI = meshgrid ile elde ettigimiz ve interpolasyonun alt ve ust limitlerini belirten y matrisi
zi = x, y, z, XI, YI matrisleri ve v4 interpolasyon yontemi ile elde ettigimiz interpole edilmis z matrisi
contour fonksiyonunda sondaki 8, 8 adet egri istedigim icin. meshgrid fonksiyonundaki 800 ler alt ve ust sinirlar. Biri -800 sizin de gordugunuz uzere. Aradaki 1 ise, noktalarin 1 er 1 er atlayarak olusturulmasi. Cozunurluk bir nevi. Yani o meshgrid fonksiyonu size 1651×1651’lik bir matris vermeli bu durumda.

Hoscakalin. Adam gibi yazin raporlarinizi.