3. Dereceden Denklemin Köklerini Bulma

3. dereceden bir denklemin bir tane reel iki tane de imajiner kökü bulunur. Python ile bu reel kökü bulmak için şu fonksiyonu yazabiliriz:

def denklem_koku(a,b,c,d):
	return -b / (3.0 * a) - (2.0 ** (1.0 / 3.0) * (-b ** 2.0 + 3.0 * a * c)) / (3.0 * a * (-2.0 * b ** 3.0 + 9.0 * a * b * c - 27.0 * a ** 2.0 * d + math.sqrt(4.0 * (-b ** 2.0 + 3.0 * a * c) ** 3.0 + (-2.0 * b ** 3.0 + 9.0 * a * b * c - 27.0 * a ** 2.0 * d) ** 2.0)) ** (1.0 / 3.0)) + (-2.0 * b ** 3.0 + 9.0 * a * b * c - 27.0 * a ** 2.0 * d + math.sqrt(4.0 * (-b ** 2.0 + 3.0 * a * c) ** 3.0 + (-2.0 * b ** 3.0 + 9.0 * a * b * c - 27.0 * a ** 2.0 * d) ** 2.0)) ** (1.0 / 3.0) / (3.0 * 2.0 ** (1.0 / 3.0) * a)

İmajiner kökler için i karmaşık sayısını da eklersek şöyle olur (ASCII formatında):

x1 = -b/(3*a) + ((1 + i*math.sqrt[3])*(-b^2 + 3*a*c))/(3*2^(2/3)*a*(-2*b^3 + 9*a*b*c – 27*a^2*d + math.sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c – 27*a^2*d)^2])^(1/3)) – (1 – i*math.sqrt[3])*(-2*b^3 + 9*a*b*c – 27*a^2*d + math.sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c – 27*a^2*d)^2])^(1/3)/(6*2^(1/3)*a)

x2 = -b/(3*a) + ((1 – i*math.sqrt[3])*(-b^2 + 3*a*c))/(3*2^(2/3)*a*(-2*b^3 + 9*a*b*c – 27*a^2*d + math.sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c – 27*a^2*d)^2])^(1/3)) – (1 + i*math.sqrt[3])*(-2*b^3 + 9*a*b*c – 27*a^2*d + math.sqrt[4*(-b^2 + 3*a*c)^3 + (-2*b^3 + 9*a*b*c – 27*a^2*d)^2])^(1/3)/(6*2^(1/3)*a)

Kaynak: http://www.josechu.com

One comment

  1. wurt says:

    güzel site,teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *