Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
Звіт
до лабораторної роботи № 4
з курсу «Чисельні методи в інформатиці»
на тему «Метод хорд і дотичних»
Мета роботи: вивчити і засвоїти ітераційні методи розв’язування алгебраїчних і трансцендентних рівнянь.
Короткі теоретичні відомості.
Метод хорд.
Метод хорд – метод лінійної інтерполяції (метод пропорційних частин, метод січних). Ідея методу полягає в тому, що на досить малому проміжку дугу кривої заміняють хордою, а за наближене значення кореня приймають точку перетину хорди з віссю Ох.
Значення функції визначаються в точках, які розташовані на осі Ох через рівні інтервали. Це робиться доти, поки кінці інтервалів , не будуть мати різні знаки. Тоді пряма, що проведена через ці дві точки, перетинає вісь абсцис у точці
(1 )
Формула (1) відображає метод хорд, який є ітераційним методом першого порядку. Для досить малих проміжків можна використати оцінку похибки
(2)
Рис. 1. Алгоритм методу половинного ділення.
Після цього знаходять значення f () і порівнюють його з f (). Надалі користуються замість того значення, з яким воно збіглося за знаком. Якщо − ≤ ε , то вся процедура повторюється спочатку (рисунок 2). Алгоритм методу хорд подібний до попереднього, за винятком процедури оцінки .
Треба також враховувати, що в алгоритмі обчислень за цим методом контроль похибки проводиться за тим кінцем інтервалу, що рухається. В випадку, що показаний на рисунку1, аналізуються послідовні наближення: на першому кроці x1 − x2 ≤ ε , на другому – x1 − x3 ≤ ε , на третьому – x3 − x4 ≤ ε і т. д.
Похибка розв’язку оцінюється за формулою:
(3),
де M1 ,m1 – відповідно, найбільше та найменше значення модуля першої похідної на відрізку.
Рис. 2. Метод хорд.
Метод дотичних.
У методі дотичних здійснюється екстраполяція за допомогою дотичної до кривої в даній точці (рисунок 3):
В основі цього методу лежить розвинення функції в ряд Тейлора
Доданки, що містять h у другому і вищих степенях, відкидаються, внаслідок чого одержується наведена вище наближена формула для оцінки .
Швидкість збіжності цього алгоритму значною мірою залежить від вірного вибору початкової точки. Коли в процесі обчислень кут нахилу дотичної f′(x) перетворюється на нуль, застосування цього методу ускладнюється. Можна також показати, що у випадку дуже великих значень f′′(x) (опуклість функції) чи кратних коренів метод Ньютона стає неефективним.
Початкове наближення слід вибирати з умови
Похибка методу оцінюється як:
де M2 – найбільше за модулем значення другої похідної на інтервалі [ , ] .
Рис. 3. Метод дотичних.
Завдання лабораторної роботи
Знайти один із коренів рівняння f(x) = 0, використовуючи методи дотичних, хорд і простої ітерації з точністю . Вивести кількість ітерацій, необхідних для досягнення заданої точності для кожного з методів.
f(x)=x2-cos(5x)
Лістинг програми
#include <conio.h>
#include <iostream.h>
#include <math.h>
double f(double x)
{
return (x*x-cos(5*x));
}
double f1(double x)
{
return (2*x+5*sin(5*x));
}
double f2(double x)
{
return (2+25*cos(5*x));
}
int main()
{
double a,b,c,exp=0.00001;
cout<<"Vvedit znachennia"<<endl;
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
{
do
{
c=a-f(a)/(f(b)-f(a))*(a-b);
if (f(c)*f(a)>0) a=c;
else b=c;
}
while (fabs(f(c))>=exp);
cout<<"Metod xord->"<<c<<"\n";
}
{
if (f(a)*f2(a)>0) c=a;
else c=b;
do
{
c=c-(f(c)/f1(c));
}
while (fabs(f(c))>=exp);
cout<<"Metod dotuchnux->"<<c<<"\n";
}
getch();
return 0;
}
Вигляд програми
Висновок: на дані лабораторній роботі я вивчив два методи знаходження розвязку функції з значеннями на проміжку – це метод Хорд і метод Дотичних(метод Ньютона).