EKh / Материалы по электра / APR-a
.docПрограма APR
Апроксимація експериментальних даних поліномами
-
Мета розрахунків
Програма виконує математичну обробку експериментальних даних, заданих в формі таблиці, що складається з двох колонок – значень незалежної змінної (аргумента) “х” і відповідних значень залежної змінної (функції) “y”. Такі таблиці одержують, вимірюючи деяку залежність y=f(x) між окремими факторами “х” та “y” технічної системи (рис.1).
Кінцевим результатом математичної обробки є математична формула (функція) y=f(x), яка найкраще описує задану емпіричну (виміряну) залежність.
В практиці технічної електрохімії, наприклад, часто вимірюють поляризаційні характеристики електродних процесів, =f(i), або залежність виходу за струмом деякої реакції від концентрації реагента ВС=f(С), чи від густини струму, ВС=f(i). Як правило, такі залежності неможливо визначити з теоретичних міркувань, але їх в конкретних технічних об’єктах можна точно виміряти.
В комп’ютерних програмах для моделювання складних технічних об”єктів такі об”єктивно існуючі залежності між діючими факторами потрібно враховувати, і це можна зробити, коли є відповідний математичний вираз залежності y=f(x).
Програма APR і призначена для того, щоб знайти таку математичну функцію y=f(x), яка найкраще відповідає експериментальним даним. Для багатьох залежностей, які зустрічаються в технічній електрохімії, їх геометричні форми порівняно прості, тому їх досить точно можна описувати універсальним виразом алгебраїчного полінома
, (1)
з відповідними коефіцієнтами а0, а1, … аМ. Завдання алгоритму якраз і зводиться до того, щоб визначити ці коефіцієнти.
Алгоритм. Якщо кількість N пар чисел “x”-“y” (кількість точок на графіку y=f(x)) дорівнює кількості M+1 невідомих коефіцієнтів а0…аМ, можна будь-яким способом вирішити систему М+1 алгебраїчних рівнянь (1) відносно невідомих коефіцієнтів і одержати значення коефіцієнтів такі, що підрахований за виразом (1) графік y=f(x) точно пройде через всі точки. Насправді це рішення буде неточним, бо числові значення параметрів “x” та “y” в окремих точках завжди вимірюються з деякою помилкою, і функція y=f(x) автоматично буде враховувати всі ці помилки як закономірність поведінки об’єкта.
В алгоритмі нелінійного програмування, який використано в програміAPR, приймається, що кількість експериментальних точок N на графіку y=f(x) перевищує кількість M+1 невідомих коефіцієнтів а0…аМ. Тоді алгоритмами нелінійного програмування (оптимізації) підбираються такі значення коефіцієнтів а0…аМ , щоб сума квадратів відхилень між розрахованими і експериментальним значеннями “у” в усіх N експериментальних точках була найменшою:
. (2)
Цей метод називають методом найменших квадратів (МНК), він дає розрахунковий графік залежності y=f(x), який найкраще (найточніше) проходить через сукупність експериментальних точок (рис.1).
Фактично метод МНК усереднює експериментальні результати і є методом статистичної обробки даних. Тому в цьому методі крім самих значень коефіцієнтів підраховують також статистичні характеристики вказаної залежності – дисперсію
(3)
і середньоквадратичне відхилення
, (4)
тобто середнє відхилення між експериментальними (виміряними) і розрахованими значеннями параметра “у” для всіх N точок.
3. Форма вхідних даних
Вхідні дані вводять в файл APR.DAT, який має таку форму:
____N____M______XMAX______YMAX____ind
8 4 1 1 2
________________________ ___________
0.00001 0.00001
0.1 0.019
0.2 0.030
0.3 0.122
0.5 0.257
0.7 0.452
0.8 0.537
0.9 0.855
N |
|
Кількість заданих пар чисел (ряд експериментальних даних). |
M (MN) |
|
Кількість невідомих коефіцієнтів полінома (1).Ступінь полінома (1), або максимальне значення показника ступеню в останньому доданку, дорівнює числу М+1. Число М повинно бути меншим за число N, інакше рішення буде неправильним. |
XMAXYMAX |
|
«Круглі» значення змінних «х» та «у», більші за максимальні значення в колонках таблиці. Вони визначають масштаб графіка (значення «х» та «у» на кінцях відповідної шкали).
|
ind |
|
Числовий індекс (ціле число). Може приймати значення «0» або « довільне ціле число, не нуль». Якщо значення ind=0, тоді на екран не виводиться графік. Це буває корисним тоді, коли з”являється незрозуміла похибка при виводі графіка на екран (програма зациклюється, на екрані- суцільний жовтий колір). Виключення графічних процедур дозволяє одержати рішення лише в числах і знайти причини похибки. |
4. Форма вихідних даних
Результати роботи програми виводяться в двох формах – як числові дані в файлі “REZ.REZ”, і в формі графіка апроксимаційного полінома.
В файлі результатів rez.rez виводиться рядок з заданими значеннями N,M, і далі – значення коефіцієнтів полінома, позначених як k0, k1, k2, ….kM-1
при подальшому практичному використанні коефіцієнтів полінома обмежуватись можна першими трьома значущими цифрами.
Наступна група даних – три колонки чисел X_Yexper_Yappr. Числа в перших двох колонках повторяють таблицю вхідних даних, а третя колонка Yappr– відповідні значення “у”, розраховані за апроксимаційним поліномом.
В кінці файла наведенно значення дисперсії 2.
Approximation: N= 8 M=4
Y = k0 + k1*X + k2*X**2 + ...
k0= -0.013863
k1= 0.228773
k2= 0.440948
k3= 0.440948
________X_____Yexper_____Yappr
0.1000 0.0190 0.0137
0.2000 0.0300 0.0518
0.3000 0.1220 0.1023
0.5000 0.2570 0.2470
0.7000 0.4520 0.4618
0.8000 0.5370 0.5998
0.9000 0.8550 0.7606
1.0000 0.9110 0.9459
dispersion =0.002527
Графічна інформація на екрані містить такі елементи:
- графік y=f(x) , побудований розрахунком з рівняння (1), середня лінія. ;
-
експериментальні точки (вхідні дані), позначені хрестиками;
-
дві суцільні лінії (зверху і знизу від середньої) обмежують “коридор похибок” – область, всередині якої значення відповідної функції відхиляються від середньої лінії на величину середньоквадратичного відхилення , з 95% вірогідністю за критерієм Стьюдента.
-
Характеристики полінома: кількість експериментальних точок “,” кількість коефіцієнтів “koef” (ступінь полінома на одиницю менша), середньоквадратичне відхилення “Sigma” і дисперсія “ disp”.
а б
в г
Рис.1. Функція y=f(x), апроксимована за даними наведеної вище таблиці Apr.dat.. Апроксимація виконана поліномами різних ступенів (а-в). Хрестики- експериментальні дані, середня лінія – розрахуно к за виразом (1) з вказаними на рисунках значеннями коефіцієнтів. Верхня і нижня лінії обмежують “коридор похибок” – область, всередині якої значення “у” відхиляються від середньої лінії на величину середньоквадратичного відхиленнфя .
-
Примітки та зауваження
-
Якщо графік починається з нульових значень, замість нулів в першому рядку чисел «х» та «у» потрібно вводити малі (близькі до нуля) числа, порядку 10-9.
-
Як можна бачити, порівнюючи наведені графіки, якість апроксимації залежить від вибору значень N та М. Великі значення коефіцієнта М (ступінь полінома) не означають підвищеної точності апроксимації. На рис. 1в,г графіки функції мають складнішу форму і повторюють складну форму розташування експериментальних точок, тоді як найчастіше ця форма є результат випадкової розбіжності даних.
5.3. При великих значеннях М і великій розбіжності даних форма розрахованої функції y=f(x) за межами експериментальних даних може бути явно неправильною, як на рисунку 1в в області після останньої точки . Тому потрібно звертати увагу на те, який вигляд має розрахована функція в таких областях. Можливо, доцільно змінити значення “М”.
Для точнішої апроксимації потрібна достатньо велика вибірка даних, N>>M. Апроксимацію доцільно повторити при різних значеннях ступеню полінома (М-1), і обрати найкращий варіант з мінімальним значенням “М”.
5.4. Інколи можна спостерігати на екрані занадто широкий коридор похибок. Це означає, що була використана мала кількість експериментальних точок N, і (або) існує велика розбіжність між даними. Для одержання задовільних результатів потрібно ввести додаткові експериментальні дані.
5.5. В деяких випадках виникають некоректні ситуації при побудові графіків, і програма зациклюється, а екран забарвлюється в жовтий колір. Для виходу з цього стану можна або перезавантажити операційну систему, або декілька разів повторити робочий цикл виконання розрахунків. Доцільно для перевірки причини вказаного явища ввести індекс ind=1 і одержувати лише числові результати для аналізу причин помилки.
Якщо така ситуація виникла, потрібно або довести процедуру до кінця (2-3 рази повторюючи послідовність всіх операцій, аж до виходу на екран файла *.Dat), або перезавантажити операційну систему (комбінація клавіш Ctrl+Alt+Del).