Równanie sześcienne lub trzeciego stopnia – równanie algebraiczne postaci gdzie , a niewiadoma i współczynniki zwykle są liczbami rzeczywistymi lub zespolonymi.

Jeśli współczynniki są rzeczywiste, to równanie tego typu: ma co najmniej jedno rozwiązanie rzeczywiste; może też mieć dwa rzeczywiste rozwiązania, z czego jedno jest nazywane pierwiastkiem podwójnym; może też mieć trzy różne rozwiązania rzeczywiste; jeśli ma tylko jedno rozwiązanie rzeczywiste, to oprócz tego istnieją dwa rozwiązania zespolone.

Badania równań sześciennych doprowadziły między innymi do koncepcji liczb urojonych i zespolonych Tomasz Miller, Liczby zespolone | Zacznijmy od zera #3, Centrum Kopernika Badań Interdyscyplinarnych – Uniwersytet Jagielloński (CKBI UJ), kanał „Copernicus” na YouTube, 23 lutego 2021 [dostęp 2025-05-09]..

Postać kanoniczna Twierdzenie Aby wyznaczyć pierwiastki równania sześciennego o współczynnikach rzeczywistych lub zespolonych

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

gdzie:

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

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

Dowód Dzieląc obie strony równania 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 .

Równanie kanoniczne o współczynnikach rzeczywistych Aby wyznaczyć pierwiastki równania kanonicznego , oblicza się tzw. wyróżnik mały|271x271px| Funkcja sześcienna

ma pierwiastek rzeczywisty oraz dwa pierwiastki zespolone , - pierwiastki zespolone pojawiają się z równania kwadratowego .

(pojęcie wyróżnika jest analogiczne jak dla funkcji kwadratowej). Jeżeli równanie ma współczynniki rzeczywiste, to wyróżnik jest liczbą rzeczywistą - wtedy mają sens poniższe wzory, gdzie zależnie od znaku wyróżnika są 3 możliwe przypadki.

Przypadek 1   Oblicza się

Równanie ma pierwiastek rzeczywisty

oraz dwa pierwiastki zespolone, wzajemnie sprzężone mały|272x272px|: Funkcja sześcienna ma pierwiastki: podwójny oraz pojedynczy .

Przypadek 2 2.1 Gdy (wtedy wobec jest ), to

- równanie ma jeden pierwiastek rzeczywisty podwójny i jeden pojedynczy

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

Przypadek 3   mały|275x275px| Funkcja sześcienna ma trzy różne pierwiastki rzeczywiste: ,, . Równanie ma trzy różne pierwiastki rzeczywiste:

gdzie:

Uwagi na temat obliczeń pierwiastków:

(a) Symbole pierwiastków kwadratowych we wzorach oznaczają pierwiastki kwadratowe rzeczywiste (pierwiastki arytmetyczne), tj. pierwiastki z liczb nieujemnych, dające jako wartość liczbę nieujemną. Pierwiastki te są dobrze określone, gdyż liczy się je z , albo we wzorze , gdy , wtedy ; dlatego jest jednoznacznie określoną liczbą dodatnią (gdyby pod pierwiastkiem była liczba ujemna, to pierwiastek byłby niejednoznacznie określony - bowiem dla liczb ujemnych mielibyśmy dwa pierwiastki zespolone).

(b) Symbole pierwiastków sześciennych we wzorach oznaczają pierwiastki sześcienne rzeczywiste, tj. we wzorach , , . Obliczanie ich nie prowadzi do błędów, gdy używa się kalkulatora, ale wymaga ostrożności w używaniu programowania komputerowego: w przypadku liczb ujemnych należy obliczać te wielkości jako liczby rzeczywiste, tj. dla liczb ujemnych , gdzie - wartość bezwzględna liczby. Problem obliczeń ww. pierwiastków z użyciem programów komputerowych omówiono dalej.

Przykłady równań sześciennych Zależność liczby pierwiastków rzeczywistych od wyróżnika Poniższe przykłady ilustrują różne przypadki, jakie występują przy rozwiązywaniu równania sześciennego. Z podanych tu funkcji sześciennych w postaci iloczynowej natychmiast widać rozwiązania. Jednak w ogólnym przypadku liczbę pierwiastków można określić dla każdej funkcji sześciennej bez znajomości pierwiastków, określając znak wyróżnika mały|283x283px|Zmiana liczby pierwiastków równania sześciennego - (punktów przecięcia wykresów z osią ) związana ze zmianą wyrazu wolnego wzrost powoduje przesuwanie wykresu w górę i wzrasta liczba pierwiastków. Tu (1) Funkcja sześcienna

ma jeden pierwiastek rzeczywisty oraz dwa pierwiastki zespolone , które są pierwiastkami równania kwadratowego (równanie to ma deltę mniejszą od zera); funkcję sześcienną można przedstawić w postaci czynnikowej

Licząc stwierdzimy, że tu .

(2.1) Funkcja sześcienna

ma pierwiastek podwójny oraz pierwiastek pojedynczy . Licząc stwierdzimy, że tu .

(2.2) Funkcja sześcienna

ma pierwiastek potrójny . Licząc stwierdzimy, że tu .

(3) Funkcja sześciennamały|281x281px|Brak zmiany liczby pierwiastków równania sześciennego pomimo zmiany wyrazu wolnego : wzrost powoduje przesuwanie wykresu w górę, ale nie wzrasta liczba pierwiastków. Tu . W takiej sytuacji równanie ma zawsze pojedynczy pierwiastek rzeczywisty i dwa zespolone.

ma 3 pierwiastki rzeczywiste: , oraz ; można ją przedstawić w postaci czynnikowej wyżej podanej. Licząc stwierdzimy, że tu .

Zależność liczby pierwiastków rzeczywistych od wyrazu wolnego Dla funkcji kwadratowej liczba pierwiastków (punktów przecięcia wykresu z osią ) będzie zmieniać się wraz z przesuwaniem wykresu funkcji wzdłuż osi w górę. Własność ta występuje dla funkcji sześciennej, ale z wyjątkiem szczególnym: gdy , to równanie ma zawsze pojedynczy pierwiastek rzeczywisty i dwa zespolone. Wynika to z postaci równania kanonicznego : podstawiając otrzymamy – pierwiastek sześcienny ma zawsze jedno rozwiązanie rzeczywiste i dwa zespolone (por. pierwiastki sześcienne w dziedzinie zespolonej).

Uwaga nt. obliczeń numerycznych. Kod programu.

Liczenie pierwiastków trzeciego stopnia z liczb ujemnych Obliczanie pierwiastków sześciennych , , z użyciem programowania komputerowego wymaga istotnej uwagi, gdyż w przypadku liczb ujemnych należy obliczać te wielkości jako liczby rzeczywiste, tj. dla liczb ujemnych , gdzie - wartość bezwzględna liczby. Jednak wiele bibliotek liczy pierwiastki sześcienne z liczb ujemnych jako tzw. pierwiastki główne zespolone, co prowadzi do błędów.

Np. w języku Python nie należy używać funkcji cmath.pow(m, 1/3) z biblioteki cmath lub instrukcji m**(1/3) do liczenie pierwiastków trzeciego stopnia z liczby m, gdyż dla liczb ujemnych otrzyma się jako wynik tzw. główny pierwiastek zespolony (jeden z trzech możliwych w tym wypadku pierwiastków zespolonych), a nie pierwiastek sześcienny w dziedzinie liczb rzeczywistych (np. dla zamiast otrzyma się liczbę ), co prowadzi do błędnych wyników. W Python można zaś użyć funkcji cbrt (cubic root) z biblioteki numpy, co daje poprawnie liczbę rzeczywistą lub napisać własny, krótki kod:         if m>0: u=m**(1/3) else: u=-(-m)**(1/3)

Program do liczenia pierwiastków równania sześciennego o współczynnikach rzeczywistych Poniżej podano przykład kodu w języku Python, znajdujący pierwiastki równania sześciennego wg wzorów wyżej podanych dla równania sześciennego o współczynnikach rzeczywistych. W programie obliczane są pierwiastki dla 5 zestawów danych (tj. dane są współczynniki a, b, c, d równania sześciennego) i rysowane są wykresy funkcji sześciennych. Użytkownik może dodać własne zestawy współczynników (linia 55 kodu). W linii 77 kodu: x = linespace(-1, 4, 1000) liczby -1, 4 określają zakres zmiennej x, w jakim rysowany jest wykres - można dostosować do własnych przykładów.# JK 2024.07.19 v.2 Program oblicza pierwiastki równania sześciennego # o współczynnikach rzeczywistych wg wzorów podanych w: # W. Zakowski, Mały poradnik matematyczny, Warszawa, 1977, str. 255-256.

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): p = c/a - b**2 / (3*a**2) q = 2 * b**3 / (27*a**3) + d/a - b * c / (3*a**2) D = (q / 2)**2 + (p / 3)**3 s= b / (3*a)

# --------------- D > 0 ------------------------------------------------# if D > 0: # Liczę pierwiastki sześcienne z danych liczb. # Uwaga: Nie używać cmath ani m**(1/3) do liczenie pierwiastków 3-go stopnia, # bo dla liczb ujemnych wynikiem pierwiastek główny zespolony, # a nie pierwiastek sześcienny dla liczb rzeczywistych! u = np.cbrt(-q / 2 + D**0.5) # cbrt - poprawnie liczy pierwiastek sześcienny v = np.cbrt(-q / 2 - D**0.5) # z liczb ujemnych

y0 = u + v y1 = -(u + v)/2 + (u-v) * 3**0.5/2 * 1j y2 = -(u + v)/2 - (u-v) * 3**0.5/2 * 1j roots_x = [y0 - s, y1 - s, y2 -s] INFO="Przypadek Delta > 0 - jeden pierwiastek rzeczywisty, dwa zespolone"

# --------------- D = 0 ------------------------------------------------# elif D == 0: u = np.cbrt(q / 2) # pierwiastek sześcienny roots_x = [u - s, u - s, -2*u - s] if q == 0: INFO="Przypadek Delta = 0, q = 0 - pierwiastek potrójny rzeczywisty" else: INFO="Przypadek Delta = 0 - pierwiastki rzeczywiste: podwójny i pojedynczy" # --------------- D < 0 ------------------------------------------------# else: r = (-p/3)**0.5 theta = cmath.acos(3*q / (2*p*r)) y0 = 2*r *cmath.cos(theta/3) y1 = 2*r *cmath.cos((theta + 2*cmath.pi)/3) y2 = 2*r *cmath.cos((theta + 4*cmath.pi)/3) roots_x = [y0 - s, y1 - s, y2 -s] INFO="Przypadek Delta < 0 - trzy różne pierwiastki rzeczywiste" return roots_x, D, p, q, INFO

# 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,q=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 2 zespolone (1,-1, 1, -1), # D>0 : f(x)=x³-x²+x-1 =(x-1)(x²+1) - pierwiastek pojedynczy i 2 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_x, D, p, q, INFO = solve_cubic(a, b, c, d)

# Rysujemy wykres funkcji x = np.linspace(-1, 4, 1000) 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_x 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:.3f}', 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}x³ {znak(b)} {abs(b)}x² {znak(c)} {abs(c)}x {znak(d)} {abs(d)}', pad=20) plt.show()

# Wypisujemy wartości pierwiastków formatted_roots = [f"{root.real:.3f} {znak(root.imag)}{abs(root.imag):.3f}*j" if abs(root.imag) > 1e-5 else f"{root.real:.3f}" for root in roots_x] # Usuwamy nawiasy i apostrofy z wydruku print("PIERWIASTKI RÓWNANIA SZEŚCIENNEGO:", ", ".join(formatted_roots)) print(" ") # Informacja nt. nt. D, p, q print(INFO) print(f"Delta = {D:.4g}, p= {p:.4g}, q= {q:.4g}") if abs(D)<10**(-15) and D!= 0: print("|Delta|< 10^(-15) - może być 1 pierwiastek podwójny i 1 pojedynczy, nie 3 pojedyncze (brak precyzji mozliwy z powodu przybliżeń numerycznych)") print("--------------------------------------------------------------------------M")

Równanie kanoniczne o współczynnikach zespolonych Jeżeli równanie sześcienne ma współczynniki zespolone

tj. , to sprowadza się je do postaci kanonicznej (w sposób identyczny jak równanie o współczynnikach rzeczywistych)

gdzie:

przy czym stosuje się podstawienie

Pierwiastki równania kanonicznego Słuszne są wzory:

gdzie: