Kurs
Kalem-kâğıt hesabına direnen belirli integrallerin bir kategorisi vardır. Yanlış yaptığınız için değil. e^(−x²) ya da sin(x)/x gibi bazı fonksiyonların kapalı formda ters türevleri hiç yoktur. Böyle durumlarda farklı bir yaklaşım gerekir: fonksiyonu özenle seçilmiş birkaç noktada değerlendirir, bu değerleri birleştirerek altındaki alanı tahmin edersiniz. Buna kadratur denir.
Bu yazı, kadraturun ne olduğunu, genel çerçevenin nasıl çalıştığını ve sezgisel orta nokta kuralından şaşırtıcı derecede keskin Gauss yaklaşımına kadar başlıca yöntemleri adım adım anlatıyor. Ayrıca bileşik yöntemler, hata kaynakları, uyarlamalı stratejiler ve önünüzdeki probleme uygun yöntemi nasıl seçeceğinizi de ele alacağız.
Kadratur Nedir?
“Kadratur” kelimesi eskidir. Klasik geometriden gelir: Verilen bir şekille aynı alana sahip bir kare inşa etme problemi, yani “alanı bulma”nın bir başka ifadesi. Günümüzde terim, belirli bir integralin sayısal olarak yaklaştırılması anlamına gelir.
Temel fikir bir ikamedir: Ters türevi tam olarak bulmak yerine, f(x) fonksiyonunu düğüm denen bir dizi noktada örnekler, her değeri bir ağırlıkla çarpar ve sonuçları toplarsınız:

Kadratur ile sayısal integrasyon özünde aynı şeyi ifade eder. Kadratur daha matematiksel bağlamlarda görülür; sayısal integrasyon bilimsel hesaplamada günlük terimdir.
Sayısal Kadratur Nasıl Çalışır
Her kadratur kuralı [a, b] aralığında çalışır. Bu aralık içinde xᵢ düğümlerini seçer ve her birine wᵢ ağırlığı atar. Yaklaştırma, yukarıdaki ağırlıklı toplamdır. Yöntemler arasındaki fark, düğümlerin nereye yerleştirildiği ve ağırlıkların nasıl atandığıdır. Hepsi bu. Trapez kuralı, Simpson kuralı ve Gauss kadraturu aynı şablonun çeşitleridir.
Yaklaştırma hatası, ağırlıklı toplam ile gerçek integral arasındaki farktır. Her yöntem bir miktar hata oluşturur ve daha fazla düğüm ekledikçe (ya da aralıkları küçülttükçe) bu hatanın ne kadar hızlı azaldığı, iyi bir yöntemi harika bir yöntemden ayırır. Bu çerçeveyi aklınızda tutun: bir kadratur yöntemi seçmek, aslında fonksiyon değerlendirmelerinizi nasıl harcayacağınızı seçmektir.
Yaygın Kadratur Yöntemleri
Aşağıdaki yöntemler en sezgiselden en sofistike olana doğru sıralanmıştır.
Orta Nokta, Trapez ve Simpson integrasyon kurallarının görsel karşılaştırması. Görsel: Yazar.
Orta nokta kuralı
[a, b] aralığının orta noktasını alın, f’yi orada değerlendirin ve genişlikle (b − a) çarpın. Varsayım, merkezdeki fonksiyon değerinin tüm aralık boyunca ortalamayı temsil ettiğidir.
Kulağa neredeyse fazla basit gelir ve tek bir aralık için öyledir de. Ama işte ilk sürpriz: orta nokta kuralı sabit ve doğrusal fonksiyonlarda tamdır ve hatası her aralık için h = b − a olmak üzere O(h³) ölçeğindedir. Bu, düzgün fonksiyonlarda genellikle insanları şaşırtan şekilde trapez kuralından daha iyidir.
Trapez kuralı
Yalnızca merkezi kullanmak yerine her iki uç noktayı kullanın. Bunları düz bir çizgiyle birleştirin ve oluşan trapezin alanını hesaplayın: (b − a) · [f(a) + f(b)] / 2. Doğrusal fonksiyonlarda tamdır, her aralık için hata O(h³) mertebesindedir; orta nokta kuralıyla aynı mertebe, ancak daha büyük bir sabitle.
Trapez kuralı muhtemelen en çok öğretilen kadratur yöntemidir; bu da ona olduğundan büyük bir itibar kazandırmıştır. İyi huylu fonksiyonlarda fena değildir. Ancak bileşik Simpson kuralı, genellikle aynı sayıda değerlendirme için daha iyi sonuç verir.
Simpson kuralı
Üç noktadan geçen bir ikinci dereceden polinom uydurun: iki uç nokta ve orta nokta. Bu polinomu tam olarak integre edin:

