Консольное приложение для нахождения корней нелинейного уравнения методом бисекции - C#
Формулировка задачи:
Реализовать консольной приложение для нахождения корней нелинейного
уравнения методом бисекции
(x2+x+1)( x2+x+1) -12=0
Решение задачи: «Консольное приложение для нахождения корней нелинейного уравнения методом бисекции»
textual
Листинг программы
using System;
namespace ConsoleApplication207
{
class Program
{
static void Main(string[] args)
{
var root = CalcRoot(x => (x*x + x + 1)*(x*x + x + 1) - 12, 0, 100, 0.001d);
Console.WriteLine(root);
Console.ReadLine();
}
static double CalcRoot(Func<double, double> func, double from, double to, double epsylon)
{
if (Math.Sign(func(from)) == Math.Sign(func(to))) throw new Exception("Invalid interval");
while(Math.Abs(func(from)) > epsylon)
{
var mid = (from + to)/2;
if (Math.Sign(func(from)) != Math.Sign(func(mid)))
to = mid;
else
from = mid;
}
return from;
}
}
}