Ünite 6 / 11

Matematiksel Görselleştirme

Kazanimlar:

  • Yapay zekaya Matplotlib kodu yazdırıp kodu çalıştırarak fonksiyonları, kesişimleri ve verileri görselleştirebilme ve amaca uygun grafik türünü seçebilme
  • Bir grafiğin matematiği doğru yansıttığını fonksiyonun bilinen özellikleriyle, eksen aralığıyla, asimptotlarla ve en az bir noktasal hesapla karşılaştırarak denetleyebilme
  • Görselleştirmeyi bir doğrulama aracı olarak kullanarak kök ve kesişimlerin yerini görsel olarak belirleyip sayısal yöntemlere doğru başlangıç noktaları sağlayabilme

Bir grafik, bin denklemden daha çok anlatır. Bir fonksiyonun nasıl davrandığını, köklerinin nerede olduğunu, iki eğrinin nerede kesiştiğini ya da bir verinin nasıl dağıldığını gözle görmek, matematiği anlamanın ve doğrulamanın en güçlü yollarından biridir. Matematiksel görselleştirme (mathematical visualization), matematiksel nesneleri (fonksiyonlar, veriler, geometrik şekiller) grafiklerle görsel biçimde temsil etmektir. Python'da bunun standart aracı Matplotlib kütüphanesidir. Bu ünitede YZ'yi görselleştirme kodu üreten bir asistan olarak kullanmayı ve daha da önemlisi, grafiğin matematiği doğru yansıttığını nasıl denetleyeceğinizi öğreneceksiniz.

Görselleştirme aynı zamanda bir doğrulama aracıdır. Önceki ünitede gördük: bir denklemin kökünü sayısal bulmadan önce grafiğini çizmek, kökün kabaca nerede olduğunu gösterir ve doğru başlangıç tahmini verir. Bir integral hesabından önce fonksiyonun grafiğini görmek, sonucun işaretinin (pozitif/negatif alan) mantıklı olup olmadığını anlamanızı sağlar. Grafik, "bu sonuç mantıklı mı?" sorusunun görsel cevabıdır.

Görselleştirmenin matematikteki başlıca kullanımları

  • Fonksiyon davranışı: Bir f(x)'in artan/azalan bölgeleri, maksimum/minimumları, asimptotları.
  • Kök ve kesişim bulma: Eğrinin x eksenini kestiği yerler (kökler), iki eğrinin kesişimi.
  • Alan/integral sezgisi: Eğri altında kalan alanın görsel temsili.
  • Veri dağılımı: Histogram, saçılım grafiği (scatter plot), kutu grafiği (box plot).
  • Geometri: Üçgenler, çemberler, dönüşümler.
  • Ders materyali: Bir kavramı öğrencilere görsel anlatmak.

Adım adım: YZ ile doğru grafik üretmek

1. Ne göstermek istediğini net söyle. "sin(x)'i çiz" yeterli değildir; "sin(x)'i [−2π, 2π] aralığında, eksenleri etiketli ve ızgaralı çiz" daha iyidir.

2. YZ'ye Matplotlib kodu yazdır. Çıktı görüntüsünü değil, kodu isteyin; kodu siz çalıştırıp grafiği görün.

3. Grafiği matematikle karşılaştır. Grafik, fonksiyonun bilinen özelliklerini gösteriyor mu? sin(x) −1 ile 1 arasında salınmalı; bir parabol simetrik olmalı; bir üstel fonksiyon hızla artmalı. Grafik bunları göstermiyorsa kodda hata vardır.

4. Eksen aralığını kontrol et. Yanlış aralık, önemli bir kökü veya davranışı gizleyebilir. Fonksiyonun ilginç bölgesini kapsadığından emin olun.

5. Etiket ve ölçeği denetle. Eksenler etiketli mi? Ölçek (linear/log) doğru mu? Yanıltıcı bir ölçek yanlış izlenim verir.

6. Sayısal bir noktayla teyit et. Grafikte f(2)≈3 görünüyorsa, bunu hesapla doğrulayın. Grafik yalan söyleyebilir (yanlış fonksiyon çizilmişse).

İpucu: Bir grafiği çizdikten sonra, üzerindeki en az bir noktayı bağımsız olarak hesaplayarak doğrulayın. Grafik x=0'da y=1 gösteriyorsa, f(0)'ı elle hesaplayın. Uyuşuyorsa muhtemelen doğru fonksiyon çizilmiştir; uyuşmuyorsa YZ yanlış bir ifade kodlamış olabilir.