Merkezdeki fazladan değerlendirme bir ek fonksiyon çağrısı maliyeti getirir, ancak karşılığı gerçektir: Simpson kuralı üçüncü dereceye kadar polinomlarda tamdır ve her aralıktaki hata O(h⁵) ölçeğindedir; trapez kuralından iki mertebe daha iyidir. Düzgün fonksiyonlar için genellikle başvurulmaya değer ilk yöntem budur.
Gauss kadraturu
İşlerin gerçekten ilginçleştiği yer burası. Orta nokta, trapez ve Simpson kuralları eşit aralıklı düğümler kullanır. Gauss kadraturu farklı bir soru sorar: Hem düğüm konumlarını hem de ağırlıkları, doğruluğu en üst düzeye çıkaracak şekilde seçsek ne olur?
n düğümle Gauss kadraturu (özellikle Gauss-Legendre varyantı), 2n − 1 dereceye kadar herhangi bir polinomu tam olarak integre edebilir. İki düğüm kübiklerde tamlık sağlar; beş düğüm dokuzuncu derece polinomları halleder. Düğümler Legendre polinomlarının kökleridir ve aralık uç noktalarına doğru yığılır; eşit aralıklı konumlarda durmazlar. Ek doğruluk, düğümlerin yer değiştirmesine izin vermekten gelir; düştükleri yerden değil. Uç noktalara yakın kümelenmeleri matematiğin bir yan ürünüdür; aşağıda nedenini göreceğiz.
Dört yöntemin nasıl karşılaştırıldığına bakın:
|
Yöntem |
Yaklaşım |
Aralık başına hata |
Hesaplama maliyeti |
En uygun olduğu durum |
|
Orta nokta kuralı |
Merkezde değerlendir |
O(h³) |
Aralık başına 1 değerlendirme |
Basit, düzgün fonksiyonlar |
|
Trapez kuralı |
Doğrusal uyum |
O(h³) |
Aralık başına 2 değerlendirme |
Periyodik fonksiyonlar |
|
Simpson kuralı |
Karesel uyum |
O(h⁵) |
Aralık başına 3 değerlendirme |
Düzgün fonksiyonlar |
|
Gauss kadraturu |
En uygun düğümler + ağırlıklar |
O(h^(2n+1)) |
Aralık başına n değerlendirme |
Yüksek doğruluk, düzgün fonksiyonlar |
Bileşik Kadratur Yöntemleri
Bir kuralı [a, b] aralığının tamamına bir kez uygulamak genellikle yeterli olmaz. Standart çözüm: aralığı genişliği h = (b − a)/n olan n eşit alt aralığa bölün ve temel kuralı her birine uygulayın.
Bileşik orta nokta ve trapez kuralları
Bileşik trapez kuralında, f’yi eşit aralıklı n+1 noktada değerlendirir ve n adet trapezi toplarsınız. Toplam hata O(h²) seviyesine düşer. h’yi yarıya indirirseniz, hata dört kat azalır. Bileşik orta nokta kuralı aynı mantığı izler ve aynı küresel hata mertebesine sahiptir.
Bileşik Simpson kuralı
Bileşik sürüm, çift sayıda alt aralık gerektirir. f’yi n+1 noktada değerlendirin ve O(h⁴) küresel hata elde edin. h’yi yarıya indirmek, hatayı on altı kat azaltır. Bu nedenle bileşik Simpson kuralı, düzgün bir fonksiyonda orta düzey doğruluk gerektiğinde sıklıkla varsayılan tercihtir.
Aşağıdaki Python kodu, ∫[0’dan π’ye] sin(x) dx (tam değer: 2.0) için alt aralık ekledikçe yaklaştırmanın nasıl sıkılaştığını gösterir:
import numpy as np
def composite_simpson(func, lower, upper, num_intervals):
"""Approximate integral using composite Simpson's rule."""
if num_intervals % 2 != 0:
raise ValueError("num_intervals must be even")
nodes = np.linspace(lower, upper, num_intervals + 1)
values = func(nodes)
h = (upper - lower) / num_intervals
weights = np.ones(num_intervals + 1)
weights[1:-1:2] = 4 # odd-indexed interior points
weights[2:-2:2] = 2 # even-indexed interior points
return (h / 3) * np.dot(weights, values)
exact = 2.0
for n in [4, 8, 16, 32]:
approx = composite_simpson(np.sin, 0, np.pi, n)
print(f"n={n:3d}: approx={approx:.10f}, error={abs(approx - exact):.2e}")
Yalnızca 32 aralıkla, hata 10⁻⁶’nın altına düşer. Bu, O(h⁴) yakınsamadır.
Gauss Kadraturu
Gauss kadraturunun ardındaki fikir, bir tablo satırından fazlasını hak eder.
Neden eşit aralıklı düğümler her zaman en iyi değildir
Düğümler eşit aralıklı noktalara yerleştirildiğinde, değerlendirme bütçesini integrandın zorluğuyla örtüşmeyebilecek bir şekilde harcarsınız. Bazı bölgeler daha fazla çözünürlük ister; bazıları da düz kısımlarda değerlendirmeleri boşa harcar. Gauss kadraturu, tam olarak integre edebileceğiniz polinom derecesi için ispatlanabilir biçimde en iyi düğümleri seçerek bunu bertaraf eder.
n düğüm için Gauss-Legendre kuralı, düğüm olarak n’inci Legendre polinomu Pₙ(x)’in n kökünü seçer, ardından derecesi ≤ 2n − 1 olan her polinom hatasız integre edilecek şekilde ağırlıkları hesaplar. Pratikte, numpy.polynomial.legendre.leggauss(n) ikisini de döndürür. Düğümler, polinom interpolasyon hatasının en büyük olma eğiliminde olduğu ve ek örnekleme yoğunluğunun en çok getiriyi sağladığı standart başvuru aralığı [−1, 1]’in uç noktalarına doğru kümelenir.
Ne zaman kullanmalı
Gauss kadraturu, düzgün, analitik bir fonksiyona sahip olduğunuzda ve az sayıda değerlendirmeyle yüksek doğruluk gerektiğinde en iyi performansı verir. Beş Gauss-Legendre noktası, düzgün integrandlarda, onlarca aralıklı bileşik Simpson kuralını geride bırakabilir. Ancak kırılma noktaları, süreksizlikler olan fonksiyonlara ya da yalnızca sabit eş aralıklı noktalarda mevcut verilere pek uygun değildir. Bu durumlarda, özenle seçilmiş düğüm konumlandırması aleyhinize çalışır.
Kadratur Hatası ve Doğruluk
Hiçbir sayısal yöntem hata konusunda bedavaya kaçamaz. Her kadratur sonucunu etkileyen iki farklı kaynak vardır; her ikisini de anlamak, cevabınıza ne zaman güveneceğinizi bilmek için kritiktir.
Hata kaynakları şunlardır:
- Ayrıklaştırma hatası (kesme hatası da denir), tam integral ile kusursuz aritmetikte kadratur kuralınızın döndürdüğü değer arasındaki boşluktur. O(hᵏ) formüllerinin yakaladığı budur. Daha fazla nokta ekledikçe veya aralık genişliğini azalttıkça küçülür.
- Kayan nokta hatası bambaşka bir sorundur. Sonlu duyarlıklı aritmetikte çok sayıda küçük niceliği toplamak, h ile küçülmeyen ve hatta büyüyebilen yuvarlama hataları oluşturur. Binlerce alt aralık kullanan bileşik kurallarda, kayan nokta gürültüsünün baskın hale geldiği bir tabana çarpabilir ve aralık eklemek artık işe yaramaz. Çoğu bilimsel hesaplama için, bu tabana gelmeden önce hedef toleransınıza ulaşırsınız; ama o taban vardır.
Fonksiyon düzgünlüğü, aralık genişliği ve yöntem seçimi, ayrıklaştırma hatasına birlikte etki eder. Keskin özelliklere sahip pürüzlü bir fonksiyon daha fazla aralık veya uyarlamalı bir yaklaşım gerektirir.
Uyarlamalı Kadratur
Ölçülü bir ızgara, integrand çoğu yerde düzgün ama birkaç yerde karmaşık olduğunda değerlendirmeleri boşa harcar.
Nasıl çalışır
Bir aralığa bir kadratur kuralı uygulayın, ardından daha yüksek mertebeden bir kural (veya aynı kuralı iki yarıya) uygulayıp karşılaştırın. Fark, yerel hatayı tahmin eder. Eğer toleransın altındaysa aralığı kabul edin. Değilse, bölün ve her yarıda yineleyin. Her alt aralık toleransı karşılayana kadar tekrarlayın.
Integrand izole özellikler içerdiğinde (dar bir sivri uç, bir kırılma, etrafı düzgün olan hızlı salınım) tekdüze inceltmeye göre verim kazancı büyük olabilir. Uyarlamalı yöntemler, değerlendirmeleri fonksiyonun gerçekten ihtiyaç duyduğu yerlere tam olarak yoğunlaştırır.
scipy.integrate.quad()
Python’da scipy.integrate.quad(), uyarlamalı Gauss kadraturunu (özellikle QUADPACK’in DQAGSE algoritması) uygular. Fonksiyonunuzu ve sınırları geçin; tahmini ve bir hata sınırını geri verir. Çoğu bir boyutlu integral için, manuel ayara gerek olmadan doğru araç budur.
from scipy import integrate
import numpy as np
# Integrate a function with a peak near x=0.5
def peaked_func(x):
return np.exp(-100 * (x - 0.5)**2)
result, error_bound = integrate.quad(peaked_func, 0, 1)
print(f"Estimate: {result:.10f}")
print(f"Error bound: {error_bound:.2e}")
quad() bu dar tepeli durumu temiz biçimde ele alır. Tekdüze Simpson kuralı aynı seviyeye gelmek için yüzlerce alt aralığa ihtiyaç duyardı.
Bir Kadratur Yöntemi Nasıl Seçilir
Python’da bir boyutlu integraller için, aksi bir neden olmadıkça scipy.integrate.quad() ile başlayın. Uyarlamalıdır, doğrudur ve iyi test edilmiştir. Aşağıdakilerin tümü, işi kendiniz uyguladığınızda, iyi bir uyarlamalı kütüphanesi olmayan bir dilde çalıştığınızda veya belirli bir durum için optimize ettiğinizde önemlidir.
- Bilinen formüllü, düzgün, analitik fonksiyonlar: Gauss kadraturu, değerlendirme başına en yüksek doğruluğu verir. Orta düzey doğruluk ve sadelik gerekiyorsa, bileşik Simpson kuralı sağlam bir varsayılandır.
- Kırılma noktaları veya süreksizlikleri olan fonksiyonlar: Eşit aralıklı yöntemler (trapez, Simpson) burada genellikle Gauss kadraturundan daha iyi performans gösterir; çünkü sabit düğüm yerleşimi düzensizlikten etkilenmez. İntegrasyon aralığını bilinen süreksizlikte bölün ve her parçayı ayrı ayrı ele alın.
- Sabit, eş aralıklı noktalarda veri: Gauss kadraturu seçenek dışıdır. Fonksiyonu keyfi düğümlerde değerlendiremezsiniz; bunun yerine bileşik trapez veya bileşik Simpson kuralını kullanın.
- Daha yüksek boyutlu integraller: Kadratur, boyutsallık lanetine hızla yakalanır. Boyut başına n nokta ve d boyutla, toplamda nᵈ değerlendirme gerekir. On boyutta boyut başına on nokta, 10¹⁰ değerlendirmedir; bu da mümkün değildir. Monte Carlo, yaklaşık beş boyutun üzerinde çok daha iyi ölçeklenir; geçiş noktası da burasıdır.
Kadratur ve İlgili Sayısal Yöntemler
Kadratur, kendi başına var olmaz. Düşündüğünüz diğer araçlarla kıyasla konumunu görmek faydalıdır.
Kadratur vs. analitik integrasyon
Analitik integrasyon, tam bir ters türev bulur; kadratur ise bir sayıyı yaklaştırır. Eğer tam bir ters türev varsa ve bulabiliyorsanız, onu kullanın. Tam integrasyonun imkânsız ya da pratik olmadığı durumlarda kadratur hak ettiği yeri alır.
Kadratur vs. Monte Carlo integrasyonu
Her ikisi de belirli integralleri yaklaştırır, ama farklı şekilde. Kadratur deterministiktir: f’yi sabit, önceden seçilmiş düğümlerde değerlendirir; yakınsaması fonksiyonun düzgünlüğüne ve düğüm sayısına bağlıdır. Monte Carlo rastgele örnekler alır ve bunların ortalamasını alır; hatası boyuttan bağımsız olarak O(1/√N) ölçeğindedir. Düşük boyutlarda bu daha yavaş yakınsamadır, ancak boyuttan bağımsızdır; bu da yaklaşık beş boyutun üzerinde pratik tercih olmasını sağlar.
Kadratur vs. enterpolasyon
Bazı kadratur kuralları, Simpson kuralı dahil, değerlendirme noktalarından geçen bir polinom uydurup onu tam olarak integre ederek çalışır. Ancak amaç, enterpolasyondan farklıdır. Enterpolasyon fonksiyonu yeniden inşa eder; kadratur yalnızca bir sayı ister. Polinom bir araçtır, çıktı değil.
Sonuç
Kadraturda tatmin edici bulduğum şey, tek bir örgütleyici fikirden ne kadar çok fayda sağlanabildiğidir. Buradaki her yöntem, orta nokta kuralı, trapez, Simpson, Gauss, aslında aynı soruya verilen farklı yanıtlardır: Belirli bir fonksiyon değerlendirme bütçesiyle, onları nereye koyarsınız ve nasıl ağırlıklandırırsınız?
Değerlendirme noktalarından geçen daha iyi polinomlar uydurmak, hatayı hızla düşürür. En uygun şekilde seçilmiş düğümlere geçmek, aynı bütçeden daha da fazla doğruluk çıkarır. Uyarlamalı yöntemler ise her şeyi bir araya getirir; değerlendirmeleri fonksiyonun gerçekten ihtiyaç duyduğu yerlere yönlendirir.
Python’da scipy.integrate.quad(), tek boyutlu problemler için doğru varsayılandır. Bu yazıdaki diğer her şey, kaputun altında neler olduğunu anlamanız gerektiğinde veya bir şeyi kendiniz uyguladığınızda içindir. SciPy ile sayısal becerilerinizi geliştirmeye devam etmek isterseniz, Python’da Optimizasyona Giriş kursumuzu alın.
SSS
Matematikte kadratur nedir?
Kadratur, belirli bir integralin sayısal olarak yaklaştırılmasıdır. Ters türevi analitik olarak bulmak yerine, fonksiyonu seçilmiş noktalarda (düğümler) değerlendirir ve bu değerleri ağırlıklarla birleştirerek integrali tahmin edersiniz. Terim, eğrinin altındaki alanı bulma konusundaki klasik problemden gelir.
Trapez kuralı ile Simpson kuralı arasındaki fark nedir?
Trapez kuralı, integrandı uç noktalar arasında bir doğruyla yaklaştırır — doğrusal fonksiyonlarda tamdır. Simpson kuralı ise üç noktadan (iki uç nokta artı orta nokta) geçen ikinci dereceden bir polinom uydurur ve böylece üçüncü dereceye kadar polinomlarda tam olur. Düzgün fonksiyonlarda Simpson kuralı çok daha hızlı yakınsar: her aralık için hatası O(h⁵) iken trapez kuralında O(h³)’tür.
Gauss kadraturunu bileşik Simpson kuralı yerine ne zaman kullanmalıyım?
f’yi herhangi bir noktada değerlendirebildiğiniz ve az sayıda fonksiyon değerlendirmesiyle yüksek doğruluk gerektiği — özellikle de düzgün, analitik fonksiyonlar için — durumlarda Gauss kadraturunu kullanın. Veriniz sabit, eş aralıklı noktalarda bulunduğunda ya da fonksiyonunuz Gauss düğüm yerleşimini saptıracak kırılma noktalarına veya süreksizliklere sahip olduğunda, bileşik Simpson kuralı genellikle daha iyi çalışır. Çoğu pratik iş için, scipy.integrate.quad() gibi uyarlamalı yöntemler bu seçimi sizin yerinize yapar.
“Uyarlamalı kadratur” ne anlama gelir?
Uyarlamalı kadratur, değerlendirme noktalarını eşit yaymak yerine, yaklaştırma hatasının büyük olduğu yerlere yoğunlaştırır. Her alt aralıkta yerel hatayı tahmin eder, toleransı aşan aralıkları alt aralıklara böler ve toplam hata kabul edilebilir olana kadar tekrarlayarak devam eder. Bu, integrandın neredeyse her yerde düzgün olup yalnızca izole ve zorlu bölgeler içerdiği durumlarda etkilidir.
Python’da sayısal integral nasıl hesaplanır?
Standart araç scipy.integrate.quad()’dır. Fonksiyonu ve integrasyon sınırlarını verirsiniz; yaklaştırmayı ve bir hata tahminini döndürür. Sonsuz sınırlar için np.inf veya -np.inf verin. Çok boyutlu integraller için dblquad() veya tplquad() kullanın.
Kadratur neden yüksek boyutlu integrallerde başarısız olur?
Kadratur kuralları düğümleri bir ızgaraya yerleştirir; bu nedenle toplam fonksiyon değerlendirme sayısı nᵈ olarak ölçeklenir — burada n boyut başına nokta sayısı, d ise boyut sayısıdır. On boyutta boyut başına on nokta, 10¹⁰ değerlendirmedir. Bu üstel patlama, boyutsallık laneti olarak adlandırılır. Monte Carlo integrasyonu, hata oranı boyuttan bağımsız olarak O(1/√N) olduğu için bunu bertaraf eder; N, rastgele örneklerin toplam sayısıdır.
Kadratur ile Monte Carlo integrasyonu arasındaki fark nedir?
Kadratur deterministiktir: fonksiyonu sabit, önceden seçilmiş düğümlerde değerlendirir; yakınsama hızları yönteme ve fonksiyonun düzgünlüğüne bağlıdır — bileşik kurallar için tipik olarak O(h²)’den O(h⁵)’e kadar. Monte Carlo rastgeleleştirilmiştir: örnekleri eşit olasılıklı çeker ve ortalamasını alır; hata O(1/√N) ölçeğindedir. Bir veya iki boyutta kadratur üstün gelir. Beş ila on boyut civarında Monte Carlo pratik tercih haline gelir.
Gauss düğümleri ve ağırlıkları nedir?
Gauss düğümleri, belirli ortogonal polinomların sıfırlarıdır — Gauss-Legendre kadraturunda, n’inci Legendre polinomunun kökleridir. Ağırlıklar, 2n − 1 dereceye kadar polinomların tam olarak integre edilmesini sağlayacak şekilde seçilir. Eş aralıklı ızgaraların aksine, Gauss düğümleri aralığın merkezine doğru kümelenir ve uç noktalardan uzak durur. Bunları elle hesaplamanıza gerek yok; numpy.polynomial.legendre.leggauss() doğrudan verir.
