+38 (093)  990-30-70

Новости

Королевский бал у Вас дома

НОУ ІНТУЇТ | лекція | Обробка результатів експерименту. Метод найменших квадратів

  1. 11.5 Підбір залежностей методом найменших квадратів в Octave 11.5.1 Функції Octave, використовувані...
  2. 11.5.2 Приклади розв'язання задач

11.5 Підбір залежностей методом найменших квадратів в Octave

11.5.1 Функції Octave, використовувані для підбору залежно МНК

Для вирішення завдань підбору аналітичних залежностей за експериментальними даними можна використовувати такі функції Octave:

11.5.2 Приклади розв'язання задач

Приклад 11.1. В -> Основах хіміі-> Д.І. Менделєєва наводяться дані про розчинність азотнокислого натрію Приклад 11 в залежності від температури води. У 100 частинах води ( табл. 11.3 ) Розчиняється наступне число умовних частин при відповідних температурах. Потрібно визначити розчинність азотнокислого натрію при температурі в разі лінійної залежності і знайти коефіцієнт кореляції.

Рішення завдання 11.1 з коментарями наведено в лістингу 11.1 .

% Введення експериментальних даних X = [0 4 10 15 21 29 36 51 68]; Y = [66.7 71.0 76.3 80.6 85.7 92.9 99. 4 113.6 125.1]; % Обчислення вектора коефіцієнтів полінома y = a1 * x + a2 [a] = polyfit (X, Y, 1)% Обчислення значення полінома y = a1 * x + a2 в точці t = 32 t = 32; yt = a (1) * t + a (2)% Побудова графіка полінома y = a1 * x + a2, експериментальних точок% і значення в заданій точці в одній графічній області x = 0: 68; y = a (1) * x + a (2); plot (X, Y, 'ok', x, y, '-k', t, yt, '* k') grid on; % Обчислення коефіцієнта кореляції k = cor (x, y)% Результати обчислень a = 0.87064 67.50779 yt = 95.368 k = 1 Лістинг 11.1. Рішення наприклад 11.1

на Мал. 11.2 наведено графічне рішення цього завдання, зображені експериментальні точки, лінія регресії на   Мал , На якому відзначена точка .

Приклад 11.2. В результаті експерименту отримана таблична залежність Приклад 11 ( см. табл. 11.4 ). Підібрати аналітичну залежність методом найменших квадратів. Обчислити очікуване значення в точках 2, 3, 4. Обчислити індекс кореляції. Рішення завдання підбору параметрів функції в Octave можливо двома способами:

Таблиця 11.4. Дані наприклад 11.2 x 1 1,4 1,8 2,2 2,6 3 3,4 3,8 4,2 4,6 5 5,4 5,8 y 0,7 0,75 0,67 0, 62 0,51 0,45 0,4 0,32 0,28 0,25 0,22 0,16 0,1

  1. Рішення завдання шляхом пошуку мінімуму функції (11.15) 2. Після чого треба перерахувати значення коефіцієнта a за формулою .
  2. Формування системи лінійних алгебраїчних рівнянь (11.16) 3 і її рішення.

Розглянемо послідовно обидва варіанти вирішення завдання.

Спосіб 1.

Функція (11.15) реалізована в Octave за допомогою функції Функція (11 . Повний текст програми вирішення задачі способом 1 з коментарями наведено на лістингу 11.2 . замість коефіцієнтів з формул (11.15) - (11.16) в програмі на Octave використовується масив .

function s = f_mnk (c)% Змінні x, y є глобальними, використовуються в декількох функціях global x; global y; s = 0; for i = 1: length (x) s = s + (log (y (i)) - c (1) -c (2) * log (x (i)) * c (3) * x (i)) ^ 2; end end% _________________________________________________ global x; global y; % Завдання початкового значення вектора c, при неправильному його% визначенні, екстремум може бути знайдений неправильно. c = [2; 1; 3]; % Визначення координат експериментальних точок x = [1 1.4 1.8 2.2 2.6 3 3.4 3.8 4.2 4.6 5 5.4 5.8]; y = [0.7 0.75 0.67 0.62 0.51 0.45 0.4 0.32 0.28 0.25 0.22 0.16 0.1]; % Рішення задачі оптимізації функції 11.15 за допомогою sqp. c = sqp (c, @ f_mnk)% Обчислення сумарної квадратичної помилки для підібраною% залежно та висновок її на екран. sum1 = f_mnk (c)% Формування точок для побудови графіка підібраною кривої. x1 = 1: 0.1: 6; y1 = exp (c (1)). * x1. ^ c (2). * exp (c (3). * x1); % Обчислення значень на підібраною кривої в заданих точках. yr = exp (c (1)). * x. ^ c (2). * exp (c (3). * x); % Обчислення очікуваного значення підібраною функції в точках x = [2,3,4] x2 = [2 3 4] y2 = exp (c (1)). * X2. ^ C (2). * Exp (c (3) . * x2)% Побудова графіка: підібрана крива, f (x2) і експериментальні точки. plot (x1, y1, '-r', x, y, '* b', x2, y2, 'sk'); % Обчислення індексу кореляції. R = sqrt (1-sum ((y-yr). ^ 2) / sum ((y-mean (y)). ^ 2))% Результати обчислень c = 0.33503 0.90183 -0.69337 sum1 = 0.090533 x2 = 2 3 4 y2 = 0.65272 0.47033 0.30475 R = 0.99533 Лістинг 11.2. Рішення наприклад 11.2 спосіб 1.

Таким чином підібрана залежність Таким чином підібрана залежність . Обчислено очікуване значення в точках . Графік підібраною залежності разом з експериментальними точками і розрахунковими значеннями зображений на Мал. 11.3 . Індекс кореляції дорівнює 0.99533.

Спосіб 2.

Тепер розглянемо рішення задачі 11.2 шляхом вирішення системи 11.16. Рішення з коментарями наведено в лістингу 11.3 . Результати та графіки при вирішенні обома способами повністю збігаються.

function s = f_mnk (c)% Змінні x, y є глобальними, використовуються в декількох функціях global x; global y; s = 0; for i = 1: length (x) s = s + (log (y (i)) - c (1) -c (2) * log (x (i)) - c (3) * x (i)) ^ 2; end end% ___________________________________ global x; global y; % Визначення координат експериментальних точок x = [1 1.4 1.8 2.2 2.6 3 3.4 3.8 4.2 4.6 5 5.4 5.8]; y = [0.7 0.75 0.67 0.62 0.51 0.45 0.4 0.32 0.28 0.25 0.22 0.16 0.1]; % Формування СЛАР (11.16) G = [length (x) sum (log (x)) sum (x); sum (log (x)) sum (log (x). * log (x)) sum (x. * log (x)); sum (x) sum (x. * log (x)) sum (x. * x)]; H = [sum (log (y)); sum (log (y). * log (x)); sum (log (y). * x)]; % Рішення СЛАР методом Гауса за допомогою функції rref. C = rref ([GH]); n = size (C); c = C (:, n (2))% Обчислення сумарної квадратичної помилки для підібраною% залежно та висновок її на екран. sum1 = f_mnk (c)% Формування точок для побудови графіка підібраною кривої. x1 = 1: 0.1: 6; y1 = exp (c (1)). * x1. ^ c (2). * exp (c (3). * x1); % Обчислення значень на підібраною кривої в заданих точках. yr = exp (c (1)). * x. ^ c (2). * exp (c (3). * x); % Обчислення очікуваного значення підібраною функції в точках x = [2,3,4] x2 = [2 3 4] y2 = exp (c (1)). * X2. ^ C (2). * Exp (c (3) . * x2)% Побудова графіка: підібрана крива, f (x2) і експериментальні точки. plot (x1, y1, '-r', x, y, '* b', x2, y2, 'sk'); % Обчислення індексу кореляції. R = sqrt (1-sum ((y-yr). ^ 2) / sum ((y-mean (y)). ^ 2)) Лістинг 11.3. Рішення наприклад 11.2 спосіб 2.