Równanie sześcienne

Wykres funkcji sześciennej postaci , która ma 3 pierwiastki rzeczywiste (są nimi współrzędne punktów przecięcia wykresu osią x).

Równanie sześcienne lub trzeciego stopniarównanie algebraiczne postaci gdzie Jeżeli współczynniki równania są liczbami rzeczywistymi, to równanie ma trzy pierwiastki, w tym co najmniej jeden pierwiastek rzeczywisty.

Jeżeli współczynniki te są liczbami zespolonymi, to równanie to ma trzy pierwiastki – na ogół są zespolone.

Rys historyczny

Strona tytułowa Ars Magna

Równania sześcienne zostały rozwiązane w pierwszej połowie XVI wieku. W tamtym czasie w Europie nie używano jeszcze liczb ujemnych i każde równanie zapisywano tak aby wszystkie współczynniki były dodatnie. Rozważano więc szereg różnych typów równań trzeciego stopnia. Matematycy wiedzieli jednak, że rozwiązanie ogólnego równania trzeciego stopnia może być zredukowane do rozwiązania równania:

gdzie

Włoski matematyk Scipione del Ferro podał metodę rozwiązania jednego z tych typów, a prawdopodobnie też i drugiego. Nie rozgłaszał on swoich odkryć i przekazał on swoją metodę jedynie paru osobom, np. jego student Fior wiedział, jak rozwiązać równanie pierwszego typu. Del Ferro zapisywał wszystkie swoje odkrycia w notatniku, który po jego śmierci przeszedł w posiadanie Hannibala Navego, zięcia del Ferro. (Nave był również matematykiem i po śmierci teścia w 1526 r. przejął jego posadę na Uniwersytecie Bolońskim).

Niezależnie (ale i później) równania te były rozwiązane przez Niccolò Tartaglię. Potrafił on rozwiązać niektóre typy równań, kiedy w 1535 zaaranżowano mecz matematyczny pomiędzy Fiorem a Tartaglią. W czasie tej debaty każda ze stron podała drugiej 30 równań do rozwiązania. Podczas gdy zadania przygotowane przez Tartaglię były bardzo różnorodne, te podane przez Fiora dotyczyły tylko jedynego typu równań, które Fior potrafił rozwiązać. Rankiem 13 lutego 1535 Tartaglia odkrył sposób na rozwiązywanie tego typu równań i mecz wygrał. Swojej metody rozwiązywania równań Tartaglia nie chciał jednak ogłosić.

Girolamo Cardano uprosił Tartaglię w 1539 r. o wyjawienie metody rozwiązywania równań sześciennych, w zamian zobowiązując się do dochowania tajemnicy i nieujawniania metody. W 1540 r., Lodovico Ferrari, asystent Cardana, odkrył metodę redukcji równań czwartego stopnia do równań sześciennych. Razem z metodą rozwiązywania tych ostatnich pozwalało to rozwiązać wszystkie typy równań stopnia 4, jednak odkrycie to nie mogło zostać opublikowane ze względu na obietnicę daną Tartaglii.

W 1543 r. Cardano i Ferrari odwiedzili Navego, zięcia del Ferro, w Bolonii i dowiedzieli się od niego, że to del Ferro był pierwszym matematykiem, który rozwiązał równania trzeciego stopnia. Cardano uznał, że obietnica dana Tartaglii nie obowiązuje go więcej i opublikował metodę rozwiązywania równań 3. i 4. stopnia w swoim dziele Ars Magna w 1545.

Równania sześcienne znalazły zastosowanie m.in. w fizyce i chemii, np. w termodynamice. Równanie van der Waalsa jest równaniem sześciennym ze względu na objętość opisywanego gazu.

Pierwiastki równania sześciennego

Sprowadzenie do postaci kanonicznej

Aby wyznaczyć pierwiastki równania sześciennego

(1)

równanie to sprowadza się do tak zwanej postaci kanonicznej


(2)

gdzie

Postać kanoniczną uzyskuje się stosując do równania wyjściowego podstawienie:

Po znalezieniu rozwiązań równania kanonicznego (2) rozwiązania pierwotnego równania (1) znajduje się z ostatniego wzoru zamieszczonego powyżej.

Rozwiązania równania kanonicznego

Aby wyznaczyć pierwistki równania kanonicznego (2), oblicza się tzw. wyróżnik

Zależnie od znaku wyróżnika są 3 możliwe przypadki.

Przypadek 1  

Oblicza się

Równanie (2) ma pierwiastek rzeczywisty

oraz dwa pierwiastki zespolone, wzajemnie sprzężone

Przypadek 2

2.1 Gdy , to równanie (2) ma pierwiastek rzeczywisty podwójny i pierwiastek rzeczywisty pojedynczy:

2.2 Gdy , to równanie (2) ma jeden pierwiastek rzeczywisty potrójny:

 
Przypadek 3  

Równanie (2) ma trzy różne pierwiastki rzeczywiste:

gdzie:

Kod programu

Poniżej podano przykład kodu w języku Python, znajdujący pierwiastki równania sześciennego wg wzorów wyżej podanych. Program można testować, korzystając np. z darmowego notatnika colab google online.

W programie obliczane są pierwiastki dla 4 zestawów danych (tj. dane są współczynniki a,b, c, d równania sześciennego) i rysowane są wykresy funkcji sześciennych.

import numpy as np, matplotlib.pyplot as plt, cmath

# ----------------------------------------------------------------------------#
#    GłóWNA FUNKCJA, OBLICZAJĄCA PIERWIASTKI RÓWNANIA SZEŚCIENNEGO            #
# ----------------------------------------------------------------------------#

def solve_cubic(a, b, c, d):
    b, c, d = b / a, c / a, d / a
    p = c - b**2 / 3
    q = 2 * b**3 / 27 - b * c / 3 + d
    D = (q / 2)**2 + (p / 3)**3
    if D > 0:
        u = (-q / 2 + cmath.sqrt(D))**(1/3)
        v = (-q / 2 - cmath.sqrt(D))**(1/3)
        y1 = u + v
        y2 = -(u + v) / 2 + (u - v) * cmath.sqrt(3) / 2 * 1j
        y3 = -(u + v) / 2 - (u - v) * cmath.sqrt(3) / 2 * 1j
        roots = [y1 - b / 3, y2 - b / 3, y3 - b / 3]
    elif D == 0:
        u = (-q / 2)**(1/3)
        roots = [2*u - b / 3, -u - b / 3, -u - b / 3]
    else:
        r = cmath.sqrt(-(p / 3)**3)
        theta = cmath.acos(-q / (2 * r))
        r = r**(1/3)
        y1 = 2 * r * cmath.cos(theta / 3)
        y2 = 2 * r * cmath.cos((theta + 2 * cmath.pi) / 3)
        y3 = 2 * r * cmath.cos((theta + 4 * cmath.pi) / 3)
        roots = [y1 - b / 3, y2 - b / 3, y3 - b / 3]
    return roots, D

# ----------------------------------------------------------------------------#
# Zestaw współczynników a, b, c, d równań sześciennych - różne przypadki;
#        można dopisać własne współczynniki równania
# ----------------------------------------------------------------------------#

coefficients_list = [
  (1, -6, 11, -6), # D < 0: f(x)=x³-6x²+11x-6=(x-1)(x-2)(x-3) - trzy pierwiastki pojedyncze
  (1, -4,  5, -2), # D = 0: f(x)=x³-4x²+5x-2 =(x-1)²(x-2)- pierwiastki podwójny i pojedynczy
  (1, -3,  3, -1), # D = 0: f(x)=x³-3x²+3x-1 =(x-1)³ - pierwiastek potrójny
  (1,  0,  0, -1), # D > 0: f(x)=x³-1 =(x-1)(x²+x+1) - pierwiastek pojedynczy i dwa zespolone
]

# Funkcja do określenia znaku
def znak(w):
    return "+" if w > 0 else "-"

# Przechodzimy przez każdy zestaw współczynników
for coeffs in coefficients_list:
    a, b, c, d = coeffs
    roots, D = solve_cubic(a, b, c, d)
   
    # Rysujemy wykres funkcji
    x = np.linspace(-1, 4, 800)
    y = a*x**3 + b*x**2 + c*x + d
    plt.plot(x, y, 'b-')
    
    # Rysujemy rzeczywiste pierwiastki
    real_roots = sorted([root.real for root in roots if abs(root.imag) < 1e-5])
    plt.plot(real_roots, [a*r**3 + b*r**2 + c*r + d for r in real_roots], 'ro')

    # Dodajemy etykiety do pierwiastków
    for root in real_roots:
        plt.text(root, a*root**3 + b*root**2 + c*root + d + 0.5, f'{root:.5f}', verticalalignment='bottom', horizontalalignment='center')

    plt.axhline(0, color='gray', linestyle='-')
    plt.axvline(0, color='gray', linestyle='-')
    plt.xlabel('x')
    plt.ylabel('f(x)')
    plt.title(f'Wykres funkcji f(x)={a}{znak(b)} {abs(b)}{znak(c)} {abs(c)}x {znak(d)} {abs(d)}', pad=20)
    plt.show()

    # Wypisujemy wartości pierwiastków
    print("Delta =", D)
   
    formatted_roots = [f"{root.real:.5f} {znak(root.imag)}{abs(root.imag):.5f}*j" if abs(root.imag) > 1e-5 else f"{root.real:.5f}" for root in roots]

    # Usuwamy nawiasy i apostrofy z wydruku
    print("Pierwiastki:", ", ".join(formatted_roots))
    print(" ")
    print("--------------------------------------------------------------------------")

Uzasadnienie wzorów prowadzących do postaci kanonicznej

Dzieląc obie strony równania (1) przez otrzymuje się

Stosując podstawienie otrzymuje się

Po wymnożeniu, uproszczeniu i poszeregowaniu według potęg otrzymuje się

Wyraz z kwadratem znika i otrzymuje się:

Stosując podstawienia:

otrzymuje się równanie w postaci kanonicznej (2).

Sprowadzenie do postaci kanonicznej łatwo wykonywać, stosując schemat Hornera. Ponieważ , więc poszukiwanie współczynników odpowiedniego wielomianu z to faktycznie rozkładanie wielomianu względem potęg dwumianu

Uzasadnienie wzorów na rozwiązania równania kanonicznego

Jeśli znajdzie się jeden pierwiastek równania

(2)

to na mocy tzw. twierdzenia Bézouta można podzielić wielomian przez redukując równanie sześcienne do równania kwadratowego. Rozwiązując równanie kwadratowe można znaleźć pozostałe rozwiązania równania (2).

Poniżej przedstawiono metodę znajdowania jednego pierwiastka równania sześciennego, a dalej bardziej szczegółowo opisano sposób na znajdowanie wszystkich rozwiązań tego równania.

Jak znaleźć jeden pierwiastek

Rozważamy równanie kanoniczne

(2)

(a) Jeśli (a jest tak, gdy ), to mamy natychmiast rozwiązanie:

(b) Jeżeli to wprowadzamy dwie zmienne pomocnicze takie że: Wówczas

(3)

Po uporządkowaniu z (3) otrzymujemy

(4)

Zauważamy, że jeśli

oraz
(5)

(a ), to spełnia równanie (4) wtedy i tylko wtedy, gdy spełnia on równanie (2). Rozwiązując układ równań (5), otrzymujemy:

oraz

Stąd

Po pomnożeniu przez otrzymujemy

Podstawiając za zmienną pomocniczą otrzymujemy równanie kwadratowe:

(6)

Równanie (6) ma pierwiastek (możliwe że zespolony):

Następnie wybieramy liczbę taką, że Kładziemy   i zauważamy, że spełniają równania (5). Jeśli więc położymy

to liczby będą spełniać równanie (4), czyli jest pierwiastkiem równania (2).

Wzory Cardana

Wyprowadzone zostaną tu wzory na pozostałe dwa pierwiastki równania (2). Niech będą pierwiastkami 3. stopnia z jedynki, tzn.

   

Tak jak wcześniej, niech będzie pierwiastkiem równania (6):

Ustalmy liczby takie, że

  oraz  (zob. drugą równość z (5)).

Zauważmy, że

Zatem dla pewnego mamy, że

Niech będzie takie, że i połóżmy

Wówczas liczby spełniają równania (5). Niech

    oraz  

Uzasadnienie: gdy weźmiemy z indeksem 1, to pomnożenie dodaje 1/3 pełnego kąta, pomnożenie przez kwadrat dodaje 2/3 pełnego kąta. Równie dobrze moglibyśmy brać dodając 2/3 pełnego kąta i dla kwadratu 4/3 = 1/3 pełnego kąta, natomiast nie można brać = 1.

(Powyższe wzory, po wykonaniu w nich podstawień stosownych formuł na nazywane są wzorami Cardana[1]. Są one współczesnym uogólnieniem metody opisanej przez Girolama Cardana w Ars Magna.)

Wykażemy, że liczby są wszystkimi rozwiązaniami równania (2).

Zauważmy najpierw, że więc

(7)

Mamy też

(8)

(przypomnijmy, że oraz patrz (5)). Także

(9)

(tu również korzystamy z równań (5)). Używając równań (7)-(9), otrzymujemy

Stąd możemy wywnioskować, że są wszystkimi pierwiastkami równania (2).

Powyższe wzory są słuszne także dla równań o współczynnikach zespolonych.

Przykłady obliczania pierwiastków

1. Równanie o współczynnikach rzeczywistych

Dane jest równanie:

Aby znaleźć pierwiastki, przechodzimy do formy obliczając

= –4,3333, q=2,592592,
= –1,2962 + 1,1547*i ma 3 pierwiastki: 0,8333+0,866*i, –1,16666+0,2886i, 0,3333-1,1547i,
niech będzie pierwszym pierwiastkiem.
ma trzy pierwiastki: 0,8333–0,8660i, 0,3333+1,1547, –1,166666–0,28867i,

(w tym przypadku pierwiastki są sprzężone, co pozwoli na eliminację części urojonej)

niech będzie ostatnim pierwiastkiem
= –0,5 –0,866i = stąd m=2, więc n=1
= 0,8333, –0,8666

I ostatecznie ze wzoru otrzymuje się pierwiastki:

2. Równanie o współczynnikach zespolonych

Dane jest równanie:

Obliczamy:

p = 0,83431 + 0,7357·i, q = 2,09853 – 0,00568·i.

We wzorze na występuje pierwiastek dający dwa rozwiązania, bierzemy jedno = –0,01360 + 0,02031·i.

ma 3 pierwiastki:
0,218141 + 0,191450·i, –0,27487 + 0,0931·i, 0,05673 – 0,284641·i.

Wybieramy dla pierwszy pierwiastek = 0,218141 + 0,191450·i.

= –2,08492 –0,014632·i, ma trzy pierwiastki:
0,641345 – 1,1048·i, 0,636169 + 1,107854·i, –1,277515 – 0,0029885·i.

Wybieramy dla na przykład ostatni pierwiastek = –1,277515 – 0,0029885·i.

= –0,278106 – 0,245233·i jako m wybieramy 0 bo = 1 jest odpowiednim.

A więc również bo

= –1,05937 + 0,188462·i,  = 0,3612975 + 1,201045·i,  = 0,6980765 –1,389507·i
= –0,95681 + 0,3679495, = 0,463861 + 1,3805324, = 0,800640 –1,210020.

Wynik można sprawdzić na stronie WolframAlpha.

Podsumowanie

Aby rozwiązać równanie

(1)

o współczynnikach zespolonych, sprowadzamy je do postaci kanonicznej

(2)

gdzie

Następnie znajdujemy parę liczb spełniających równania

  oraz  

(Wymaga to rozwiązania równania kwadratowego i wyznaczenia pierwiastków trzeciego stopnia). Rozwiązaniami równania (1) są liczby

Inne metody rozwiązywania równania kanonicznego

Ważony para-cosinus

Dla równania kanonicznego

korzystamy ze wzorów Viète’a i otrzymujemy:

Ten nieliniowy układ z trzema niewiadomymi ze względu na wysoką symetrię jest jednym z niewielu, które dają się rozwiązać analitycznie. Ze względu na prostotę pierwszego równania wystarczy zająć się jedynie dwoma następnymi po wyrugowaniu zmiennej

Zastosujemy teraz podstawienie para-trygonometryczne (ważony para-cosinus):

zależności

prowadzą do układu równań

który rozwiązujemy rozwiązując proste równanie kwadratowe.

Podstawienie Viète’a

W równaniu kanonicznym podstawiamy

co prowadzi do równania kwadratowego na

a dalej do sześciu rozwiązań na ale tylko trzech na jako że każda liczba rzeczywista lub zespolona różna od zera ma zawsze trzy pierwiastki trzeciego stopnia.

Zobacz też

Przypisy

  1. Cardana wzory, [w:] Encyklopedia PWN [dostęp 2022-09-09].

Bibliografia

Linki zewnętrzne