Как записать формулу Кардано в C#?
Формулировка задачи:
Ребята, всем привет. Подскажите как записать формулу Кардано в C#
Решение задачи: «Как записать формулу Кардано в C#?»
textual
Листинг программы
static void Main(string[] args)
{
// a*x*x*x + b*x*x + c*x +d = 0
// задаем коэффициенты
double a = 2.0;
double b = 3.0;
double c = 4.0;
double d = 5.0;
// приводим к канонической форме
double p = c / a - b * b / (3.0 * a * a);
double q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);
double Q = Math.Pow(p/3,3) + Math.Pow(q/2,2);
double rootQ = Math.Pow(Q,1.0/2);
double alfa = Math.Pow((-q/2 + rootQ),1.0/3);
double beta = Math.Pow((-q/2 - rootQ),1.0/3);
if (Q > 0)
{
// первый корень
double y1 = alfa + beta;
// вещественная часть двух корней
double y2r = -(alfa + beta) / 2;
// мнимая часть двух корней
double y2m = -(alfa - beta) / 2 * Math.Pow(3, 1.0 / 3);
}
// и так далее
// [url]https://ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%BC%D1%83%D0%BB%D0%B0_%D0%9A%D0%B0%D1%80%D0%B4%D0%B0%D0%BD%D0%BE[/url]
}
}