En genel haliyle Ax3+Bx2+Cx+D=0 ş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≠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.
x3+bx2+cx+d=0
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 y3+py+q=0 denklemine ulaşıyoruz. Burada p:=−b23+cq:=2b327−bc3+d 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 y3+py=0 halini alır ki, bu denklemi köklerinin {0,±√−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 {3√−q,3√−qω,3√−qω∗} kümesindedir. Burada ω:=exp(2πi/3) denklemiyle tanımlanıyor. ω2=ω∗ ve ω3=1 olduğunu gözleyiniz.
Genel durum: p≠0 ve q≠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=:√|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 z3+sz+r=0 halini alır. Burada r:=q/|p|3/2 ve p/|p|=:s∈{±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→y) ve skala (y→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 y=:u+v ş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. u3+v3+(p+3uv)(u+v)+q=0 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. u6+qu3−p327=0 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:=u3 tanımıyla aslında bu denklemin ikinci dereceden (kuadratik) denklemlere mahsus yöntemle çözülebileceğini gözlüyoruz. u31:=−q+√q2+4p3/272 ve u32:=−q−√q2+4p3/272 u1 ve u2 ifadelerine tekabül eden v değerlerini kolayca hesaplayabiliriz. Okur v31=−1/27u31=u32 ve v32=−1/27u32=u31 olduğunu kolayca gösterebilir. Şimdi U1:=3√−q+√q2+4p3/272 ve U2:=3√−q−√q2+4p3/272 tanımlarsak, o zaman u1 (ya da v2) için çözümler {U1,U1ω,U1ω∗} şeklinde olur. Benzer şekilde u2 (ya da v1) için çözümler de {U2,U2ω,U2ω∗} ş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. y1:=U1+U2y2:=U1ω+U2ω∗y3:=U1ω∗+U2ω 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 q2+4p3/27≥0 şartını gözleyiniz. Bu şart yeniden düzenlendiğinde 4p3+27q2≥0 halini alır ve hem U1 hem de U2 değerleri gerçel olurlar. Δ:=4p3+27q2 tanımlayalım. Aşağıdaki maddelerin ispatını okura bırakıyoruz.
- Δ>0: y1 gerçel ama y3=y∗2 olacak şekilde diğer iki kök karmaşık.
- Δ=0: Her üç kök de gerçel ve (en az) ikisi çakışık. y1=2U1 ve y2=y3=−U1.
- Δ<0: Her üç kök de gerçel.
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