Równania rzędu 2,3,4

Uwaga: jest to skrócony opis  bez wyprowadzeń, właściwie tylko algorytmy obliczeń.
W celu poszerzenia wiedzy warto zajrzeć np. do Wikipedii czy na odpowiedni dział forum matematyka.

Wielomian kwadratowy – trójmian kwadratowy

Mamy wielomian zadany funkcją $f(x) = Ax^2+Bx+C$ gdzie $A \neq 0$
Ze szkoły znany jest wzór na wyróżnik $\Delta = B^2 – 4AC$. Jeżeli $\Delta = 0$ to funkcja ma jedno miejsce zerowe, któremu odpowiada dwukrotny pierwiastek: $\frac{-b}{2a}$
jeżeli $\Delta \gt 0$ to są dwa (rzeczywiste!) miejsca zerowe :
$x_0 = \frac{-B-\sqrt{\Delta}}{2A}$ oraz $x_1 = \frac{-B+\sqrt{\Delta}}{2A}$
Wielomian rozkłada się na $A(x-x_0)(x-x_1)$
Jeżeli $\Delta \lt 0$ to pierwiastki są zespolone a $\sqrt{\Delta} = i \cdot \sqrt{4AC-B^2} $
Natomiast jeśli mamy współczynniki zespolone, to używamy dokładnie tych samych wzorów
tylko operujących na A,B,C zespolonych jak również wyróżnik jest zespolony.

Wielomian trzeciego stopnia i równanie sześcienne
Do rozwiązania będzie potrzebne wyznaczenie pierwiastków trzeciego stopnia liczby zespolonej za pomocą wzoru de Moivre’a – w skrócie chodzi o to że licząc pierwiastek trzeciego stopnia, otrzymujemy liczbę której moduł jest pierwiastkiem rzeczywistym trzeciego stopnia a faza to kąt trzy razy mniejszy.
Równanie postaci $Ax^3+Bx^2+Cx+D$ gdzie $A \neq 0$ ma przynajmniej jeden pierwiastek rzeczywisty jeśli wszystkie współczynniki są rzeczywiste.
Może być sprowadzone do postaci kanonicznej $y^3 + py + q = 0$ przez podzielenie równania przez A i podstawienie: $x=y-\frac{B}{3A}$
wtedy $p=\frac{C}{A}-\frac{B^2}{3A^2}$ i $q=\frac{2B^3}{27A^3} + \frac{D}{A} – \frac{BC}{3A^2}$
Jeżeli $p=0$ to rozwiązanie sprowadza się znalezienia trzech pierwiastków z liczby $-q$.
Stała p jest wtedy równa zero, gdy $C = \frac{B^2}{3A}$
dalej zakładamy trudniejszy przypadek dla p różnego od zera
obliczamy :
$z_0 = \frac{-q+\sqrt{q^2+4p^3/27}}{2}$
które jest jednym z pierwiastków przekształconego równania kwadratowego, po szczegóły odsyłam do Wikipedii
Uwaga: jeśli $q^2+4p^3/27$ będzie bardzo bliskie zeru, oznacza to że dwa z trzech pierwiastków tworzą pierwiastek podwójny i wtedy mamy do czynienia z ogromną utratą dokładności. Aby temu zapobiec, dla tej wartości bliskiej zeru, zerujemy ją, co bardzo pomaga w dokładności.
Wyliczamy trzy pierwiastki z0, wybieramy dowolny z nich do zmiennej v0, dalej pierwiastkujemy $-q-z0$ otrzymując trzy pierwiastki. Wybieramy u jako dowolny z nich.
Mamy trzy pierwiastki z jedynki::
$e_0=1$, $e_1=\frac{-1 + i\sqrt 3}{2}$, $e_2= \frac{-1 – i\sqrt 3}{2}$.
Wybieramy jako $e_m$ taki z jednostkowych pierwiastków dla którego $v0 \cdot u = -e_m*p/3$, czyli $e_m = -3 \cdot v0 \cdot u/p$. Robimy to przez wyliczenie $z=-3 \cdot v0 \cdot u/p $ i porównywanie z pierwiastkami z jedynki; należy porównywać ze sporą tolerancją z powodu zaokrągleń maszynowych, dużo większych w tym przypadku niż będzie błąd ostatecznego wyniku.
Wybieramy drugie $e_n$ takie, że $e_m*e_n=1$, czyli gdy $e_m=1$, to też $e_n=1$, ale gdy wybraliśmy drugie musimy wybrać trzecie a dla trzeciego drugie.
Wtedy u0=e_n*u
I na koniec bierzemy oprócz tych dwóch e jeszcze jedno: dowolne z dwóch, tyko nie jedynkę,
bardziej elegancko będzie wybranie pierwszego, mającego mniejszy kąt współrzędnych biegunowych, ponieważ $e_1$ oznacza obrót o 1/3 pełnego kąta. Gdy wybierzemy drugi to tez nic się nie stanie, bo obrócimy najpierw o 2/3 a potem o następne 2/3 i będziemy mieli pozycję 1/3
$y_0=v_0+u_0$, $y_1=e_1\cdot v_0+e_1^2\cdot u_0$
oraz
$y_2=e_1^2\cdot v_0+e_1\cdot u_0$.
Na koniec jeszcze przekonwertujemy z y na x za pomocą przesunięcia $x = y-\frac{B}{3A}$
Przykłady : wikipedia: Równanie_sześcienne

Czwartego rzędu
Testowałem metodę Ferrariego (patrz http://www.math.us.edu.pl/pgladki/faq/node128.html)
gdzie
$y_k = \frac{\pm \sqrt{-z_1} \pm \sqrt{-z_2} \pm \sqrt{-z_3}}{2}$
i teoretycznie jest $2^3 = 8$ możliwości takich sum $y_k$, z których wybierane są 4. Testy pokazywały że w połowie przykładów należało zmienić znak któregoś z członów. Więc metoda Ferrariego pozostaje sprawą otwartą.
Na szczęście rozwiązanie znalazłem w książcę “Solution of cubic & quartic equations” S.Neumark, znajdującą się na legalnej stronie https://archive.org/…książka gdzie w rozdziale 3 jest opisany rozkład równania $Ax^4+Bx^3+Cx^2+Dx+E = 0$ na iloczyn równań kwadratowych $(Ax^2+Gx+H)\cdot (Ax^2+gx+h)$ które to dwie pary rozwiązań są bez żadnych przekształceń rozwiązaniami oryginalnego równania.
Liczymy najpierw pomocnicze równanie sześcienne:
$y^3 + -2Cy^2 + (C^2+BD-4AE)y + (BCD – B^2E – AD^2) = 0$ znajdując $y_0,y_1,y_2$.
Wybieramy pierwiastek, uwaga sądziłem że można wybierać pierwiastek dowolnie, czyli pierwszy z nich, jednak może się zdarzyć że liczona potem $\Delta$ będzie bardzo bliska zeru i jak testy pokazały – wtedy mamy źle policzone pierwiastki. Więc należy wybrać taki pierwiastek, dla którego moduł $\Delta$ będzie największy. Gdy nam się nie uda, to znaczy wszystkie trzy pierwiastki będą miały tą $\Delta$ prawie zerową – oznacza to że mamy jeden pierwiastek poczwórny i policzymy bez błędu.
A więc liczymy $\Delta = B^2-4Ay$ gdzie y to wybrany pierwiastek równania sześciennego.
Dalej: $G = \frac{B+\sqrt{\Delta}}{2}$, $G = \frac{B-\sqrt{\Delta}}{2}$
$H = \frac{C-y}{2} + \frac{B(C-y-2AD}{2 \sqrt{\Delta}}$
$h = \frac{C-y}{2} – \frac{B(C-y-2AD}{2 \sqrt{\Delta}}$
Wystarczy teraz rozwiązać te dwa równania kwadratowe, tylko na początku należy upewnić się, że nie mamy do czynienia z równaniem $Ax^4+Cx^2+E = 0$ z B i D bardzo bliskimi zeru, bo wtedy ogólna metoda zawodzi ale wystarczy podstawić $t = x^2$

Załączam kod w C++, Javie i C# na Github-quartic

Przykłady
Równanie kwadratowe o współczynnikach zespolonych: niech ma pierwiastki (1, -2i) oraz (-0.5, 1.5i).
Otrzymujemy: A = 1, B = -0.5+0.5i, C = 2.5 + 2.5 i $\Delta$ = (-10,-10.5 i).

Teraz równanie stopnia trzeciego:
$(x-1)(x-2)(x-3) = x^3 – 6x^2 + 11x – 6$
A = 1, B=-6, C=11, D=-6
przechodzimy do formy kanonicznej:
$p = – B^2/(3A^2) + C/A$
$q = (2B^3)/(27A^3) – B*C/(3A^2) + D/A$
mamy $p=-1$,$q=0$
liczymy z0 = (sqrt(q* q + p*p*p* 4.0 / 27.0)-q)/2 = (0 + 0.19245 i)
dalej v0 jako jeden dowolny pierwiastek trzeciego stopnia z z0:
wybieramy pierwszy: v = (0.5 + 0.28867513 i)
potem u jako dowolny pierwiastek trzeciego stopnia z -q-z0 =(0.5 -0.28867513 i)
liczymy -3u / p = 1
Teraz mamy trzy pierwiastki trzeciego stopnia z jedynki : (1,0), (-1,sqrt(3) / 2) oraz(-1,-sqrt(3) / 2)
sprawdzamy do którego pasuje – do pierwszego czyli jedynka.
Potem znajdujemy odpowiednią odwrotność tego pierwiastka, czyli dla jedynki będzie to samo, ale dla drugiego będzie trzeci a dla trzeciego drugi.
inny u0 = e[n]* u = (0.5,-0.288675 i)

y[0] = v0 + u0;
y[1] = e[1]* v0 + e[1]* e[1]* u0;
y[2] = e[1]* e[1]* v0 + e[1]* u0;
for (int i = 0; i < 3; i++) x[i] = ytox(y[i]);

ostatecznie 3,1,2

Przykład sześciennego zespolonego:
weżmy trzy pierwiastki:
(1.2+0.3i),(0.5-0.4i),(-0.2+0.7i)
A = 1, B = (-1.5 -0.6 i) C = (0.45 + 0.88 i) D = (-0.087 -0.57 i)
p = (-0,18, 0,28) , q = (-0,168, -0,324)
z = (0,172435280397968, 0,317927548233754)
z0 =(0,170217640198984, 0,320963774116877)
v0 = (0,667542648054294, 0,252072594216369)
u = (0,115470053837925, 0,104145188432738)
u0 = (0,0324573519457061, -0,152072594216369)
y0 = (0,7, 0,1)
y1 = (-0,7, 0,5)
y2 = (0, -0,6)
i ostatecznie:
x0 = (1,2, 0,3)
x1 = (-0,2, 0,7)
x3 = (0,5, -0,4)

Na koniec równanie z dwoma pierwiastkami rzeczywistymi 0. 5 i 2 oraz dwoma zespolonymi (1.5 – i) i (-0.5+2i) i niech A będzie równe 2.
A = 2, B = (-7 -2 i), C = (9.5 + 12 i), D = (-8.25 -19.5 i), E = (2.5+7 i)
Rozwiązujemy równanie pomocnicze:
$y^3 + (-19 -24 i)y^2 +(-55 + 325i)y + (950 -650 i)$
które ma pierwiastki:
y0= (10 + 5i)
y1= (4 + 14i)
y2= (5+ 5i)
Znalezione y dla $\Delta$ o maksymalnym module jest równe (4 + 14i), $\Delta$ jest równe (13 -84 i) a pierwiastek z niej (7 -6 i), stąd:
G = (0 -4 i)
g = (-7 + 2 i)
H = (-0.5 + 2 i)
h = (6 -4 i)
Rozwiązujemy $(2x^2+(0 -4 i)x+(-0.5 + 2 i))(2x^2+(-7 + 2 i)x+(6 -4 i))$
z pierwszego:
x0 = (-0.5, 2)
x1 = (0.5, 0)
z drugiego:
x2= (1.5, -1)
x3= (2, 0)
Uwaga: oba równania mają po jednym rzeczywistym i jednym zespolonym pierwiastku, to jest możliwe, bo współczynniki są zespolone.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *