- •Аналіз та обробка експериментальних даних засобами MathCAD в проектуванні СОС
- •1 Робота з файлами даних
- •1.1 Запис даних y файл
- •1.2 Зчитування даних з файла
- •1.3 Імпортування даних з файла
- •1.4 Експортування даних y файл
- •1.6 Обмін даних з іншими програмами
- •1.6.1 Обмін даними з Excel.
- •1.7 Підготовка даних до аналізу
- •1.8 Створення Масивів, використовуючи індекси
- •1.8.1 Створення елементів масиву математично
- •1.8.2 Створення масиву прямим введенням елементів
- •1.8.3 Створення масиву, використовуючи таблицю
- •1.8.4 Інші шляхи створення масиву даних
- •1.9 Сортування даних
- •1.9.1 Звертання до підмножин даних
- •1.9.2 Розділення даних на групи, використовуючи програму
- •2 Регресія
- •2.1 Використання line і medfit в лінійній регресії
- •2.1.1 Функції лінійної регресії
- •2.1.2 Функція line
- •2.1.3 Експоненційні дані
- •2.1.4 Medfit
- •2.2 Багатовимірна регресія
- •2.2.1 Багатовимірна поліноміальна регресія
- •2.2.2 Результати функцій regress і loess
- •2.2.3 Прогляд результатів interp
- •2.2.4 Зауваження
- •2.3 Спеціалізовані підгоночні функції
- •2.3.1 Використання спеціалізованих підгоночних функцій
- •2.4 Лінійна регресія з використанням linfit
- •2.4.1 Функція linfit
- •2.4.2 Представлення результатів функції
- •2.5 Узагальнена нелінійна регресія (genfit)
- •2.5.1 Функція Genfit
- •3 Інтерполяція
- •3.1.1 cspline інтерполяція багатьох змінних
- •3.1.2 Функція cspline
- •3.1.3 Функція interp
- •3.1.4 Прогляд результатів interp
- •4 Згладжування даних
- •4.1 Вбудовані функції згладжування
- •4.1.1 Функція medsmooth
- •4.1.2 Функція ksmooth
- •4.1.3 Функція supsmooth
- •5 КОНТРОЛЬНІ ЗАПИТАННЯ
- •6 ЛАБОРАТОРНЕ ЗАВДАННЯ
- •8 СПИСОК ЛІТЕРАТУРИ
1.8.2Створення масиву прямим введенням елементів
Щоб створити масив даних потрібно:
1.Надрукувати ім'я масиву H потім двокрапку для операції визначення. H := 
2.Клацнути в мітку-заповнювача і вибрати Matrix з меню Insert. Введіть необхідну кількість рядків і стовпців в діалозі і клацнути Create.
3.Введіть дані в масиві placeholders.
|
|
|
|
|
|
|
|
|
|
|
|
0 |
1 |
2 |
3 |
4 |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
2 |
3 |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|||||||||||||
H := |
|
|
|
|
|
|
|
|
|
|
H := 2 2 4 6 |
8 |
|
||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
3 |
3 |
6 |
9 |
12 |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
4 |
4 |
8 |
12 |
16 |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|||||||||||||
1.8.3Створення масиву, використовуючи таблицю
Можна також створити масив за допомогою введення даних в таблицю, використовуючи компоненту Input Table:
1.Вибрати Component з меню Insert .
2.Вибрати “Input Table” і клацнути “Finish”.
3.Надрукуйте ім'я змінної в мітці-заповнювачі зліва.
Напр., надрукуйте Data_T Data_T := |
|
|
|
|
і отримаєте: |
|
|
0 |
1 |
0 |
|
0 |
||
1
4. Введіть дані в комірки електронної таблиці.
1.8.4Інші шляхи створення масиву даних
Можна також створити масив даних за допомогою читання файла даних у робочу таблицю: див. розділ 1.
1.9Сортування даних
Деякі статистичні функції вимагають, щоб дані, які зберігаються у векторі, були посортовані. Для сортування даних можна використати функцію sort(v), де v - вектор.
11
Напр.,
в даній таблиці стовпці представляють:
0)номер п/п,
1)рід
2)оцінку виконання завдання
DATA := |
|
|
|
|
|
|
|
|
|
0 |
|
1 |
|
2 |
|
|
0 |
|
1 |
|
1 |
1.3 |
|
|
1 |
|
2 |
|
2 |
5.1 |
|
|
2 |
|
3 |
|
1 |
2.3 |
|
|
3 |
|
4 |
|
2 |
6.3 |
|
|
4 |
|
5 |
|
1 |
2.7 |
|
|
5 |
|
6 |
|
2 |
8.3 |
|
|
|
|
|
|
|
|
|
Щоб вибрати дані для рейтингу виконання завдання,
надрукуйте: 2 . Це створить вектор значень з стовпця 2. Далі сортуємо дані, використовуючи функцію sort. Щоб відсортувати значення в зворотньому напрямку, використовуйте функцію reverse(A), де A – вектор або матриця.
Напр., |
|
|
1.3 |
|
|
|
|
8.3 |
|
|
|
|
|
2.3 |
|
|
|
|
6.3 |
|
|
sorted := sort (Job) |
|
|
2.7 |
|
|
|
|
5.1 |
|
|
sorted |
= |
|
|
|
reversed = |
|
|
|
||
|
5.1 |
|
|
|
2.7 |
|
|
|||
reversed := reverse(sort(Job)) |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|||
|
|
|
6.3 |
|
|
|
|
2.3 |
|
|
|
|
|
8.3 |
|
|
|
|
1.3 |
|
|
Функції sort і reverse можуть сортувати не тільки вектор, а і матрицю. При цьому, сортування матриці відбувається відносно 1-го стовбця. А для сортування відносно інших стовбчиків, напр. N, слід використовувати функцію csort(, N).
Напр., |
|
|
3 |
1 |
2.3 |
|
|
щоб відсортувати дані оцінок |
|
|
5 |
1 |
2.7 |
|
|
за родом (стовпець 1): |
|
|
1 |
1 |
1.3 |
|
|
Gender = |
|
|
|
||||
Gender := csort (DATA ,1) |
|
6 |
2 |
8.3 |
|
|
|
|
|||||||
|
|
|
|
|
|||
|
|
|
4 |
2 |
6.3 |
|
|
2 2 5.1
При такому сортуванні, значення в кожному ряді залишаються разом.
Функція rsort(, N) сортує дані в матриці відповідно до значень стовпця в ряді N.
12
|
5 |
4 |
3 |
|
|
3 |
4 |
5 |
|
|
MM := |
5 |
6 |
7 |
|
rsort(MM ,2) = |
7 |
6 |
5 |
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
47 |
9 |
4 |
|
|
4 |
9 |
47 |
|
|
1.9.1Звертання до підмножин даних
Mathcad дозволяє звертатись до окремих стовпців (або
рядків елементів): |
|
|
|
|
|
|
|
|
|||
Нехай дано: |
|
|
45 |
4 |
|
Вибираємо 0-й стовпець: |
|||||
|
|
6 |
|
|
|
6 |
|
||||
Q := |
|
4 |
5 |
6 |
|
Q 0 |
= |
4 |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
7 |
4 |
|
|
|
89 |
|||
Для звертання до окремого рядка, спочатку потрібно транспонувати матрицю, а після взяти потрібний стовбець.
Для отримання 1-го рядка, |
|
0 |
|
6 |
|
|
потрібно: |
T |
|
|
|
|
|
|
|
|
||||
|
(Q ) |
|
= |
45 |
|
|
|
|
|
||||
|
|
|
||||
|
|
|
|
4 |
|
|
Для звертання до окремого елемента вектора чи матриці слід використовувати індекси, як це описано раніше.
Напр., елемент 2-го рядка, Q1,0 = 4 
1-го стовпця в Q:
1.9.2Розділення даних на групи, використовуючи програму
Деякі групи даних не так легко впорядкувати відповідно до рядів або стовпців. Тому, часто корисним є написання програми на Mathcad-і для вибору конкретних значень з вектора або матриці.
Напр., щоб розділити матрицю DATA на два набори даних відповідно до роду:
13
Male(D) := |
i ← 0 |
|
|
|
|
|
||
|
for j 0..rows(D) − 1 |
|||||||
|
if Dj ,1 |
|
1 |
|
|
|
||
|
|
|
|
|||||
|
|
|
|
|||||
|
|
|
T i |
← (DT) j |
||||
|
|
|
||||||
|
|
|
i ← i + 1 |
|
|
|
||
|
Gender ← TT |
|
|
|
||||
|
|
1 |
1 |
1.3 |
|
|||
Male(DATA) = |
3 |
1 |
2.3 |
|
|
|
||
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
5 |
1 |
2.7 |
|
|||
Female(D) := |
i ← 0 |
|
|
|
|
|
||
|
for j 0..rows(D) − 1 |
|||||||
|
if Dj ,1 |
|
2 |
|
|
|
||
|
|
|
|
|||||
|
|
|
|
|||||
|
|
|
T i |
← (DT) j |
||||
|
|
|
||||||
|
|
|
i ← i + 1 |
|
|
|
||
|
Gender ← TT |
|
|
|
||||
|
|
2 |
2 |
5.1 |
|
|||
Female(DATA) = |
4 |
2 |
6.3 |
|
|
|
||
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
6 |
2 |
8.3 |
|
|||
14
