Поиск корней биквадратного уравнения - C#
Формулировка задачи:
срочно очень нужна, ребят, помогите
Решение задачи: «Поиск корней биквадратного уравнения»
textual
Листинг программы
static double[] Roots(int a, int b, int c)
{
if (a == 0)
throw new ArgumentOutOfRangeException();
List<double> roots = new List<double>();
double discriminant = Math.Pow(b, 2) - 4 * a * c;
if (discriminant == 0)
{
double t = -b * 1d / (2 * a);
if (t == 0)
roots.Add(0);
else if (t > 0)
{
roots.Add(Math.Sqrt(t));
roots.Add(-Math.Sqrt(t));
}
}
else if (discriminant > 0)
{
double t1 = (-b + Math.Sqrt(discriminant)) / (2 * a),
t2 = (-b - Math.Sqrt(discriminant)) / (2 * a);
if (t1 == 0 || t2 == 0)
roots.Add(0);
if (t1 > 0)
{
roots.Add(Math.Sqrt(t1));
roots.Add(-Math.Sqrt(t1));
}
if (t2 > 0)
{
roots.Add(Math.Sqrt(t2));
roots.Add(-Math.Sqrt(t2));
}
}
return roots.ToArray();
}