Well, if you take a look here[^], you'll see that it really was meant to happen.
And, as I said, you can du numerical approximations instead of the insane formulas, as other people have here on codeproject.
However, I see that I might have to clean the solutions somethimes, and that I could discard some solutions based on what I found here[^].
Edit:
You could replace the function with the one blow, as it should provide you with the information to clean up the calculated roots:
Public Function PolynominalEquationSolver(ByVal a As Complex, ByVal b As Complex, ByVal c As Complex, ByVal d As Complex, ByVal e As Complex) As List(Of Complex)
Dim result As New List(Of Complex)
Dim x1, x2, x3, x4 As New Complex
If a <> 0 Then
x1 = -1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a)) _
- 1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (2 * Complex.Pow(a, 2)) - (-Complex.Pow(b, 3) / Complex.Pow(a, 3) + (4 * b * c) / Complex.Pow(a, 2) - (8 * d) / a) / (4 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a))) - Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) - (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (4 * c) / (3 * a)) - b / (4 * a)
x2 = -1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a)) _
+ 1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (2 * Complex.Pow(a, 2)) - (-Complex.Pow(b, 3) / Complex.Pow(a, 3) + (4 * b * c) / Complex.Pow(a, 2) - (8 * d) / a) / (4 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a))) - Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) - (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (4 * c) / (3 * a)) - b / (4 * a)
x3 = 1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a)) _
- 1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (2 * Complex.Pow(a, 2)) - (-Complex.Pow(b, 3) / Complex.Pow(a, 3) + (4 * b * c) / Complex.Pow(a, 2) - (8 * d) / a) / (4 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a))) - Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) - (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (4 * c) / (3 * a)) - b / (4 * a)
x4 = 1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a)) _
+ 1 / 2 * Complex.Sqrt(Complex.Pow(b, 2) / (2 * Complex.Pow(a, 2)) - (-Complex.Pow(b, 3) / Complex.Pow(a, 3) + (4 * b * c) / Complex.Pow(a, 2) - (8 * d) / a) / (4 * Complex.Sqrt(Complex.Pow(b, 2) / (4 * Complex.Pow(a, 2)) + Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) + (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (2 * c) / (3 * a))) - Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * a) - (2 ^ (1 / 3) * (12 * a * e - 3 * b * d + Complex.Pow(c, 2))) / (3 * a * Complex.Pow(Complex.Sqrt(Complex.Pow(-72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), 2) - 4 * Complex.Pow(12 * a * e - 3 * b * d + Complex.Pow(c, 2), 3)) - 72 * a * c * e + 27 * a * Complex.Pow(d, 2) + 27 * Complex.Pow(b, 2) * e - 9 * b * c * d + 2 * Complex.Pow(c, 3), (1 / 3))) - (4 * c) / (3 * a)) - b / (4 * a)
Dim a0, a1, a2 As New Complex
a2 = -3 * b * b / (8 * a * a) + c / a
a1 = b * b * b / (8 * a * a * a) - b * c / (2 * a * a) + d / a
a0 = -3 * b * b * b * b / (256 * a * a * a * a) + c * b * b / (16 * a * a * a) - b * d / (4 * a * a) + e / a
If (a2 * a2 + 12 * a0).Real > 0 And (-2 * a2).Real < Complex.Sqrt(a2 * a2 + 12 * a0).Real And (2 * Complex.Pow(a2 * a2 + 12 * a0, 3 / 2)).Real = (2 * a2 * a2 * a2 - 72 * a2 * a0 + 27 * a1 * a1).Real Then
MessageBox.Show("The original polynomial has two complex roots and one double real root")
ElseIf a1.Real = 0 And (a2 * a2 - 4 * a0).Real = 0 And a2.Real > 0 Then
MessageBox.Show("The original polynomial is (x^2+b^2)^2 where b is different from 0")
ElseIf a2.Real < 0 And (a2 * a2 - a * a0).Real > 0 And (a2 * a2 + 12 * a0).Real > 0 And (2 * Complex.Pow(a2 * a2 + 12 * a0, 3 / 2)).Real = (2 * a2 * a2 * a2 - 72 * a2 * a0 + 27 * a1 * a1).Real Then
MessageBox.Show("The original polynomial has three different real roots, but among them is only one double root and the other two single rootes are on the same side of the double one")
ElseIf a2.Real < 0 And (a2 * a2 - a * a0).Real > 0 And (a2 * a2 + 12 * a0).Real > 0 And (2 * Complex.Pow(a2 * a2 + 12 * a0, 3 / 2)).Real = (-2 * a2 * a2 * a2 + 72 * a2 * a0 - 27 * a1 * a1).Real Then
MessageBox.Show("The original polynomial has three different real roots, but among them is only one double root and the other two single roots are on the opposite sides of the double one")
ElseIf a1.Real = 0 And (a2 * a2 - 4 * a0).Real = 0 And a2.Real < 0 Then
MessageBox.Show("The original polynomial has two double real roots")
ElseIf (a2 * a2 + 12 * a0).Real = 0 And (8 * a2 * a2 * a2 + 27 * a1 * a1).Real = 0 And a2.Real < 0 Then
MessageBox.Show("The original polynomial has two different real roots and one of them is a triple root")
ElseIf a0.Real = 0 And a1.Real = 0 And a2.Real = 0 Then
MessageBox.Show("The original polynomial has only one fourfold real root which is zero")
End If
result.Add(x1)
result.Add(x2)
result.Add(x3)
result.Add(x4)
ElseIf a = 0 And b <> 0 Then
result.Add(Complex.Pow(Complex.Sqrt(Complex.Pow(-27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), 2) + 4 * Complex.Pow(3 * b * d - Complex.Pow(c, 2), 3)) - 27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), (1 / 3)) / (3 * 2 ^ (1 / 3) * b) - (2 ^ (1 / 3) * (3 * b * d - Complex.Pow(c, 2))) / (3 * b * Complex.Pow(Complex.Sqrt(Complex.Pow(-27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), 2) + 4 * Complex.Pow(3 * b * d - Complex.Pow(c, 2), 3)) - 27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), (1 / 3))) - c / (3 * b))
result.Add(-((1 - New Complex(0, 1) * Complex.Sqrt(3)) * Complex.Pow(Complex.Sqrt(Complex.Pow(-27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), 2) + 4 * Complex.Pow(3 * b * d - Complex.Pow(c, 2), 3)) - 27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), (1 / 3))) / (6 * 2 ^ (1 / 3) * b) + ((1 + New Complex(0, 1) * Complex.Sqrt(3)) * (3 * b * d - Complex.Pow(c, 2))) / (3 * 2 ^ (2 / 3) * b * Complex.Pow(Complex.Sqrt(Complex.Pow(-27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), 2) + 4 * Complex.Pow(3 * b * d - Complex.Pow(c, 2), 3)) - 27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), (1 / 3))) - c / (3 * b))
result.Add(-((1 + New Complex(0, 1) * Complex.Sqrt(3)) * Complex.Pow(Complex.Sqrt(Complex.Pow(-27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), 2) + 4 * Complex.Pow(3 * b * d - Complex.Pow(c, 2), 3)) - 27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), (1 / 3))) / (6 * 2 ^ (1 / 3) * b) + ((1 - New Complex(0, 1) * Complex.Sqrt(3)) * (3 * b * d - Complex.Pow(c, 2))) / (3 * 2 ^ (2 / 3) * b * Complex.Pow(Complex.Sqrt(Complex.Pow(-27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), 2) + 4 * Complex.Pow(3 * b * d - Complex.Pow(c, 2), 3)) - 27 * Complex.Pow(b, 2) * e + 9 * b * c * d - 2 * Complex.Pow(c, 3), (1 / 3))) - c / (3 * b))
ElseIf a = 0 And b = 0 And c <> 0 Then
result.Add((-Complex.Sqrt(Complex.Pow(d, 2) - 4 * c * e) - d) / (2 * c))
result.Add((Complex.Sqrt(Complex.Pow(d, 2) - 4 * c * e) - d) / (2 * c))
ElseIf a = 0 And b = 0 And c = 0 And d <> 0 Then
result.Add(-e / d)
Else
result.Add(New Complex(0, 0))
End If
Return result
End Function
Kind regards
Kenneth
modified 27-Feb-13 17:39pm.
|