110,533
社区成员
发帖
与我相关
我的任务
分享
static void Main(string[] args)
{
double x = -1.5;
double y = 11;
double c = 0;
double a = 0;
double b = 0.01;
double e = Math.Pow(10, -5);
while (a < b)
{
if (Math.Sign(F(a, x, y)) != Math.Sign(F(a + e, x, y))) break;
a += e;
}
Console.WriteLine("a={0} b={1} F()={2}", a, b, F(a, x, y));
Console.WriteLine("a={0} b={1} F()={2}", a+e, b, F(a+e, x, y));
a = 0;
e = Math.Pow(10, -17);
while (Math.Abs(b - a) > e)
{
var fa = Math.Sign(F(a, x, y));
var fb = Math.Sign(F(b, x, y));
if (fa == fb) break;
c = (a + b) / 2;
var fc = Math.Sign(F(c, x, y));
if (fb == fc) b = c;
else a = c;
}
Console.WriteLine("a={0} b={1} F()={2}", a, b, F(c, x, y));
}