Частина тексту файла (без зображень, графіків і формул):
ЗВІТ
З ЛАБОРАТОРНОЇ РОБОТИ #1
З КУРСУ “Комп’ютерні методи дослідження інформаційних процесів та систем”
На тему‘’МЕТОДИ УТОЧНЕННЯ КОРЕНІВ
НЕЛІНІЙНИХ РІВНЯНЬ’’
Варіант 12
Мета роботи – ознайомлення з методами уточнення коренів нелінійних рівнянь з одним невідомим.
Короткі теоретичні дані:
Комбінований метод хорд та дотичних
Метод хорд та дотичних дають наближення кореня з різних сторін (менше і більше від істинного значення). Тому доцільно використовувати обидва способи одночасно, завдяки чому уточнене значення кореня одержується швидше.
Нехай EMBED Equation.3 – початкове наближення кореня за методом хорд, а EMBED Equation.3 – за методом дотичних (див.рис.4).
Тоді провівши хорду та дотичну, одержимо відповідні наближення за методом хорд
EMBED Equation.3
і за методом дотичних
EMBED Equation.3 .
Або в загальному випадку
EMBED Equation.3 (11)
EMBED Equation.3 (12)
EMBED Visio.Drawing.11
Рис. 4
Якщо припустима абсолютна похибка ε заздалегідь задана, то процес наближення припиняється, доки не буде виявлено, що
EMBED Equation.3
Після закінчення процесу за значення кореня х* краще взяти середнє арифметичне одержаних останніх значень
EMBED Equation.3
Кращий результат дає наступний порядок обчислень:
Знаходиться наближене значення кореня за методом Ньютона;
Знаходиться наближене значення кореня за методом хорд, використовуючи замість EMBED Equation.3 значення EMBED Equation.3 , знайдене за методом Ньютона, і процес повторюється до одержання бажаної похибки обчислень.
EMBED Equation.3 ; EMBED Equation.3 .
EMBED Visio.Drawing.11
Рис.5.
Алгоритм комбінованого методу метод хорд та дотичних
EMBED Visio.Drawing.11
Завдання
Знайти корінь рівняння з граничною абсолютною похибкою Е = 10–4, відокремлений на відрізку [a, b].
Таблиця ідентифікаторів констант, змінних, функцій, використаних у програмі, та їх пояснення:
Текст програми мовою С
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(){
float xh,xd,a,E,b;
float xh1,xd1,rez;
clrscr();
printf("a=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
printf("E=");
scanf("%lf",&E);
xh=a;
xd=b;
do{
xd1=xd-((log(xd)+xd)/(1/xd+1));
xh1=xh-((log(xh)+xh)*(xd1-xh))/((log(xd1)+xd1)-(log(xh)+xh));
if (fabs(xd1-xh1) > E){xh=xh1; xd=xd1;}
}while((fabs(xd1-xh1)>E));
rez=0.5*(xh+xd);
printf("rezult: %d",rez);
getch(); }
Результати роботи програми:
a=0.4
b=1
E=0.0001
rez= 0.5671432904
Висновок:
На цій лабораторній роботі я ознайомився з методами уточнення коренів нелінійних рівнянь з одним невідомим.