logo
ООП для Заоч / Пинчук Лозовская Программир на С

13.10. Розв’язування нелінійних рівнянь

Більшість реальних об’єктів та процесів моделюються рівняннями, які містять у собі різного роду нелінійності. Наприклад, при дослідженні пружинного маятника, коефіцієнт пружності пружини можна вважати постійним, але це буде істинно тільки на невеликому інтервалі розтягань пружини. Для знаходження точного рішення змінність коефіцієнту пружності треба ураховувати. Урахування нелінійностей звичайно призводить до утворення складних математичних виразів, для яких не можливо записати розв’язок задачі у явній аналітичній формі. У таких випадках нас виручають чисельні методи.

Задача розв’язування рівняння виду F(x)=0

Надано рівняння F(x)=0 і інтервал [a,b], який містить у собі шуканий розв’язок. Обчислити значення x, яке задовольняє рівнянню з наданою точністю eps. Надана точність означає, що знайдене x задовольняє умові: F(x)  eps .

Метод бісекції

Алгоритм передбачає послідовне наближення до точного розв’язку. Вважається, що для обраного інтервалу [a,b] виконується умова: F(a)F(b)  0 .

1. Обчислити точку x=(b+a)/2.

2. Якщо |f(x)|<eps алгоритм завершити. Значення x - шуканий розв’язок.

Якщо ні, перейти до наступного п.

3. Якщо F(a)F(x) < 0 , виконати присвоєння b = x .

Якщо ні, то виконати присвоєння a = x .

4. Перейти до п. 1.

Алгоритм реалізовано у вигляді функції Bisec, що наведена нижче.