MATLAB ile veri setine karşılık gelen fonksiyon bulma (curve fitting)

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
25,030
Şöyle bir veri seti verildi ve bir tablo indeksini kullanarak ilgili verinin okunması ve bu okunan verinin de kullanılması istendi. Ama tabloda sadece 200 tane veri var, ara değerler için interpolasyon yapmam gerekecek. Eğri logaritmik bir doğaya sahip ve özellikle küçük endekslerde verilerin arasındaki mesafe fazla, yüksek bir hata oranına sebebiyet veriyor.

215,
189,
174,
163,
155,
148,
142,
137,
132,
128,
125,
122,
119,
116,
113,
111,
109,
106,
104,
102,
101,
99,
97,
96,
94,
93,
91,
90,
88,
87,
86,
85,
84,
82,
81,
80,
79,
78,
77,
76,
75,
75,
74,
73,
72,
71,
70,
70,
69,
68,
67,
67,
66,
65,
64,
64,
63,
62,
62,
61,
61,
60,
59,
59,
58,
58,
57,
56,
56,
55,
55,
54,
54,
53,
53,
52,
52,
51,
51,
50,
50,
49,
49,
49,
48,
48,
47,
47,
46,
46,
46,
45,
45,
44,
44,
43,
43,
43,
42,
42,
42,
41,
41,
40,
40,
40,
39,
39,
39,
38,
38,
38,
37,
37,
37,
36,
36,
36,
35,
35,
35,
34,
34,
34,
34,
33,
33,
33,
32,
32,
32,
32,
31,
31,
31,
30,
30,
30,
30,
29,
29,
29,
29,
28,
28,
28,
27,
27,
27,
27,
26,
26,
26,
26,
25,
25,
25,
25,
25,
24,
24,
24,
24,
23,
23,
23,
23,
22,
22,
22,
22,
22,
21,
21,
21,
21,
21,
20,
20,
20,
20,
19,
19,
19,
19,
19,
18,
18,
18,
18,
18,
17,
17,
17,
17,
17,
16,
16,
16,
16,
16,
 
Önce verileri MATLAB'e aktardım ve grafiğini çizdirdim. Eğri eksponansiyel karaktere sahip.

1718268454938.png
 
Sonrasında MATLAB'in curve fitting özelliğini açtım ve veri setini yükledim. Varsayılan olarak önce birinci dereceden bir polinom uydurmaya çalıştı. Bunun eksponansiyel veya logaritmik bir eğri olduğunu az çok tahmin edebiliyoruz, ama değişik polinom derecelerinde deneyelim.

1718268624889.png


Dördüncü derece polinom

1718268749021.png
 
İki terimli eksponansiyel fonksiyon

1718268814976.png
 
Demekki bu veri seti, aşağıdaki fonksiyona karşılık geliyor

[math]f(x) = -86.5711 \times log(x) + 215.0828[/math]
Veri seti yerine doğrudan fonksiyonu kullandım ve çok düşük hata oranı ile sonuca gitmiş oldum.
 
Güzelmiş. Matlab yerine başka nerede yapılabilir diye bakarken Libreoffice Calc (Excel'de de varmış) de kullanılabilirmiş.

İlk mesajdaki veri setini A sütununa kopyaladım. Menüden Insert-Chart'a tıklayınca açılan ekrandan Chart type: Line-Line only seçtim.

Grafik üzerinde verilerin olduğu yere (data series column A yazıyor üzerinde bekleyince) sağ tıklayıp "Insert Trendline"ı seçtim. Yine bir ekran açılacak, oradan "Logarithmic" seçip "Show Equation"ı işaretledim.

Yalnız bir saçmalık var, çıkan formülü kopyalıp foruma koyayım dedim, kopyalayamadım (text kısmından bahsediyorum). Bunun için yine formülü kopyaladıktan sonra Libreoffice Draw'u açıp herhangi bir yere yapıştırıyoruz. Sağ tıklayıp "Break" dedikten sonra text kısmını alabildim: https://superuser.com/questions/175...he-plain-text-of-equation-in-libreoffice-calc

f(x) = − 37,5973590951671 ln(x) + 215,082752556851

1718274025943.png
 
Demekki bu veri seti, aşağıdaki fonksiyona karşılık geliyor

[math]f(x) = -86.5711 \times log(x) + 215.0828[/math]
Veri seti yerine doğrudan fonksiyonu kullandım ve çok düşük hata oranı ile sonuca gitmiş oldum.
Her türlü veri setine uygulanabiliyorsa artık bilim adamı oluruz. :)
Bilim adamı demek deney sonuçlarına uygun fonksiyon yazabilecek matematik bilgisine sahip kişi demek.
 
Deney sonuclarina uygun fonksiyon yazmak degil amac. Onu exel vs de yapiyor.

Dediginin tersi olmali.

Bilimadami matematiksel modeli olusturur sonra deneyi yapar deney sonuclarina bakarak modelin dogrulugunu ispatlar.
 
  • Beğen
Reactions: clc
Deney sonuclarina uygun fonksiyon yazmak degil amac. Onu exel vs de yapiyor.

Dediginin tersi olmali.

Bilimadami matematiksel modeli olusturur sonra deneyi yapar deney sonuclarina bakarak modelin dogrulugunu ispatlar.
Ben katılmıyorum.

Öyle olsaydı fiziksel sabitler deney yapmadan bulunurdu. :)
 
aslında çoğu fiziksel sabitler eldeki veriler ile mantık yürüterek ve hesaplayarak bulundu ve çok daha sonra deneylerle ispatlandı. örneğin ışık hızı.
 
Fiziksel sabitler adi ustunde o fiziksel dunyaya ait sabitler. Mesela mu, epsilon, Isik hizi bunlari nasil formulize edeceksin ki?

Gerci bu 3 luden ikisini bilsen ucuncuyu mevcut bilgilerle elde edersin ama bunlar evrenin sabitleri. Ama ilk basta 3 unu de mecburen deney yapip ogreneceksin.
 

Çevrimiçi üyeler

Forum istatistikleri

Konular
7,537
Mesajlar
126,289
Üyeler
3,050
Son üye
Wtrk

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
Back
Top