Jump to content
  • entries
    57
  • comments
    0
  • views
    27,822

Fonksiyonlarda Dönüşümler(Transformations)


Doğuhan ELMA

174 views

Dönüşümler, matematiksel fonksiyonlarla da gerçekleştirilir. Her dönüşümün kendine özgü matematiksel fonksiyonları vardır ve bu fonksiyonları bir dizi olarak uygulamak, bir dizi dönüşüm gerçekleştirmek anlamına gelir. İşte dönüşüm türleri ve bunların matematiksel fonksiyonları:

1. Ölçeklendirme (Scaling): Bu, bir fonksiyonun y veya x değerlerini çarparak gerçekleştirilir. Örneğin, y = 2f(x) formülü, y = f(x) fonksiyonunu y ekseni boyunca iki katına çıkarır.

Örnek:

Önce ölçeklendirilmemiş sinüs fonksiyonunu çizelim:

import numpy as np
import matplotlib.pyplot as plt

# x değerlerini oluştur
x = np.linspace(0, 2 * np.pi, 100)

# sin(x) fonksiyonunu oluştur
y = np.sin(x)

# grafik çiz
plt.plot(x, y)
plt.title('Original Sin(x)')
plt.show()

1.png

Bu sinüs dalgası y ekseni boyunca -1 ile 1 arasında değerler alır. Şimdi, bu sinüs dalgasını y ekseni boyunca 2 katına çıkaralım. Bunu yapmak için, sin(x) fonksiyonunun çıktısını 2 ile çarpacağız:

# sin(x) fonksiyonunu ölçekle
y_scaled = 2 * np.sin(x)

# ölçeklenmiş grafik çiz
plt.plot(x, y_scaled)
plt.title('Scaled Sin(x)')
plt.show()

1.png

Bu, sinüs dalgasını y ekseni boyunca 2 katına çıkarır, yani artık -2 ile 2 arasında değerler alır. Benzer şekilde, sin(x) fonksiyonunun x ekseni boyunca ölçeklendirilmesi için, sin fonksiyonuna giren x değerlerini ölçeklendirebiliriz. Örneğin, sin(2*x) fonksiyonu, sinüs dalgasını x ekseni boyunca yarıya çeker(Horizontal Compressions - Yatay Sıkıştırmalar), yani dalgalar daha hızlı döner.  Eğer sin(0.5*x) ile x ekseni boyunca genişleme (Horizontal Stretches - Yatay Genişlemeler) yapar.

import numpy as np
import matplotlib.pyplot as plt

# x değerlerini oluştur
x = np.linspace(0, 2 * np.pi, 100)

# sin(x) fonksiyonunu ölçekle
y_scaled = np.sin(2*x)

# ölçeklenmiş grafik çiz
plt.plot(x, y_scaled)
plt.title('Scaled Sin(x)')
plt.show()

1.png

import numpy as np
import matplotlib.pyplot as plt

# x değerlerini oluştur
x = np.linspace(0, 2 * np.pi, 100)

# sin(x) fonksiyonunu ölçekle
y_scaled = np.sin(0.5*x)

# ölçeklenmiş grafik çiz
plt.plot(x, y_scaled)
plt.title('Scaled Sin(x)')
plt.show()

1.png

2. Döndürme (Rotation): Döndürme dönüşümleri genellikle trigonometrik fonksiyonlar kullanılarak gerçekleştirilir. Örneğin, bir 2D noktanın (x, y) saat yönünün tersine θ derece döndürülmesi, (x cos θ - y sin θ, x sin θ + y cos θ) olarak hesaplanır.

Bir 2D noktanın döndürülmesi hakkında Python örneği verebilirim. İki boyutlu bir düzlemde, bir noktayı orijin etrafında saat yönünün tersine döndürmek için aşağıdaki dönüşüm matrisi kullanılır:

[ cos θ  -sin θ ]
[ sin θ   cos θ ]

Python'da, bir noktayı belirli bir açıyla döndüren bir işlev oluşturalım:

import numpy as np

def rotate(point, angle):
    """Bir noktayı belirli bir açıyla döndürün.
    `point` bir (x, y) koordinatlarına sahip tuple olmalıdır.
    `angle` derece cinsinden bir açı olmalıdır."""
    
    # Açıyı radyan cinsine çevir
    angle = np.radians(angle)
    
    # Dönüşüm matrisini oluştur
    rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)],
                                [np.sin(angle), np.cos(angle)]])
    
    # Dönüşüm matrisini noktaya uygula
    rotated_point = np.dot(rotation_matrix, point)
    
    return rotated_point

Şimdi (1, 0) noktasını 90 derece döndürelim:

point = (1, 0)
angle = 90

rotated_point = rotate(point, angle)
print(rotated_point)

Bu kodu çalıştırdığınızda, (1, 0) noktasının 90 derece döndürüldükten sonra (0, 1) olduğunu görürsünüz. Bu, saat yönünün tersine 90 derece döndürmenin beklenen sonucudur.

Bu döndürme işlemi, 2D grafiklerde veya basit 2D oyunlarda yaygın olarak kullanılır. 3D döndürme, bu konseptin bir uzantısıdır ve 3x3 dönüşüm matrislerini kullanır, ancak aynı temel prensipler geçerlidir.

3. Kaydırma (Translation): Kaydırma dönüşümleri, bir fonksiyonun y veya x değerlerine bir sabit ekleyerek gerçekleştirilir. Örneğin, y = f(x) + c formülü, y = f(x) fonksiyonunu y ekseni boyunca c birim kaydırır.

Fonksiyonlarla ilgili olarak kaydırma, bir fonksiyon grafiğinin yatay veya dikey eksende taşınması anlamına gelir. Bu, genellikle bir fonksiyonun yatay veya dikey olarak "kaydırılmasını" ifade eder.

Kaydırmalar genellikle iki şekilde olur: yatay kaydırmalar ve dikey kaydırmalar.

a) Yatay Kaydırma:

Bir fonksiyonun h birim yatayda kaydırılması, her x değerine h ekleyerek veya çıkararak elde edilir. Örneğin, f(x) = x^2 fonksiyonunu 3 birim sağa kaydırmak istersek, f(x) = (x-3)^2 olarak ifade ederiz. Burada x'in yerine x-3 koyduk, bu da grafiği yatay eksende sağa doğru 3 birim kaydırır.

b) Dikey Kaydırma:

Bir fonksiyonun k birim dikeyde kaydırılması, fonksiyonun çıktısına k ekleyerek veya çıkararak elde edilir. Örneğin, f(x) = x^2 fonksiyonunu 4 birim yukarı kaydırmak istersek, f(x) = x^2 + 4 olarak ifade ederiz. Burada x^2'nin çıktısına 4 ekledik, bu da grafiği dikey eksende yukarı doğru 4 birim kaydırır.

Fonksiyonları bu şekilde kaydırmak, farklı durumlarda yararlı olabilir. Örneğin, veri analizinde, bir veri setinin dağılımını normalleştirmek veya merkezileştirmek için kaydırmalar kullanabiliriz. Fizikte veya mühendislikte, bir sistemin yanıtını modellemek için kaydırmalar kullanabiliriz. Fonksiyonları kaydırma yeteneği, bu tür durumları daha kolay hale getirir.

Python'da, numpy ve matplotlib kütüphanelerini kullanarak bu kaydırmaları görselleştirebiliriz. İşte bir örnek:

import numpy as np
import matplotlib.pyplot as plt

# x değerlerini tanımlayın
x = np.linspace(-10, 10, 400)

# Orjinal fonksiyon
y = x**2

# Kaydırılmış fonksiyonlar
y_h = (x-3)**2  # yatayda 3 birim kaydırma
y_v = x**2 + 4  # dikeyde 4 birim kaydırma

plt.figure(figsize=(10,6))

plt.plot(x, y, label='orjinal f(x)=x^2')
plt.plot(x, y_h, label='yatay kaydırma f(x)=(x-3)^2')
plt.plot(x, y_v, label='dikey kaydırma f(x)=x^2+4')

plt.legend()
plt.grid(True)
plt.show()

1.png

4. Yansıtma (Reflection): Yansıma dönüşümleri, bir fonksiyonun y veya x değerlerini çarparak ve sonra eksen boyunca çevirerek gerçekleştirilir. Örneğin, y = -f(x) formülü, y = f(x) fonksiyonunu x ekseni etrafında yansıtır.

Bir dizi dönüşümü gerçekleştirmek, genellikle bu dönüşüm fonksiyonlarını sırayla uygulamayı içerir. Ancak, bu fonksiyonların sırasının, sonuç üzerinde büyük bir etkisi olabilir - yani, dönüşümler genellikle "commutative" değildir - yani, dönüşüm sırasını değiştirmek, genellikle farklı bir sonuç verir.

Bu dönüşüm teknikleri, karmaşık matematiksel fonksiyonları analiz etmek, grafiklerini çizmek ve daha fazlasını yapmak için çok yararlıdır.

Yansıma, bir fonksiyonun grafiğini belirli bir eksene göre "takla attırma" işlemidir. Yansıma işlemi genellikle iki ana eksende gerçekleştirilir: yatay (x) ekseni ve dikey (y) ekseni.

Yatay Yansıma:

Bir fonksiyonun yatay eksende yansıtılması, x değerlerinin işaretini değiştirir. Yani, f(x) fonksiyonunun yatay eksende yansımasını elde etmek için f(-x) şeklinde ifade ederiz.

Örneğin, f(x) = x^3 fonksiyonunu ele alalım. Bu fonksiyonun yatay eksende yansıması f(-x) = (-x)^3 = -x^3 olacaktır.

Dikey Yansıma:

Bir fonksiyonun dikey eksende yansıtılması, y değerlerinin işaretini değiştirir. Yani, f(x) fonksiyonunun dikey eksende yansımasını elde etmek için -f(x) şeklinde ifade ederiz.

Örneğin, f(x) = x^2 fonksiyonunu ele alalım. Bu fonksiyonun dikey eksende yansımasını -f(x) = -x^2 olacaktır.

Bu yansımaları Python kullanarak görselleştirelim:

import numpy as np
import matplotlib.pyplot as plt

# x değerlerini oluşturun
x = np.linspace(-10, 10, 400)

# Orjinal fonksiyonlar
y1 = x**3
y2 = x**2

# Yansıtılmış fonksiyonlar
y1_h_reflection = (-x)**3  # yatay yansıma
y2_v_reflection = -x**2  # dikey yansıma

plt.figure(figsize=(10,6))

plt.plot(x, y1, label='orjinal f(x)=x^3')
plt.plot(x, y1_h_reflection, label='yatay yansıma f(-x)=(-x)^3')

plt.figure(figsize=(10,6))

plt.plot(x, y2, label='orjinal f(x)=x^2')
plt.plot(x, y2_v_reflection, label='dikey yansıma -f(x)=-x^2')

plt.legend()
plt.grid(True)
plt.show()

1.png

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...