Ім'я файлу: ІТ-11.2 лаб №5.docx
Розширення: docx
Розмір: 395кб.
Дата: 05.01.2023
скачати


МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ

СУМСЬКИЙ ДЕРЖАВНИЙ УНІВЕРСИТЕТ

КАФЕДРА КОМП’ЮТЕРНИХ НАУК

ЗВІТ

з дисципліни Чисельні методи

за результатами виконання лабораторної роботи №5

на тему «Чисельна апроксимація функцій методом найменших квадратів (МНК)»

Виконав: студент гр. ІТ-11/2

варіант 1

Перевірив: викладач

Чибіряк Я.І.

СУМИ 2022

  1. Постановка задачі

Методом найменших квадратів виконати апроксимацію функції, що задана таблицею значень X та Y



  1. Математичне обґрунтування алгоритму

Метою виконання апроксимацiї отриманої у вигляді пар точок функції зміни температури по товщині стінки для останнього моменту часу є знаходження математичної залежності:

Т=f(x)= A(2)·X2+A(1)·X+A(0) (2.1)

Математичними моделями стохастичних процесів, тобто таких, які здійснюються під впливом випадкових факторів, в більшості випадків є емпіричні рівняння регресії, одержані в результаті обробки результатів досліджень. Такі рівняння, як правило, не відображають зв'язки і фізичну взаємодію між різними факторами, які обумовлюють процес, але дозволяють встановити залежність між вхідними та вихідними чинниками системи.

Якщо результати дослідів можна вважати в деякій мірі випадковими, то для побудови рівняння регресії застосовують апроксимацію табличних даних методом найменших відхилень. Суть методу полягає в побудові такого рівняння, яке б забезпечувало мінімальні відхилення експериментальних результатів від апроксимуючої кривої в усьому вивченому діапазоні. При цьому не ставиться завдання, щоб одержана крива точно проходила хоча б через одну точну множини [X,Y]. Такий підхід дозволяє в деякій мірі зменшити вплив похибок вимірювань та помилок, допущених в ході експерименту. З математичної точки зору ця умова може бути досягнута якщо для кожного вузла{xi,yi} величина Si (див. малюнок 2) буде мінімально можливою.



Рис. 2.1. Метод найменших відхилень. Геометрична інтерпретація

Відхилення S можуть бути як додатніми так і від'ємними (S10, S20), але оскільки знаки нас не цікавлять, будемо розглядати квадрати цих відхилень. Висунемо вимогу, щоб квадрати відхилень були мінімальними:

Si2 = (Yei - Yai)2 min (2.2)

Вираз називають критерієм найменших квадратів, а метод визначення параметрів апроксимуючої кривої з використанням цього критерію -- методом найменших квадратів.

Укрупнена блок-схема алгоритму має вигляд, показаний на малюнку 2.2.

В блоці вводу вхідних даних задаються: число вузлів N, порядок апроксимуючого поліному M, табличні значення змінних xi, yi, та крок зміни аргументу. Наступним короком є формування масиву [X,Y] та обчилення сум ?хmy. Далі формується матриця Грамма - розширена матриця системи рівнянь відносно невідомих коефіцієнтів cі. Розмір розширеної матриці системи (22) встановлюється в залежності порядку поліному: число рядків M=M+1, число стовпців M=M+2.

Наступним кроком алгоритм передбачає рішення системи (22) методом Гауса та вивід коефіцієнтів рівняння регресії.

Заключна циклічна процедура дозволяє вирахувати значення функції в вузлових та не вузлових точках відрізку [a,b] і визначити похибку апроксимації.



Рис. 2.2. Укрупнена блок-схема алгоритму методу найменших квадратів

За допомогою програми 2- APROKSIM.EXE ми знаходимо математичний вираз функції, що описує залежність температури від товщини стінки парами точок: X;T(x).

Вихідними даними для програми є: кількість вузлів інтерполяції, значення аргументу (Х) та функції (Т(х)) в цих вузлах, а також ступінь полінома.

За результатами роботи програми були отримані наступні значення коефіцієнтів полінома:

a(0) = 5.984; a(1) = -3.726;

Тоді функція, що описує залежність температури від товщини стінки буде мати вигляд:

, °К

(2.3)алгоритм апроксимація різничний
Чисельне інтегрування функцій базується на геометричному тлумаченні визначеного інтегралу як площі фігури, обмеженої прямими х=а, х=b, віссю абсцис ОХ та кривої у=F(x).

  1. Пакетна реалізація методу




    1. Вибір виду регресійної залежності






Визначення коефіцієнтів регресії МНК





    1. Побудова графіка функції регресії і графіка точок апроксимації і точкового графіка заданих точок апроксимації





4 Програмна реалізація методу
4.1 Текст програми з коментарями.
#include

#include

#include

using namespace std;

int main()

{

setlocale(LC_ALL, "ukr");

int i, j, k, n;

float qX;

float wX;

cout << "Введiть кiлькiсть точок:\n";

cin >> n;

float da, db, a, b;

float* x = new float[n];

float* y = new float[n];

cout << "\nВведiть значення X:\n";

for (i = 0; i < n; i++) {

cin >> x[i];

}

cout << "\nВведiть значення Y:\n";

for (i = 0; i < n; i++) {

cin >> y[i];

}

float xsum = 0, x2sum = 0, ysum = 0, xysum = 0, qXsum = 0, wXsum = 0, YX = 0;

for (i = 0; i < n; i++)

{

xsum = xsum + x[i];

ysum = ysum + y[i];

wXsum = wXsum + (log(x[i]));

qXsum = qXsum + (pow(log(x[i]), 2));

YX = YX + (y[i] * log(x[i]));

}

float masxy[2][2], masXY[1][2];

masxy[0][0] = n;

masxy[0][1] = wXsum;

masxy[1][0] = wXsum;

masxy[1][1] = qXsum;

masXY[0][0] = ysum;

masXY[0][1] = YX;

float d;

d = ((masxy[0][0] * masxy[1][1]) - (masxy[0][1] * masxy[1][0]));

masxy[0][0] = masXY[0][0];

masxy[1][0] = masXY[0][1];

da = (pow(-1, 2) * masxy[0][0] * masxy[1][1]) + (pow(-1, 3) * masxy[1][0] * masxy[0][1]);

masxy[0][0] = n;

masxy[0][1] = ysum;

masxy[1][0] = wXsum;

masxy[1][1] = YX;

db = (pow(-1, 2) * masxy[0][0] * masxy[1][1]) + (pow(-1, 3) * masxy[1][0] * masxy[0][1]);

a = da / d;

b = db / d;

float* y_fit = new float[n];

for (i = 0; i < n; i++) {

y_fit[i] = a + b * (log(x[i]));

}

cout << "Номер" << setw(5) << "x" << setw(19) << "y" << setw(19) << "y

" << endl;

cout << "-----------------------------------------------------------------\n";

for (i = 0; i < n; i++)

cout << i + 1 << "." << setw(8) << setprecision(6) << x[i] << setw(19) << setprecision(6) << y[i] << setw(21) << setprecision(6) << y_fit[i] << endl;

cout << "\nЛiнiя має вид:\n\n" << b << "x" << " + " << a << endl;

return 0;

}
4.2 Результати виконання програми.



Висновки

В ході виконання лабораторної роботи було апроксимовано функцію методом найменших квадратів проектно та програмно.

Побудовано графік початкових значень для визначення коректності результату
скачати

© Усі права захищені
написати до нас