🏷️sec_integral_calculus
Türev alma, geleneksel bir matematik eğitiminin içeriğinin yalnızca yarısını oluşturur. Diğer yapıtaşı, integral alma, oldukça ayrık bir soru gibi görünerek başlar, "Bu eğrinin altındaki alan nedir?" Görünüşte alakasız olsa da, integral alma, kalkülüsün temel teoremi olarak bilinen ilişki aracılığıyla türev alma ile sıkı bir şekilde iç içe geçmiştir.
Bu kitapta tartıştığımız makine öğrenmesi düzeyinde, derin bir türev alma anlayışına ihtiyacımız olmayacak. Gene de, daha sonra karşılaşacağımız diğer uygulamalara zemin hazırlamak için kısa bir giriş sağlayacağız.
Bir
%matplotlib inline
from d2l import mxnet as d2l
from IPython import display
from mpl_toolkits import mplot3d
from mxnet import np, npx
npx.set_np()
x = np.arange(-2, 2, 0.01)
f = np.exp(-x**2)
d2l.set_figsize()
d2l.plt.plot(x, f, color='black')
d2l.plt.fill_between(x.tolist(), f.tolist())
d2l.plt.show()
#@tab pytorch
%matplotlib inline
from d2l import torch as d2l
from IPython import display
from mpl_toolkits import mplot3d
import torch
x = torch.arange(-2, 2, 0.01)
f = torch.exp(-x**2)
d2l.set_figsize()
d2l.plt.plot(x, f, color='black')
d2l.plt.fill_between(x.tolist(), f.tolist())
d2l.plt.show()
#@tab tensorflow
%matplotlib inline
from d2l import tensorflow as d2l
from IPython import display
from mpl_toolkits import mplot3d
import tensorflow as tf
x = tf.range(-2, 2, 0.01)
f = tf.exp(-x**2)
d2l.set_figsize()
d2l.plt.plot(x, f, color='black')
d2l.plt.fill_between(x.numpy(), f.numpy())
d2l.plt.show()
Çoğu durumda, bu alan sonsuz veya tanımsız olacaktır (
x = np.arange(-2, 2, 0.01)
f = np.exp(-x**2)
d2l.set_figsize()
d2l.plt.plot(x, f, color='black')
d2l.plt.fill_between(x.tolist()[50:250], f.tolist()[50:250])
d2l.plt.show()
#@tab pytorch
x = torch.arange(-2, 2, 0.01)
f = torch.exp(-x**2)
d2l.set_figsize()
d2l.plt.plot(x, f, color='black')
d2l.plt.fill_between(x.tolist()[50:250], f.tolist()[50:250])
d2l.plt.show()
#@tab tensorflow
x = tf.range(-2, 2, 0.01)
f = tf.exp(-x**2)
d2l.set_figsize()
d2l.plt.plot(x, f, color='black')
d2l.plt.fill_between(x.numpy()[50:250], f.numpy()[50:250])
d2l.plt.show()
Bu alanı aşağıdaki integral (tümlev) sembolü ile göstereceğiz:
İç değişken, bir
Bu tür integralleri nasıl yaklaşık olarak tahmin etmeye çalışabileceğimizin ve anlayabileceğimizin geleneksel bir yolu var:
epsilon = 0.05
a = 0
b = 2
x = np.arange(a, b, epsilon)
f = x / (1 + x**2)
approx = np.sum(epsilon*f)
true = np.log(2) / 2
d2l.set_figsize()
d2l.plt.bar(x.asnumpy(), f.asnumpy(), width=epsilon, align='edge')
d2l.plt.plot(x, f, color='black')
d2l.plt.ylim([0, 1])
d2l.plt.show()
f'approximation: {approx}, truth: {true}'
#@tab pytorch
epsilon = 0.05
a = 0
b = 2
x = torch.arange(a, b, epsilon)
f = x / (1 + x**2)
approx = torch.sum(epsilon*f)
true = torch.log(torch.tensor([5.])) / 2
d2l.set_figsize()
d2l.plt.bar(x, f, width=epsilon, align='edge')
d2l.plt.plot(x, f, color='black')
d2l.plt.ylim([0, 1])
d2l.plt.show()
f'approximation: {approx}, truth: {true}'
#@tab tensorflow
epsilon = 0.05
a = 0
b = 2
x = tf.range(a, b, epsilon)
f = x / (1 + x**2)
approx = tf.reduce_sum(epsilon*f)
true = tf.math.log(tf.constant([5.])) / 2
d2l.set_figsize()
d2l.plt.bar(x, f, width=epsilon, align='edge')
d2l.plt.plot(x, f, color='black')
d2l.plt.ylim([0, 1])
d2l.plt.show()
f'approximation: {approx}, truth: {true}'
Sorun şu ki, sayısal (numerik) olarak yapılabilse de, bu yaklaşımı analitik olarak sadece aşağıdaki gibi en basit işlevler için yapabiliriz.
Yukarıdaki koddaki örneğimizden biraz daha karmaşık bir şey, mesela:
böyle doğrudan bir yöntemle çözebileceğimizin ötesinde bir örnektir.
Bunun yerine farklı bir yaklaşım benimseyeceğiz. Alan kavramıyla sezgisel olarak çalışacağız ve integralleri bulmak için kullanılan ana hesaplama aracını öğreneceğiz: Kalkülüsün temel teoremi. Bu, integral alma (tümleme) çalışmamızın temeli olacaktır.
Integral alma teorisinin derinliklerine inmek için bir fonksiyon tanıtalım:
Bu işlev,
Bu, :numref:fig_area-subtract
içindeki gibi alanı en uzak uç noktaya kadar ölçebildiğimiz ve ardından yakın uç noktaya kadarki alanı çıkarabileceğimiz gerçeğinin matematiksel bir kodlamasıdır.
Dolayısıyla, herhangi bir aralıktaki integralin ne olduğunu
Bunun için bir deney yapalım. Kalkülüste sık sık yaptığımız gibi, değeri çok az değiştirdiğimizde ne olduğunu görelim. Yukarıdaki yorumdan biliyoruz ki
Bu bize, fonksiyonun küçük bir fonksiyon şeridinin altındaki alana göre değiştiğini söyler.
Bu, bir yaklaşıklama yaptığımız noktadır. Bunun gibi küçük bir alana bakarsak, bu alan, yüksekliği
Bununla birlikte, şimdi fark edebiliriz ki
Bu, kalkülüsün temel teoremidir. Bunu genişletilmiş biçimde şöyle yazabiliriz:
eq_ftc
Alan bulma kavramını alır (ki muhtemelen oldukça zordur) ve onu bir ifade türevine (çok daha anlaşılmış bir şey) indirger. Yapmamız gereken son bir yorum, bunun bize
Bu soyut olarak bir anlam ifade etmiyor gibi görünebilir, ancak bunun bizde integral hesaplamaya yepyeni bir bakış açısı kazandırdığını anlamak için biraz zaman ayıralım. Amacımız artık bir çeşit parçala ve topla işlemi yapmak ve alanı geri kurtarmayı denemek değil; bunun yerine sadece türevi sahip olduğumuz fonksiyon olan başka bir fonksiyon bulmamız gerekiyor! Bu inanılmaz bir olay çünkü artık pek çok zorlu integrali sadece :numref:sec_derivative_table
içindeki tabloyu ters çevirerek listeleyebiliriz. Örneğin, eq_ftc
, kullanarak şunu söyleyebiliriz:
Benzer şekilde,
Bu şekilde, türevsel hesaptan gelen fikirlerden özgürce yararlanarak bütün integral alma teorisini geliştirebiliriz. Her integral kuralı bu olgudan türetilir.
🏷️integral_example
Aynen türev almada olduğu gibi, integrallerin hesaplanmasını daha izlenebilir kılan bir dizi kural vardır. Aslında, türevsel hesabın her kuralı (çarpım kuralı, toplam kuralı ve zincir kuralı gibi), integral hesaplamada karşılık gelen bir kurala sahiptir (formül sırasıyla, parçalayarak integral alma, integralin doğrusallığı ve değişkenler değişimi). Bu bölümde, listeden tartışmasız en önemli olanı inceleyeceğiz: değişkenlerin değişimi formülü.
İlk olarak, kendisi bir integral olan bir fonksiyonumuz olduğunu varsayalım:
Diyelim ki,
Yukarıdaki gibi, temel teoremi, :eqref:eq_ftc
, kullanarak bunu integral alma ilgili bir ifadeye dönüştürebiliriz. Böylece:
Benzer şekilde, eq_ftc
, kullanarak
eq_change_var
Bu, değişkenlerin değişimi formülüdür.
Daha sezgisel bir türetme için, fig_rect-transform
içinde gösterildiği gibi ilkini
Bu bize şunu söyler:
Bu, tek bir küçük dikdörtgen için ifade edilen değişken değişimi formülüdür.
Tekrar düzenlersek:
Keskin gözlü okuyucular yukarıdaki hesaplamalarla ilgili tuhaf bir şey gözlemleyecekler. Yani, aşağıdaki gibi hesaplamalar
negatif sayılar üretebilirler. Alanlar hakkında düşünürken, negatif bir değer görmek garip olabilir ve bu nedenle bu gösterimin ne olduğunu araştırmaya değer.
Matematikçiler işaretli alanlar kavramını benimser. Bu kendini iki şekilde gösterir. İlk olarak, bazen sıfırdan küçük olan
Benzer şekilde, soldan sağa değil sağdan sola ilerleyen integraller de negatif alan olarak tanımlanır.
Standart alan (pozitif bir fonksiyonda soldan sağa) her zaman pozitiftir. Ters çevirerek elde edilen herhangi bir şey (örneğin, negatif bir sayının integralini elde etmek için
Bu tartışma size tanıdık geliyorsa, normaldir! :numref:sec_geometry-linear-algebraic-ops
içinde determinantın işaretli alanı nasıl aynı şekilde temsil ettiğini tartıştık.
Bazı durumlarda daha yüksek boyutlarda çalışmamız gerekecektir. Örneğin,
# Izgara oluştur ve işlevi hesapla
x, y = np.meshgrid(np.linspace(-2, 2, 101), np.linspace(-2, 2, 101),
indexing='ij')
z = np.exp(- x**2 - y**2)
# İşlevi çiz
ax = d2l.plt.figure().add_subplot(111, projection='3d')
ax.plot_wireframe(x.asnumpy(), y.asnumpy(), z.asnumpy())
d2l.plt.xlabel('x')
d2l.plt.ylabel('y')
d2l.plt.xticks([-2, -1, 0, 1, 2])
d2l.plt.yticks([-2, -1, 0, 1, 2])
d2l.set_figsize()
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
ax.set_zlim(0, 1)
ax.dist = 12
#@tab pytorch
# Izgara oluştur ve işlevi hesapla
x, y = torch.meshgrid(torch.linspace(-2, 2, 101), torch.linspace(-2, 2, 101))
z = torch.exp(- x**2 - y**2)
# İşlevi çiz
ax = d2l.plt.figure().add_subplot(111, projection='3d')
ax.plot_wireframe(x, y, z)
d2l.plt.xlabel('x')
d2l.plt.ylabel('y')
d2l.plt.xticks([-2, -1, 0, 1, 2])
d2l.plt.yticks([-2, -1, 0, 1, 2])
d2l.set_figsize()
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
ax.set_zlim(0, 1)
ax.dist = 12
#@tab tensorflow
# Izgara oluştur ve işlevi hesapla
x, y = tf.meshgrid(tf.linspace(-2., 2., 101), tf.linspace(-2., 2., 101))
z = tf.exp(- x**2 - y**2)
# İşlevi çiz
ax = d2l.plt.figure().add_subplot(111, projection='3d')
ax.plot_wireframe(x, y, z)
d2l.plt.xlabel('x')
d2l.plt.ylabel('y')
d2l.plt.xticks([-2, -1, 0, 1, 2])
d2l.plt.yticks([-2, -1, 0, 1, 2])
d2l.set_figsize()
ax.set_xlim(-2, 2)
ax.set_ylim(-2, 2)
ax.set_zlim(0, 1)
ax.dist = 12
Şöyle yazabiliriz:
Bu integrali hesaplamak istediğimizi varsayalım. Bizim iddiamız, bunu önce
Bunun neden olduğunu görelim.
Fonksiyonu
Problemi ayrıklaştırdığımızda, bu karelerdeki değerleri istediğimiz sırayla toplayabiliriz ve değerleri değiştirme konusunda endişelenmeyiz. Bu, :numref:fig_sum-order
şeklinde gösterilmektedir. Özellikle şunu söyleyebiliriz:
İç kısımdaki toplam, tam olarak integralin ayrıklaştırılmasıdır.
Son olarak, bu iki ifadeyi birleştirirsek şunu elde ettiğimize dikkat edin:
Böylece hepsini bir araya getirirsek, buna sahip oluruz:
Dikkat edin, bir kez ayrıklaştırıldı mı, yaptığımız tek şey, bir sayı listesi eklediğimiz sırayı yeniden düzenlemek oldu. Bu, burada hiçbir zorluk yokmuş gibi görünmesine neden olabilir, ancak bu sonuç (Fubini Teoremi olarak adlandırılır) her zaman doğru değildir! Makine öğrenmesi (sürekli fonksiyonlar) yapılırken karşılaşılan matematik türü için herhangi bir endişe yoktur, ancak başarısız olduğu durumlardan örnekler oluşturmak mümkündür (örneğin
İntegrali önce
Çoğu zaman, vektör gösterimine yoğunlaşacağız ve
Tek değişkenlerdeki gibi :eqref:eq_change_var
, daha yüksek boyutlu bir integral içindeki değişkenleri değiştirme yeteneği önemli bir araçtır. Sonucu türetme yapmadan özetleyelim.
Integral alma alanımızı yeniden parametrelendiren bir işleve ihtiyacımız var. Bunu
Bu durumda şunu söyleyebiliriz:
Yakından baktığımızda, bunun tek değişkenli zincir kuralına, :eqref:eq_change_var
, benzer olduğunu görüyoruz, ancak
Biraz çalışmayla, Jacobi matrisinin çok değişkenli bir fonksiyona, yani
Bunun ayrıntılarını doldurmak biraz çalışma gerektirir, bu yüzden şimdi net değilse endişelenmeyin. Daha sonra kullanacağımız bir örnek görelim. Bu integrali düşünün:
Bu integral ile doğrudan oynamak bizi hiçbir yere götürmez, ancak değişkenleri değiştirirsek, önemli ilerleme kaydedebiliriz.
ve
Böylece integral:
Burada son eşitlik, bölüm :numref:integral_example
içinde kullandığımız hesaplamanın aynısını izler.
Sürekli rastgele değişkenleri incelediğimizde, :numref:sec_random_variables
, bu integral ile tekrar karşılaşacağız.
- Integral alma teorisi, alanlar veya hacimler hakkındaki soruları yanıtlamamıza izin verir.
- Kalkülüsün temel teoremi, alanın türevinin bir noktaya kadar integrali alınan fonksiyonun değeri tarafından verildiği gözlemi sayesinde alanları hesaplamak için türevler hakkındaki bilgiden yararlanmamızı sağlar.
- Daha yüksek boyutlardaki integraller, tek değişkenli integralleri sırasıyla izleyerek hesaplanabilir.
-
$\int_1^2 \frac{1}{x} ;dx$ nedir? -
$\int_0^{\sqrt{\pi}}x\sin(x^2);dx$ ifadesini hesaplamak için değişken değişimi formülünü kullanınız. -
$\int_{[0,1]^2} xy ;dx;dy$ nedir? -
$\int_0^2\int_0^1xy(x^2-y^2)/(x^2+y^2)^3;dy;dx$ ve$\int_0^1\int_0^2f(x, y) = xy(x^2-y^2)/(x^2+y^2)^3;dx;dy$ hesaplamak için değişken değişimi formülünü kullanınız ve farkı görünüz.
:begin_tab:mxnet
Tartışmalar
:end_tab:
:begin_tab:pytorch
Tartışmalar
:end_tab:
:begin_tab:tensorflow
Tartışmalar
:end_tab: