4 Ağustos 2015 Salı

Kübik denklemlerin çözümü

En genel haliyle \begin{equation} Ax^{3}+Bx^{2}+Cx+D=0 \end{equation} şeklinde verilen denklemlere kübik denklemler diyeceğiz. Burada $A$, $B$, $C$ ve $D$ katsayılar, $x$ ise bilinmeyen olup, problemin çözümünde amaç bilinmeyeni katsayılar cinsinden (sadece kök almayı ve diğer aritmetik işlemleri kullanarak) ifade etmektir. Katsayılara aynı zamanda problemimizin parametreleri diyeceğiz ki, görünürde bunlar toplamda dört tanedir.

$A=0$ ise, o zaman problem ikinci dereceden (kuadratik) bir denkleme indirgenmiş olur ki, bu denklemlerin çözümü ortaöğretimde gösterilmektedir. Bu postada okurun ikinci dereceden denklemleri çözebildiğini varsayacağız ve genelliği kaybetmeden $A\ne 0$ kabul edeceğiz. $b := B/A$, $c := C/A$ ve $d := D/A$ tanımladığımızda (1) nolu denklem aşağıdaki forma kolayca getirilebilir. \begin{equation} x^{3}+bx^{2}+cx+d=0 \end{equation} Hem (1) hem de (2) nolu denklemler çözüldüklerinde aynı $x$ değer(ler)ini vereceklerdir. Ama (2) nolu denklem üç parametreye bağlı olduğu için, onu çalışmak daha avantajlıdır. (2) nolu denklemde en yüksek dereceli terimin katsayısı birdir. Böyle polinomlara literatürde monik polinomlar denir.

Şimdi $x =: y - b/3$ şeklinde yeni bir değişken tanımlayalım. $y$ bilinirse $x$ de kolayca bulunabilir. Bu tanımı (2) nolu denklemde yerine kor ve $y$ niceliğinin kuvvetlerine göre yeniden düzenlersek, o zaman \begin{equation} y^{3} + py + q = 0 \end{equation} denklemine ulaşıyoruz. Burada \begin{eqnarray} p &:=& - \frac{b^{2}}{3} + c \\ q &:=& \frac{2b^{3}}{27} - \frac{bc}{3} + d \end{eqnarray} olduklarını okur binom teoremini uygulayarak kolayca gösterebilir. Bakıldığında (3) nolu denklemin -hiç genellik kaybedilmeden- sadece iki parametreye bağlı olduğu görülecektir. Yola devam etmeden önce bu noktada bazı özel durumları incelememiz gerekiyor.

Özel durum 1: $q=0$. O zaman (3) nolu denklem $y^{3}+py=0$ halini alır ki, bu denklemi köklerinin $\{0,\pm \sqrt{-p} \}$ olduğu çok barizdir.

Özel durum 2: $p=0$. O zaman denklemimizin kökleri yine birin küpkökleri cinsinden kolayca bulunabilir. Aradığımız kökler $\{\sqrt[3]{-q}, \sqrt[3]{-q} \omega , \sqrt[3]{-q} \omega^{*}\}$ kümesindedir. Burada $\omega := \exp (2\pi i/ 3)$ denklemiyle tanımlanıyor. $\omega^{2}=\omega^{*}$ ve $\omega^{3}=1$ olduğunu gözleyiniz.

Genel durum: $p \ne 0$ ve $q \ne 0$. (1) nolu denklemde en genel haliyle dört parametreye bağlıymış gibi görülen kübik denklemlerin aslında sadece iki parametreye bağlı olduğunu (3) nolu denklemle gördük. Domuzdan kıl koparsak kar mantığına sahip haris bir cebirci acaba parametre sayısını ikiden bire indirebilir miyim diye düşünür. Ona yardımcı olalım, $y =: \sqrt{|p|} z$ denklemiyle yeni bir değişken daha tanımlayalım ve bu ifadeyi (3) nolu denklemde yerine koyalım. O zaman $z$ değişkeni için çalışmamız gerekli denklem \begin{equation} z^{3} + sz + r =0 \end{equation} halini alır. Burada $r := q/|p|^{3/2}$ ve $p/|p| =: s \in \{ \pm 1 \}$ oldukları kolayca görülebilir. Dolayısıyla en genel haliyle (6) nolu denklemde verilen kübik denklemler aslında sadece bir parametreye bağlıymış! ($s$ sadece bir işaret olduğu için, onu parametreden saymayacağız.)

Şimdiye kadar yaptığımız kaydırma ($x \to y$) ve skala ($y \to z$) dönüşümleri çok geneldir ve kübik denklemlere özgü değildir. Bundan sonra kübik denklemleri çözebilmek için Cardano'nun yöntemini uygulayacağız. Her ne kadar bir parametreli denklemleri çalışmak daha ucuz olsa da, mutlak değer ve işaret teferruatı ile uğraşmamak için biz (3) nolu denklemle yola devam edeceğiz. Cardano'nun yöntemi \begin{equation} y =: u+v \end{equation} şeklinde iki tane yardımcı değişken tanımıyla başlar. Bu ifadeyi (3) nolu denkleme kor ve yeniden düzenlersek aşağıdaki eşitliği elde ederiz. \begin{equation} u^{3}+v^{3} + (p+3uv)(u+v) + q = 0 \end{equation} $u$ ve $v$ değişkenlerinin tanımlanmasında iki tane serbestiyet derecesi var. Bunlardan birisi (7) nolu denklemle tayin edilmiş. Ötekini ise (8) nolu denklemi sadeleştirecek şekilde biz tayin edebiliriz. Şimdi $p+3uv=0$ ya da $v = -p/3u$ dersek, o zaman bize çözülüdüğünde $u$ niceliğini veren denklem ortaya çıkar. \begin{equation} u^{6} + q u^{3} - \frac{p^{3}}{27} = 0 \end{equation} Kübik denklemlerle uğraşacağız derken sekstik (altıncı dereceden) denklemlere daldık! (9) nolu denklem bize bunu söylüyor. Neyse ki $t := u^{3}$ tanımıyla aslında bu denklemin ikinci dereceden (kuadratik) denklemlere mahsus yöntemle çözülebileceğini gözlüyoruz. \begin{equation} u_{1}^{3} := \frac{-q + \sqrt{q^{2} + 4p^{3}/27}}{2} \ \ \ {\rm ve} \ \ \ u_{2}^{3} := \frac{-q - \sqrt{q^{2} + 4p^{3}/27}}{2} \end{equation} $u_{1}$ ve $u_{2}$ ifadelerine tekabül eden $v$ değerlerini kolayca hesaplayabiliriz. Okur $v_{1}^{3} = - 1/27u_{1}^{3} = u_{2}^{3}$ ve $v_{2}^{3} = - 1/27u_{2}^{3} = u_{1}^{3}$ olduğunu kolayca gösterebilir. Şimdi \begin{equation} U_{1} := \sqrt[3]{\frac{-q + \sqrt{q^{2} + 4p^{3}/27}}{2}} \ \ \ {\rm ve} \ \ \ U_{2} := \sqrt[3]{\frac{-q - \sqrt{q^{2} + 4p^{3}/27}}{2}} \end{equation} tanımlarsak, o zaman $u_{1}$ (ya da $v_{2}$) için çözümler $\{U_{1},U_{1}\omega,U_{1}\omega^{*}\}$ şeklinde olur. Benzer şekilde $u_{2}$ (ya da $v_{1}$) için çözümler de $\{U_{2},U_{2}\omega,U_{2}\omega^{*}\}$ şeklinde olmalıdır. Bizim (3) nolu denklemin köklerini bulmamız gerekiyor. Bunun için (7) nolu denklemi kullanacağız ama seçtiğimiz $u$ ve $v$ değerleri $uv = -p/3$ şartına uyacaklar. Aşağıdaki çözümlerin bu şarta uyduklarını kendiniz ispatlayınız. \begin{eqnarray} y_{1} &:=& U_{1} + U_{2} \\ y_{2} &:=& U_{1} \omega + U_{2} \omega^{*} \\ y_{3} &:=& U_{1} \omega^{*} + U_{2} \omega \end{eqnarray} $y$ değerleri bulunduğuna göre, filmi geriye sararak $x$ değerlerini de hesaplayabiliriz.

Katsayıları gerçel kübik denklemlerin kök tasnifi

(11) nolu denklemde kareköklerin gerçel olması için $q^{2} + 4p^{3}/27 \geq 0$ şartını gözleyiniz. Bu şart yeniden düzenlendiğinde $4p^{3}+27q^{2} \geq 0$ halini alır ve hem $U_{1}$ hem de $U_{2}$ değerleri gerçel olurlar. $\Delta := 4p^{3}+27q^{2}$ tanımlayalım. Aşağıdaki maddelerin ispatını okura bırakıyoruz.

  • $\Delta > 0$: $y_{1}$ gerçel ama $y_{3} = y_{2}^{*}$ olacak şekilde diğer iki kök karmaşık.
  • $\Delta = 0$: Her üç kök de gerçel ve (en az) ikisi çakışık. $y_{1}=2U_{1}$ ve $y_{2}=y_{3}=-U_{1}$.
  • $\Delta < 0$: Her üç kök de gerçel.
$\Delta <0$ durumunda gerçel kökler hesaplanırken mutlaka karmaşık sayıların kullanılması gerektiğini görebiliyor musunuz? Buna İngilizce literatürde Gerçel sayılara giden yol, karmaşık sayılardan geçer. deniliyor.

Ödev: Gerçel köklerin pozitiflik ve negatiflik durumlarını da siz inceleyiniz.

Katsayıları gerçel kübik denklemlerin köklerini hesaplamak için C codu

Aşağıdaki cardano adlı C dilinde yazılmış fonksiyon burada yaptığımız çalışmaları özetliyor. cardano fonksiyonunu pürüzsüz çalıştırabilmek amacıyla kendimiz ayrıca küpkök ve ters trigonometrik fonksiyonlar için küçük modifikasyonlara gerek duyduk. C dilindeki math.h kütüphanesi bu kodu çalıştırmak için gereklidir.

void cardano(double a, double b, double c, double d, int *nr, double *x) /* * Kubik denklem ax^3+bx^2+cx+d=0 formunda ve a kesinlikle 0 degil! * Fonksiyon calistiginda cikti olarak * *nr: gercel koklerin adedini * x[0..2]: gercel koklerin sayisal degerlerini * geri doner. */ { double twopi = 2.0*3.14159265358979323846; double p, q, disc, u, v, r, ct, st, theta; b = b/a; c = c/a; d = d/a; p = c - b*b/3.0; q = 2.0*b*b*b/27.0 - b*c/3.0 + d; disc = p*p*p/27.0 + q*q/4.0; if(disc > 0.0){ *nr = 1; disc = sqrt(disc); u = cuberoot(-0.5*q + disc); v = cuberoot(-0.5*q - disc); x[0] = u + v - b/3.0; } else if(disc == 0.0){ *nr = 2; disc = cuberoot(-0.5*q); x[0] = 2.0*disc - b/3.0; x[1] = -disc - b/3.0; } else { *nr = 3; r = sqrt(-p*p*p/27.0); ct = -0.5*q/r; st = sqrt(-disc)/r; theta = angle(ct,st); r = 2.0*sqrt(-p/3.0); x[0] = r*cos(theta/3.0) - b/3.0; x[1] = r*cos((theta+twopi)/3.0) - b/3.0; x[2] = r*cos((theta-twopi)/3.0) - b/3.0; } } double cuberoot(double x) /* * math.h kutuphanesindeki pow kupkokleri hesaplarken bogulma tehlikesi geciriyor... */ { double ans = pow(fabs(x),1.0/3.0); if(x < 0.0) ans = -ans; return(ans); } double angle(const double c, const double s) /* * c: acinin kosinusu * s: acinin sinusu * cikti: acinin radyan biriminde degeri. */ { double pi = 3.14159265358979323846; if(s >= 0.0) return(acos(c)); else return(2.0*pi-acos(c)); }

Hiç yorum yok:

Yorum Gönder