Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра АСУ
Звіт
Лабораторна робота № 7
«Інтерполяційна схема Ейткена»
з дисципліни:
«Чисельні методи»
Варіант №9
Мета роботи: Засвоїти теоретичний матеріалі методи апроксимації функцій, набути практичні навики знаходження наближених значень функцій.
Завдання
Користуючись таблицею значень cos(x), xє[0.75k, 0.8k] з кроком h=0.01. Знайти наближене значення cos(x) при x=0.775, де k-списковий номер студента.
Результати обчислень подати таблично.
Код програми
#include <iostream>
#include <cmath>
#include <locale>
using namespace std;
double ms[6][7];
double h=0.01, x=0.775;
void Init ()
{
for (int i=0; i<6; i++) ms[0][i]=(0.7509+i*h);
for (int i=0; i<6; i++) ms[1][i]=cos(ms[0][i]);
for (int i=0; i<6; i++) ms[2][i]=ms[0][i]-x;
for (int i=1; i<6; i++) ms[3][i]=(1/(ms[0][i]-ms[0][0]))*( ms[1][i-1]*(ms[0][i]-x)-ms[1][i]*(ms[0][0]-x) );
for (int i=2; i<6; i++) ms[4][i]=(1/(ms[0][i]-ms[0][0]))*( ms[3][i-1]*(ms[0][i]-x)-ms[3][i]*(ms[0][0]-x) );
for (int i=3; i<6; i++) ms[5][i]=(1/(ms[0][i]-ms[0][0]))*( ms[4][i-1]*(ms[0][i]-x)-ms[4][i]*(ms[0][0]-x) );
for (int i=4; i<6; i++) ms[6][i]=(1/(ms[0][i]-ms[0][0]))*( ms[5][i-1]*(ms[0][i]-x)-ms[5][i]*(ms[0][0]-x) );
}
double GetV ()
{
for (int i=1; i<6; i++)
if ( ( (ms[2][i-1]>0) && (ms[2][i]<0) ) || ( (ms[2][i-1]<0) && (ms[2][i]>0) ) ){
if (abs(ms[2][i-1])<abs(ms[2][i])) return ms[2+i-1][i-1];
else return ms[2+i][i];
}
}
void main ()
{
setlocale (LC_ALL, "");
Init ();
cout<<"Xk\tF(Xk)\tXk-X\tL1\tL2\tL3\tL4"<<endl<<endl;
for (int i=0; i<6; i++){
for (int j=0; j<7; j++) {cout.precision(5); cout<<ms[j][i]<<"\t"; }
cout<<endl;
}
cout<<endl<<endl<<"Наближене значення cos(0.775) = ";
cout<<GetV();
cin.get();
}
Приклад виконання програми
Висновок: на даній роботі була створена програма для знаходження наближеного розвязку функції за інтерполяційною схемою Ейткена. Знаходилось наближене значення функції cos(x) у точці х=0.775, на проміжку [0.7509, 0.8009]. На скріншоті виконання програми зображена отримана таблиця. Як бачимо найбільша точність (|Хк-Х|=0.05) у точках х=0.7709, х=0.7809, обираємо другу точку і з таблиці отримуємо наближене значення функції cos(0.775) = 0.71613.
Абсолютна похибка:
Δ=0,71613-0,7144=0,00173
Відносна похибка:
0,00173/0,7144*100%=0,25%