İkinci Dereceden Denklemin Köklerini Bulan Program

İkinci Dereceden Denklemin Köklerini Bulan Program için ilk olarak ikinci dereceden bir bilinmeyenli denklemin ne olduğunu bilmek gerekir. AX^2 + BX + C = 0 şeklindeki bir denklem düşünelim. Burada X bilinmeyen A, B ve C denklemin katsayıları olsun. Denklemde bulunan tek bilinmeyen olan X’in en yüksek üssü olan 2, denklemin derecesidir. Yani bundan dolayı bu denklem ikinci dereceden bir denklemdir ve bir bilinmeyeni (X) vardır. İkinci dereceden bir bilinmeyenli denklemin köklerini bulmak demek A, B ve C katsayılarının bilinen bir değeri varken bu durumda X’in ne olacağını bulmak demektir. Bu durumu bir örnekle açıklayalım:

İkinci Dereceden Denklemin Köklerini Formül İle Hesaplama

A=1

B=3

C=2

olsun. Bu durumda denklemimiz

1*X^2 + 3*X + 2 = 0

olur. Aslında sorunumuz şudur. X hangi değeri alırsa bu denklem sağlanmış olur? Bu işi formülsüz yapmaya çalışabilirsiniz. Kafadan tahmini bir sayı verirsiniz. Olmadıysa yeni bir sayı verirsiniz X değişkenine… Tabi tutturamazsanız bu böyle devam eder 🙂 Bunun yerine kainattaki herşeyin sistemli ve planlı olduğundan hareketle, bu işin de bir formülü vardır diyerek X’i bulmamızı sağlayan formülleri kullanabiliriz. Formül deyince korkmayın. Çok da zor değil. Öncelikle ∆ (delta) değerini hesaplamak gerekir.

∆ = B^2 – 4*A*C

formülünü denklemimiz için kullanırsak

∆ = 3^2 – 4*1*2 = 9 – 8 = 1

bulunur. Burada şu kontrolü yapmak çok önemlidir.

Eğer ∆ > 0 ise 2 kök vardır. Yani X yerine yerleştirdiğimizde denklemi sağlayan 2 değer vardır.

Eğer ∆ = 0 ise tek kök vardır. Yani X yerine yerleştirdiğimizde denklemi sağlayan tek değer vardır.

Eğer ∆ < 0 ise gerçek kök yoktur. Yani X yerine yerleştirdiğimizde denklemi sağlayan bir gerçek sayı yoktur. Karmaşık sayılar kümesinde (i’li sayılar) kök bulunur. Tabi bu bizim konumuz değil.

Bizim örneğimizde ∆ > 0 olduğundan 2 kök vardır. Bu iki kökü hesaplayalım. X1 birinci kök, X2 ikinci kök olacak şekilde

X1= (- B – karekök(∆)) / (2*A) = (-3 – karekök(1)) / (2*1) = -2

X2= (- B + karekök(∆)) / (2*A) = (-3 + karekök(1)) / (2*1) = -1

Bu demek oluyor ki ikinci dereceden bir bilinmeyenli denklemimizde X yerine -2 veya -1 yerleştirdiğimizde bu denklem sağlanıyor. Bunu şu şekilde gösterebiliriz. Önce denklemimizde X yerine -2 yerleştirelim.

X^2 + 3*X + 2 = 0   =>  (-2)^2 + 3*-2 + 2 = 0    =>    4 + (-6) + 2 = 0   =>   6 – 6 = 0

X1 = -2 kökü için denklem gerçekten de sağlanmış oldu. X2= -1 kökü için bu denemeyi yapalım.

X^2 + 3*X + 2 = 0   =>  (-1)^2 + 3*-1 + 2 = 0    =>    1 + (-3) + 2 = 0   =>   3 – 3 = 0

Gördüğünüz gibi formülle bulduğumuz köklerin ikisi de denklemimizi sağladı. Şimdi gelelim konu ile ilgili PHP programını yazmaya.

İkinci Dereceden Denklemin Köklerini Bulan Program

<?php

$A=1;$B=3;$C=2; // Burada katsayılarımızı belirledik.

$Delta=$B*$B – 4*$A*$C; // Burada Deltayı hesapladık.

if($Delta>0){ // Eğer Delta sıfırdan büyükse iki kökü hesapla.

echo “İki kök vardır<br>”;

$X1=(-$B-sqrt($Delta))/(2*$A);

$X2=(-$B+sqrt($Delta))/(2*$A);

echo “X1=$X1 – X2=$X2”;

}

if($Delta==0){ // Eğer Delta sıfıra eşitse tek kökü hesapla

echo “Tek kök vardır<br>”;

$X=(-$B)/(2*$A);

echo “X=$X”;

}

if($Delta<0){ // Eğer Delta sıfırdan küçükse gerçek kök yoktur mesajı görüntüle.

echo “Gerçek kök yoktur.”;

}

?>

İkinci Dereceden Denklemin Köklerini Bulan Program görüldüğü gibi çok da zor değilmiş. Önce katsayılar belirleniyor. Daha sonra bu katsayılara göre ∆ (delta) hesaplanıyor. Sonra da bir karar yapısına (if yapısı) bağlı olarak ∆ (delta)’nın sıfırdan büyük mü, eşit mi yoksa küçük mü olduğuna göre hesaplama yapılıyor. İşte bu kadar.

Eğer başka hesaplamalar için diğer PHP fonksiyonlarına ihtiyaç duyarsanız http://php.net/manual/en/ref.math.php adresinden faydalanabilirsiniz.

Share This Post On

3 Comments

  1. Şöyle programları görmek beni sevindiriyor.Gün gelecek otomatik sistem ile sorular belli başlı kalıplarla tanımlayarak çözebileceğiz programlar ile.Bu tarz yazıların devamını bekliyorum..

    Post a Reply
  2. Bu gidişle hiç bir konuda insanlara gerek kalmayacak 🙂

    Post a Reply

Submit a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir