![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Метод основан на замене функции f(x) на каждом шаге поиска хордой, пересечение которой с осью Х дает приближение корня.
При этом в процессе поиска семейство хорд может строиться:
а) при фиксированном левом конце хорд, т.е. z=a, тогда начальная точка х0=b (рис. 4.10а);
б) при фиксированном правом конце хорд, т.е. z=b, тогда начальная точка х0=a (рис. 4.10б);
Рис. 4.10.
В результате итерационный процесс схождения к корню реализуется рекуррентной формулой:
для случая а)
![]() | (4.11) |
для случая б)
![]() | (4.12) |
Процесс поиска продолжается до тех пор, пока не выполнится условие
![]() | (4.13) |
Метод обеспечивает быструю сходимость, если f(z)f"(z) > 0, т.е. хорды фиксируются в том конце интервала [a,b], где знаки функции f(z) и ее кривизны f"(z) совпадают.
Схема алгоритма уточнения корня методом хорд
Пример программы:
double f(double x)
{
return sqrt(fabs(cos(x))) - x; // Заменить ф-ей, корни которой мы ищем
}
// a, b - пределы хорды, epsilon - необходимая погрешность
double findRoot(double a, double b, double epsilon)
{
while(fabs(b - a) > epsilon)
{
a = b - (b - a) * f(b)/(f(b) - f(a));
b = a - (a - b) * f(a)/(f(a) - f(b));
}
// a - i-1, b - i-тый члены
return b;
}
Дата публикования: 2015-02-03; Прочитано: 236 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!