Метод половинного деления

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static double func(double x)
{
return Math.Tan(x) - (Math.Pow(Math.Tan(x), 3)) / 3 + (Math.Pow(Math.Tan(x), 5)) / 5 - 0.1 / 0.3;
}
static void Main(string[] args)
{
double a = 0, b = 0.8;
double eps = 0.0001;
double numbers = 0;
while (Math.Abs(b - a) > eps)
{
double x = (a + b) / 2;
if (func(a) * func(x) < 0)
b = x;
else
a = x;
numbers += 1;
}
double answer = (a + b) / 2;
Console.WriteLine("Answer:{0:f4}\nNumbers:{1}", answer, numbers);
Console.ReadKey();
}
}
}