Öğrencilere programlama öğretilmesinin temelinde yatan anafikirlerden biride algoritma kavramının yada kompütasyonel düşünme biçiminin genç yaşta kazandırılmasıdır(Thornber, 2016). Algoritmik düşünme biçiminin yada kompütasyonel düşünme biçiminin bir nevi vücut bulmuş hali ise modellemedir.

Model kelimesinin tanımı: Resim, heykel vb. yapılırken baka baka benzetilmeye çalışılan nesne veya kimse, örnek; Bir özelliği olan nesne veya kişi; Biçim; Giysi örneklerini içinde toplayan dergi; Benzer; Örnek olmaya değer kimse veya şey, örnek, paradigma; Tasarlanan ürünün tanıtım veya deneme amacıyla üretilen ilk örneği, prototip olarak verilmektedir (TDK, 2016). Bu tanımlara dayanarak modelleme kelimesinin anlamsal olarak bir aktiviteyi işaret ettiği ve bu aktiviteninde kognitif (cognitive: bilişsel, kavramsal, algısal) bir aktivite olduğu çıkarımına varabiliriz. Cihazların ve nesnelerin davranış biçimlerini veya davranacaklarının tahminide modellemenin içine girer.

screen-shot-2016-11-03-at-15-08-14
Bu na göre artık matematik modelleme için bir tanım yapabiliriz. Matematiksel Modelleme; cihaz yada objelerin davranışlarının matematiksel terimler kullanarak açıklanmasıdır(Dabbaghian, 2010). Peki neden matematiksel modelleme yaparız veya modellemeye ihtiyaç duyarız?

Dym ve Ivy (1980) yaptıkları elementer tabloda örnek uzayını iki bölüme ayırmışlardır. İlk kısmı Gerçek Dünya, ikinci kısım ise Kavramsal Dünya’dır. İlk kısımda oluşan yada oluşması muhtemel tüm olaylar gerçektir. İkinci kısımda ise olayların tamamı kavramsal yani sanal bazda ele alınmıştır. Kavramsal Dünya nın ilk basamağı gözlemdir. Bu aşamada gözlem ile kastedilen davranış veri toplama aşamasıdır, ikinci kısım ise Model(Analiz) aşamasıdır. Bu aşamada model oluşturmak için elde edilen veriler genelleştirilmeye yada matematiksel olarak formülize edilmeye başlar. Analizde değişkenler üzerinde oynananbilir ve Tahmin aşamasında olması muhtemel olaylar değişkenlere atanarak değerlendirmede bulunulur. Son aşama ise bu sonuçların gerçek hayatta kullanılmasıdır. Değrem bölgesinde bulunan evlerin tahliye planından, muhtemel bir orman yangınında alevlerin yayılım biçimine kadar bir çok olay muhtemel sınırlar içinde değerlendirilir ve sonuçları acil eylem planlarında kullanılır.

Bu yazımızda modelleme örneği olarak hem öğrencilerin kolaylıkla anlayabileceği hemde öğretmenlerin rahatlıkla bir etkinlik olarak kullanabilecekleri bir uygulamayı beraber oluşturacağız. Bu yapacağımız uygulama matematikçiler tarafından Monte Karlo Metodu olarakta isimlendirilmiştir. (Muhtemelen kağıt oyunlarına meraklı olanlarının geliştirdiği bir uygulamadır.) Bu metodu kullanarak Pi sayısının yaklaşık değerini hesaplamaya çalışacağız.

screen-shot-2016-11-03-at-15-08-33

Öğrencilerin hazırbulunuşluklarının Pisagor Teoremini bilecek seviyede olması ve herhangi bir yazılım dilini başlangıç seviyesinde bilmeleri yeterlidir. Bu çalışmada yazılım dili olarak Python 3 kullanılmıştır.

Monte Carlo yöntemine göre yarıçapı 1 birim olan bir çember üzerinden ve dışından alınacak rastgele (x,y) koordinatlarına sahip n nokta için Pi değerinin yaklaşık değeri hesaplanabilir.

screen-shot-2016-11-03-at-15-08-50Buna göre:

  • Önce yarıçapı 1 birim olan bir çemberi bir kenarı 2 birim olan bir karenin içine yerleştirelim.
  • Daha sonra bu kare üzerinden rastgele n nokta beliryelim. Eğer bir kartona çizme ihtimaliniz varsa n nokta belirleme işini karton üzerine n tane pirinç tanesi atarakta yapabilirsiniz.
  • Kaç tane noktanın (yada pirinç tanesinin) çemberin içinde olduğunu sayarak belirleyelim.

screen-shot-2016-11-03-at-15-09-00

Bu belirlemeden sonra artık genelleştirilmiş Monte Carlo formülünü kullanalım. Buna göre pi değerinin yaklaşık değeri noktalar cinsinden:

screen-shot-2016-11-03-at-15-09-10

olacaktır. Nokta sayısı ne kadar fazla ise Pi nin yaklaşık değerini bulmak o kadar zor olacaktır. Bu sebepten şimdi bu uygulamamızı yazılım ortamına taşıyarak nokta sayısını artırabileceğimiz modeller oluşturmaya çalışalım.

Burada ilk yapmamız gerek iş değişkenlerimizi belirlemektir. Varsayalım değişkenlerimiz x ve ly olsun. Bu değişkenleri her bir noktanın koordinatı olan (x,y) ikilisi için kullanacağız. İkinci durum ise yazılımın noktanın içerdemi yoksa dışardamı olduğunu fark etmesini sağlayacak olan şartı belirlemeliyiz. Bir nokta çemberin içinde ise bu noktanın merkeze olan uzaklığı yarıçaptan küçük olacaktır. Yani:

screen-shot-2016-11-03-at-15-09-20olacaktır. Buna göre kodlarımız aşağıdaki gibi olacaktır.

screen-shot-2016-11-03-at-15-09-26

Bu yazılımı çalıştırdığımızda ekran görüntümüz aşağıdaki gibi olacaktır. Bu örnekte 500 nokta seçmiştik.

screen-shot-2016-11-03-at-15-09-37

Ekran görüntüsü ile Python yazılım dilinin büyükbir albenisinin olmadığı açıktır. Ancak özellikle matematiksel programlamada oldukça etkili çalışır.

Nokta sayısı yani totalPoints değerini büyüterek daha yaklaşık değerler elde etmek mümkündür ancak değer büyüdükçe programın çalışma hızında farkedilir bir düşme yaşanacaktır.

Bu farkedilir düşüşü daha ölçülebilir hale getirebilmek için programa bir de zaman hesaplaması ekleyelim. Aslında bu zaman eklentisi ile öğrenciler aslında bilgisayarlarında süper makineler olmadıklarını onlarında sıkıntılar yaşayabileceğini göreceklerdir. Aşağıdaki resimlerde zaman kodları eklenmiş halinide bulabilirsiniz.

screen-shot-2016-11-03-at-15-09-43Ve 10000 nokta için bulunan yaklaşık Pi değeri ve geçen süre:

screen-shot-2016-11-03-at-15-09-51Olarak bulunacaktır. Yazımızda bazı yerlerde çizilmiş grafikler gördünüz ikinci yazımızda bu grafiklerin nasıl çizildiğini ve Pi değerinin bulunduğu çemberin ve noktaların nasıl oluşturulduğunu vereceğiz.

Kaynakça:

  1. Mark Thornber, Coding In Classroom 2016 Autumn Report, p. 16
  2. TDK Online Sözlük, 2016
  3. Dabbaghian, V. Mathematical Modelling, http://www.sfu.ca/~vdabbagh/Chap1-modeling.pdf
  4. Principles of Mathematical Modelling
YAZIYI PAYLAŞ
Önceki İçerikOkulunuzda Sıfır Bütçe ile Maker Hareketi Başlatın
Sonraki İçerikApple Haritalar Uygulaması Flyover Özelliği
Lisans Eğitimini matematik üzerine yapan CANSU, yüksek lisanlarını Matematik (Symbolic Mathematics Applications With Python), Eğitim Bilimleri (The Study And Reserach Of Istanbul Bahçeşehir High School Of Science And Technology Based On The Criteria Of Effectıve Schooling) üzerine yapmıştır. Halen doktorasına Bahçeşehir Üniversitesi Bilgisayar Öğretim Teknolojileri bölümünde devam eden CANSU’nun yayınlanmış 3 kitabı (Diofant Denklem Sistemlerinin Elementer Çözümleri, Ulusal Bilgisayar Olimpiyatları Soru ve Çözümleri, Rus Matematik Olimpiyatları Soru ve Çözümleri) bulunmaktadır. Tübitak Matematik ve Bilgisayar alanında proje danışmanlığı yapan CANSU halen Bahçeşehir Fen ve Teknoloji Lisesi’nde Programlama ve Proje eğitimi vermektedir.

HENÜZ YORUM YOK

CEVAP VER