Çözünürlük ve örnekleme: grafiğin yalan söylediği yerler

Bir Matplotlib grafiği aslında sürekli bir eğri değildir; fonksiyonu sonlu sayıda noktada hesaplayıp bu noktaları düz çizgilerle birleştirir. Bu noktaların sayısına örnekleme çözünürlüğü (sampling resolution) denir. Çözünürlük düşükse (ör. NumPy'de linspace ile yalnızca 10 nokta üretilmişse), hızlı salınan bir fonksiyon (ör. sin(50x)) grafikte tümüyle yanlış görünebilir — tepe ve çukurların çoğu iki örnekleme noktası arasına düşüp kaybolur. Buna sinyal işlemede örtüşme (aliasing) denir. Yapay zeka bazen az sayıda nokta üreten bir kod yazar; sonuç akıcı ama yanıltıcı bir grafiktir.

Panzehir basittir: hızlı değişen fonksiyonlarda örnekleme noktası sayısını yüksek tutun (ör. np.linspace(a, b, 1000)). Ayrıca, bir grafikte beklemediğiniz köşeli, dişli ya da düzensiz bir görünüm varsa, bu çoğu zaman fonksiyonun gerçek davranışı değil, düşük çözünürlüğün bir yan etkisidir; nokta sayısını artırıp grafiğin değişip değişmediğini kontrol edin. Grafik nokta sayısıyla belirgin biçimde değişiyorsa, henüz fonksiyonun gerçek şeklini görmüyorsunuz demektir.

Dikkat: Düşük çözünürlüklü bir grafik, hızlı salınan bir fonksiyonu tümüyle yanlış gösterebilir — hatta var olmayan bir örüntü uydurabilir. Kritik bir grafik çizerken örnekleme nokta sayısını bilinçli olarak yüksek seçin ve nokta sayısını artırdığınızda grafiğin kararlı kaldığını doğrulayın.

Grafik türü seçimi

Amaç

Uygun grafik

Matplotlib fonksiyonu

Fonksiyon eğrisi

Çizgi grafiği

plot()

Veri noktaları

Saçılım grafiği

scatter()

Dağılım

Histogram

hist()

İki değişken ilişkisi

Saçılım + eğri

plot() + scatter()

Kategorik karşılaştırma

Sütun grafiği

bar()

Yüzey/3B

3B yüzey

plot_surface()

Üç mini vaka

Vaka 1 — Gizlenen kök. Bir öğrenci, bir polinomun köklerini görmek için grafik çizdirdi ama YZ eksen aralığını [−1, 1] seçti; oysa kökler x=3 civarındaydı ve grafikte hiç görünmüyorlardı. Öğrenci "bu fonksiyonun kökü yok mu?" diye şaşırdı, sonra aralığı [−5, 5] yapınca kökler ortaya çıktı. Ders: yanlış aralık matematiği gizler.

Vaka 2 — Yanlış fonksiyon. Bir öğretmen, YZ'ye "cos(x²)" çizdirmek istedi ama kod yanlışlıkla "cos(x)²" (yani cos²(x)) yazdı. İki fonksiyon çok farklı. Öğretmen, x=√π noktasında grafik ile beklediği değeri karşılaştırınca uyuşmadığını gördü ve hatayı yakaladı. Parantez yeri her şeyi değiştirir.

Vaka 3 — Görsel doğrulama kök buldurdu. Bir mühendis, önce fonksiyonun grafiğini çizip x eksenini iki yerde kestiğini gördü (~1.2 ve ~4.7). Bu görsel bilgiyle sayısal kök bulucuya doğru başlangıç tahminlerini verdi ve iki kökü de kesin buldu. Grafik olmasa yalnızca bir köke yakınsayabilirdi. 5 dakikada iki kök.

Dört kopyalanabilir şablon

1) Fonksiyon grafiği:

[f(x)] fonksiyonunu [a, b] aralığında çizen bir Matplotlib kodu yaz.NumPy ile x dizisi oluştur, ekseni etiketle, ızgara ekle, başlık koy.Kodu ben çalıştıracağım; görüntüyü tanımlama. Kökler/özel noktalargörünsün diye aralığı uygun seç.

2) İki eğrinin kesişimi:

[f(x)] ve [g(x)] fonksiyonlarını aynı grafikte [a, b] aralığında çiz.İkisini farklı renkte göster, legend ekle. Kesişim noktalarınınkabaca nerede olduğunu görebileceğim şekilde eksen aralığını ayarla.

3) Görsel + sayısal doğrulama:

[f(x)]'i çiz VE grafik üzerindeki 3 örnek noktanın (x=[değerler])gerçek f değerlerini print ile de yazdır. Böylece grafiğisayısal değerlerle karşılaştırabileyim. Sadece kodu ver.

4) Veri histogramı:

Şu veri listesinin histogramını çizen bir kod yaz: [veri].Uygun sayıda aralık (bin) seç, eksenleri etiketle. Ortalama vestandart sapmayı da print ile yazdır. Kodu ben çalıştıracağım.

Zayıf prompt / Güçlü prompt

Zayıf: "1/(x−2) fonksiyonunu çiz."
Sonuç: Kod, x=2'deki dikey asimptotu düzgün işlemeyebilir; grafik x=2'de yanıltıcı bir dik çizgi gösterir ve fonksiyonun davranışı yanlış anlaşılır.
Güçlü: "1/(x−2) fonksiyonunu [−5, 5] aralığında çiz, ama x=2'deki dikey asimptotu doğru göster: asimptot yakınında değerleri sınırla veya iki ayrı parça olarak çiz. Eksenleri etiketle, asimptotu kesikli çizgiyle işaretle."
Sonuç: Asimptot doğru gösterilir, grafik fonksiyonun gerçek davranışını yansıtır.

Sık yapılan hatalar

  • Yanlış eksen aralığı. Fonksiyonun ilginç bölgesini (kökler, tepe noktaları) kapsamayan aralık, matematiği gizler.
  • Asimptotları göz ardı etmek. 1/x gibi fonksiyonlarda dikey asimptotlar yanıltıcı çizgilere yol açar; özel işlem gerekir.
  • Parantez/notasyon hatası. cos(x²) ile cos²(x) gibi farklar koda yanlış geçer; grafik başka fonksiyonu gösterir.
  • Etiketsiz eksenler. Ne çizildiği belirsiz kalır; ders materyalinde ciddi bir eksikliktir.
  • Grafiği sayısal teyit etmemek. Grafik yanlış fonksiyonu çiziyorsa yalnızca noktasal hesap bunu yakalar.
  • Yanıltıcı ölçek. Logaritmik/lineer ölçek karışıklığı yanlış izlenim verir.
Dikkat: Bir grafik "güzel görünmesi" onu doğru yapmaz. YZ estetik olarak hoş ama matematiksel olarak yanlış bir grafik üretebilir — örneğin yanlış fonksiyonu, yanlış aralıkta ya da asimptotu bozuk çizebilir. Grafiği daima çizdiği fonksiyonun bilinen özellikleriyle ve en az bir noktasal hesapla karşılaştırın.

Özetle

Görselleştirme hem bir anlatım hem bir doğrulama aracıdır: bir fonksiyonun davranışını, köklerini ve kesişimlerini gözle görmek, hataları yakalamanın ve doğru sayısal başlangıç noktaları bulmanın güçlü bir yoludur. YZ Matplotlib kodunu hızlıca üretir; siz kodu çalıştırır, grafiği fonksiyonun bilinen özellikleriyle karşılaştırır, eksen aralığını ve asimptotları denetler ve en az bir noktayı sayısal olarak teyit edersiniz. Güzel bir grafik doğru bir grafik değildir; her zaman matematikle karşılaştırın.

Uygulama görevi

İlginç bir fonksiyon seçin (ör. bir dikey asimptotu olan 1/(x−2), ya da birkaç kökü olan bir polinom). YZ'ye 1. ve 3. şablonlarla hem grafiğini çizdirin hem birkaç noktasının gerçek değerini yazdırın. Kodu çalıştırıp grafiği görün. Grafik üzerindeki özellikleri (kökler, asimptot, tepe noktaları) fonksiyonun bilinen matematiğiyle karşılaştırın. En az bir noktayı elle veya SymPy ile doğrulayın. Eksen aralığını değiştirip gizli bir davranışın ortaya çıkıp çıkmadığını deneyin.

Kontrol listesi

  • [ ] Ne çizmek istediğimi aralık ve etiketlerle net belirttim.
  • [ ] Kodu ben çalıştırıp grafiği gerçekten gördüm.
  • [ ] Grafiği fonksiyonun bilinen özellikleriyle karşılaştırdım.
  • [ ] Eksen aralığının ilginç bölgeyi kapsadığını doğruladım.
  • [ ] Asimptot/tanımsızlık noktalarının doğru gösterildiğini kontrol ettim.
  • [ ] En az bir noktayı sayısal olarak teyit ettim.