Aşağıdaki ifadeyi ele alalım:
Burada üsteller sonsuza kadar gidiyor. Bu “kuvvet kulesi” ifadenin sonlu bir değeri var mıdır?
Bu değere diyelim. Kule sonsuz olduğu için bir eksik bir fazla farketmez, o zaman bu değeri için şu eşitlik geçerlidir:
Başka bir deyişle, öyle bir bulalım ki, ‘nin ‘inci kuvveti ‘e eşit olsun. Bu özel durumda, deneme yanılma ile bir çözüm bulabiliriz.
Bunun bir çözümü daha var:
Yani, baştaki ifadenin değeri hem 2 hem 4 olabilir. Ama hangisi? İkisi birden olamaz.
Sayısal deneme yapalım. Kulenin yüksekliğini sonsuz değil de 100 tane yaparak makine hatası içinde değerin 2 olduğunu görüyoruz.
from math import sqrt a = sqrt(2) for i in range(100): a = sqrt(2)**a print(a) 2.0000000000000004
Aynı ifadenin 4 çıkmasını sağlayacak bir bakış açısı var mıdır? Bilemiyorum. Bu sadece kullandığım yöntemin bir yan etkisi olabilir.
Şimdi bu problemi biraz daha genelleştirelim. Verilen bir pozitif sayısı için
ifadesinin ne olduğunu bulmaya çalışalım.
Önceki gibi bunun çözümünün eşitliğini sağladığını görebiliriz. Sorumuz, verilen bir için bu eşitliğin çözümü var mı, varsa nedir?
Bir grafik çizelim. doğrusu ile, farklı ‘lar için eğrilerinin kesiştiği yerler bu eşitliğin çözümüdür.
Görüyoruz ki, ve daha büyük değerler için bir çözüm yok. Başka bir deyişle,
ifadesi sonsuz. Buna karşılık, için ve olarak iki çözüm olduğunu grafikte görüyoruz.
Çözümleri bulmak için Newton-Raphson yöntemini kullanalım. Bu, verilen bir fonksiyonunun köklerini (sıfır olduğu yerleri) bulmak için kullanılan iteratif bir yöntem. İlk tahmin olarak kullanırsak, Newton yöntemi ile bir sonraki tahminimiz
formülüyle bulunur. Bir sonraki adım için yerine koyar, ve gerektiği kadar tekrarlarız.
Çözmek istediğimiz denklem olduğuna göre, fonksiyonunun kökleri bu denklemin çözümlerini verecek.Bunun türevi de olur. Bunları kullanarak Newton-Raphson yöntemi çabucak bize cevabı verir.
from math import sqrt, log def f(x): return a**x - x def df(x): return log(a)*a**x - 1 a = sqrt(2) x0 = 0 # ilk tahmin for i in range(10): # 10 iterasyon x0 = x0 - f(x0)/df(x0) print(x0) 1.5303942190345023 1.942129750748319 1.9987620189493733 1.999999400838403 1.9999999999998606 2.000000000000001 2.000000000000001 2.000000000000001 2.000000000000001 2.000000000000001
Peki ya diğer çözüm, yani 4? Onu elde etmek için çözümünün “çekim havzasından” çıkıp başka bir yerden başlamamız gerekir.
x0 = 5 for i in range(10): x0 = x0 - f(x0)/df(x0) print(x0) 4.31614460012233 4.047251399507646 4.0013251862721955 4.00000109062139 4.000000000000737 3.999999999999997 3.999999999999997 3.999999999999997 3.999999999999997 3.999999999999997
Merak ettiğim son bir şey kaldı: Bir çözüm olabilmesi için ‘nın alabileceği en yüksek değer nedir? Yukarıdaki grafikten bunun 1.4 ve 1.5 arasında bir yerde olduğunu biliyoruz. Analitik bir çözüm bulabilir miyiz?
Tam eşik değerdeki için fonksiyonunun tek kökü olacaktır, yani yatay eksene teğet olacaktır. Bu teğet noktası aynı zamanda minimum olacaktır (yoksa tek kök olmazdı). O zaman, çözüm noktası şunları sağlamalı:
(1)
(2)
(1) bize şunları verir:
(1a)
(1b)
(1b) sadece (1a)’nın iki tarafının logaritmasının alınmasıyla elde edildi. Bunları (2)’ye yerleştirirsek elde ederiz. Yani, eşik değerdeki çözüm olur. Bu çözümü (1b)’de yerine koyarak, için eşik değerini elde ederiz:
.
Bu değer yaklaşık 1.4447’dir; grafikte tahmin ettiğimiz aralığın içinde.
Sonuç olarak, ifadesi, ise sonlu bir değere sahiptir, daha büyük için sonsuzdur.
Bir yan ürün olarak da şu denkliği bulmuş olduk:
Kardeşi gibi, sayısının da her yerde karşımıza çıkması ne hoş.
Daha zengin matematiksel ayrıntılar için Luca Moroni’nin makalesine bakabilirsiniz. Bu makaledeki daha ayrıntılı analizden, gerekli aralığın olduğunu öğreniyoruz.