ВУЗ:
Составители:
Рубрика:
27
case 1:
// инициализация делегата функцией GetX2
method = GetX2;
Console.WriteLine("Выбран метод хорд");
break;
case 2:
// инициализация делегата функцией GetX3
method = GetX3;
Console.WriteLine("Выбран метод касательных");
break;
}
}
// получение середины отрезка
static double GetX1(Function f, double a, double b)
{
return (a + b) / 2;
}
// получение точки пересечения хорды с осью OX
static double GetX2(Function f, double a, double b)
{
return a - f(a) * (b - a) / (f(b) - f(a));
}
// получение точки пересечения касательной с осью OX
static double GetX3(Function f, double a, double b)
{
// приближенное вычисление производной в точке a
double fa = (f(a + 0.001) - f(a)) / 0.001;
if (fa != 0)
{
// получение точки пересечения касательной
// с осью абсцисс
double c = a - f(a) / fa;
// если точка c принадлежит отрезку,
// выбираем ее
if (a <= c && c <= b)
return c;
}
// приближенное вычисление производной в точке b
double fb = (f(b + 0.001) - f(b)) / 0.001;
if (fb != 0)
{
// получение точки пересечения касательной
// с осью абсцисс
double c = b - f(b) / fb;
if (a <= c && c <= b)
return c;
}
case 1: // инициализация делегата функцией GetX2 method = GetX2; Console.WriteLine("Выбран метод хорд"); break; case 2: // инициализация делегата функцией GetX3 method = GetX3; Console.WriteLine("Выбран метод касательных"); break; } } // получение середины отрезка static double GetX1(Function f, double a, double b) { return (a + b) / 2; } // получение точки пересечения хорды с осью OX static double GetX2(Function f, double a, double b) { return a - f(a) * (b - a) / (f(b) - f(a)); } // получение точки пересечения касательной с осью OX static double GetX3(Function f, double a, double b) { // приближенное вычисление производной в точке a double fa = (f(a + 0.001) - f(a)) / 0.001; if (fa != 0) { // получение точки пересечения касательной // с осью абсцисс double c = a - f(a) / fa; // если точка c принадлежит отрезку, // выбираем ее if (a <= c && c <= b) return c; } // приближенное вычисление производной в точке b double fb = (f(b + 0.001) - f(b)) / 0.001; if (fb != 0) { // получение точки пересечения касательной // с осью абсцисс double c = b - f(b) / fb; if (a <= c && c <= b) return c; } 27
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »