Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KT_P_ch1.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
12 Мб
Скачать
☆

Найпростіші обчислення. Робота з матрицями й векторами. Багатомірні матриці. Діалоговий режим роботи

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

При такому використання необхідно використовувати певні правила запису математичних функцій (див. таблицю 2.1).

Таблиця 2.1 Синтаксис математичних функцій і операцій.

Синтаксис математики

Синтаксис програми

sin(x), cos(x), tg(x), ctg(x), sec(x), csec(x); arcsin(x) і т.д.; sh(x) і т.д.; arcsh(x) і т.д.

sin(x), cos(x), tan(x), ctan(x), sc(x), csc(x); asin(x) і т.д.; hsin(x) і т.д.; hasin(x) і т.д.

ln(x), lg(x), ,

log(x), log10(x), exp(x), a^b

+ - * / ( )

+ - * / ( )

Використання MatLAB як калькулятор при використання речовинних чисел досить просто і його освоєння не виходить за межі знання синтаксису середовища.

Ми розглянемо в даній частині лекції лише декілька спеціальних математичних операцій:

Використання ділення зліва на право. Це ділення відрізняється записом похилої риси. Звичне нам розподіл записується «/», а цей розподіл записується «\». Пояснимо на прикладі обчислення:

>> 8\2

ans =

0.2500

>> 8/2

ans =

4

Тобто. У першому випадку як рас і використаний розподіл про яке мова йде, записане вираження еквівалентно нашим звичайним «двом восьмим», тобто чверті, що й показало обчислення. Подібна операція використовується при роботі зі СЛАР.

Ще ми розглянемо основні функції дотичні роботи із числами й виразами:

Таблиця 2.2 Числові функції.

Функція і її синтаксис

Опис

format short

Формує всі наступні видачі відповідей і чисел у скороченому форматі

format rat

Формує видачу наступних результатів у вигляді наближеного значення як дріб або сукупність дробів

format long

Формує видачу наступних результатів з показанням всіх цифр відповіді

sqrt(x)

Обчислює корінь квадратний

pow2(x)

Зводить двійку в степінь х

pi

Видає число пі

round(x)

Заокруглює число до цілого за всіма правилами заокруглення

fix(x)

Відкидає дробову частину без округлення

floor(x)

Округляє до меншого цілого

ceil(x)

Округляє до великого цілого

mod(x,y)

rem(x,y)

sign(x)

Видає знак числа формуючи відповідь у вигляді 1 зі знаком або нуля у випадку х=0

factor(x)

Розкладає на прості співмножники

isprime(x)

Видає істину (1) якщо х простої число

primes(x)

Формує ряд простих чисел до числа х

rat(x)

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

factorial(x)

Обчислює факторіал числа х

nchosek(n,m)

Обчислює число сполучень m з n

abs(x)

Обчислює модуль числа х (у тому числі й комплексних)

inf

Еквівалент нескінченності

Na

Невизначеність виду 0/0 або ∞/∞

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

Найбільший інтерес нас буде цікавити використання комплексного змінного й роботи з комплексними числами. Приведемо синтаксис запису комплексного числа:

8+i*7

- 9-j*1

Як бачите програма може сприймати (точніше в системі зарезервовано) уявну одиницю як j або i. Всі (майже всі) перераховані вище функції обрахування можуть працювати й з комплексними числами.

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

Таблиця 2.3 Функції комплексного змінного.

Функція і її синтаксис

Опис

abs(x)

Обчислює модуль числа х

conj(x)

Повертає число комплексно^-комплексно^-спряжене х

imag(x)

Видає уявну частину числа

real(x)

Видає дійсну частину числа

angle(x)

Повертає аргумент (у радіанах) числа, але треба стежити за квадрантом куди попадає число, тому що середовище використовує arctg

isreal(x)

Перевіряє число на його приналежність до класу дійсних чисел, повертає 1 (істину) якщо це так, інакше (х – комплексне число) повертає хибу (0)

При роботі з комплексними числами можна використовувати співвідношення Ейлера, тобто записавши число в експонентній формі можна одержати (нажавши Enter) це ж число але в алгебраїчному записі. При цьому треба пам'ятати що кут вказується в радіанах.

>> 5*exp(-j*pi/6)

ans =

4.3301 - 2.5000i

При записі операторів у середовищі можна використовувати спеціальні функції подавляючі вивід результату вираження (обчислення) відразу ж. Цим спеціальним символом служить крапка з комою тобто «;». При записі декількох виражень в один рядок можна застосовувати крім крапки з коми й кому. У випадку якщо необхідно розтягти один оператор на кілька рядків (для кращої наочність, наприклад) необхідно використовувати три крапки «…», записують три крапки в місці переносу виразу на інший рядок:

>> A=[1 2 8 ...

3 7 0 ...

7 9 5];

Матриці й вектора

Поняття матриці й вектора було дано в першій лекції й тому ми перейдемо відразу до вивчення основних функцій, які знадобляться, для роботи (див. таблицю № 2.4), але перед цим введемо спосіб завдання матриці (вектора) і спосіб звертання до його елементів.

Введення матриці здійснюється використанням методу так званого об'єднання елементів. Це об'єднання записується так:

>> A=[1 1 1 2];

Тут ми сформували вектор (або матрицю стовпець, причому для системи не важлива її просторова орієнтація, тобто що розмірність 1хn, що nx1, все рівно). Елементи при такому формуванні розділяються пробілами або комами. Для формування матриці, роблять порядковий запис, відокремлюючи при цьому рядка один від одного крапкою з комою:

>> A=[1 2 8; 3 7 0; 7 9 5];

При цьому можна робити й складання матриці шляхом об'єднання матриць або векторів між собою (тут вектора A1 A2 минулого визначені заздалегідь):

>> Q=[A1;A2];

При цьому вектор A1 буде формувати перший рядок матриці, а вектор A2 другий.

Таблиця 2.4 Функції матричних дій

Функція і її синтаксис

Опис

zeros(m, n)

Повертає нульову матрицю ( що складається з одних нулів) розмірності mхn.

ones(m, n)

Повертає матрицю складається з одних одиниць розмірності mхn.

eye(m, n)

Створює одиничну матрицю розмірності mхn.

rand(m, n)

Повертає матрицю випадкових чисел рівномірно розподілених у діапазоні від 0 до 1, матриця має розмірність mхn.

randn(m, n)

Повертає матрицю розмірності mхn, що складаються з випадкових чисел у діапазоні від 0 до 1 і що мають гаусовское розподіл (має нормальний закон розподілу).

hadamard(n)

Повертає матрицю Адамара розмірності nхn.

hild(n)

Повертає матрицю Гільберта розмірності nхn.

invhild(n)

Повертає зворотну матрицю Гільберта розмірності nхn.

reshape(A, n, m)

Функція утворить матрицю розмірності nхm шляхом вибірки елементів заданої матриці А по стовпцях і наступному розподілі цих елементів по m стовпцях кожний з яких містить n елементів, при цьому матриця А повинна мати розмірність nхm.

tril(A)

Вибирає нижню трикутну матрицю з матриці А

triu(A)

Вибирає верхню трикутну матрицю з матриці А

diag(A, n)

Функція створює діагональну матрицю з вектора А, при цьому другий параметр необов'язковий. Якщо другий параметр присутній, то створюється матриця в якій вектор А міститься в іншу діагональ, при цьому якщо n>0, то вектор міститься вище головної діагоналі, якщо n <0 те нижче, якщо n=0 те на головну діагональ.

Якщо А матриця, то функція видає вектор сформований з елементів головної її діагоналі, якщо другий параметр відсутній або дорівнює нулю. Якщо другий параметр присутній, то функція видає іншу діагональ, у відповідність із другим параметром (див. попередній абзац).

’ (апостроф)

Оператор робить транспонування матриці

+ - * / \ ^

Математичні дії над матрицями. Застосовні як до вираження виду « матриця-скаляр», так і « матриця-матриця» (за винятком зведення в ступінь, він застосовна тільки до вираження « матриця-скаляр»). У всіх операціях необхідно стежити за размерностями матриць.

inv(A)

Повертає зворотну матрицю стосовно матриці А

det(A)

Підрахунок визначника (детермінанта) матриці

cross(A, B)

Векторний добуток векторів

.* ./ .\ .^

Заелементні операції. При застосуванні цих операцій матриці повинні мати однакові розмірності, або ж бути скалярами (числом). Пі цьому відбувається зіставлення елементів однієї матриці елементам іншої матриці й виконується відповідна операція.

lu(A)

Робить LU-Розкладання матриці А й видає матриці в наступному порядку [L U P] (подобнае запис обов'язковий), при цьому виконується наступне співвідношення P*A=L*U.

size(A)

Повертає масив складений із числа рядків (перший елемент) і числа стовпців (другий елемент).

sum(A)

Повертає суму всіх елементів по стовпці

mean(A)

Повертає середнє значення стовпця матриці

std(A)

Повертає середньоквадратичне відхилення стовпця матриці

min(A) max(A)

Повертає мінімум і максимум відповідно, по стовпці матриці

sort(A)

Сортує стовпець матриці по зростанню

prod(A)

Обчислює добуток всіх елементів стовпців

При звертанні до елемента мариці роблять запис виду A(1,8), при цьому відбулося звертання до елемента першого рядка восьмого стовпця. Таким шляхом можна не тільки зчитувати значення елемента але й міняти його значення. Якщо необхідно зробити звернення не до одного елемента а до декількох або точніше виділити із загальної матриці підматрицю то роблять так A(1:5,6:8), при цьому буде виділено підматрицю починаючи з 1 рядка й кінчаючи 5 і виділили стовбці з 6 по 8. якщо необхідно виділити весь стовпець (рядок), то вмето вказівки конкретних номерів можна просто поставити порожня двокрапка (A(:,6:8)).

Якщо потрібно сформувати вектор, елементи якого розташовані в арифметичній прогресії то простіше всього це зробити так:

x=xn:h:xk

xn – початкове значення;

xk – кінцеве значення;

h – крок зміни.

У такий спосіб добре задавати, наприклад час зміни сигналу або створювати масив координати.

Багатовимірні матриці

Багатовимірна матриця - матриця розмірність, що має, більше двох. Якщо звичайну матрицю ми представляли як двовимірний простір (якщо вектор, то пряма), то багатовимірна матриця представляє із себе n-мірний простір. При індексації таких масивів використовують таку ж технологію, але з урахуванням розмірності, тобто кількість індексів повинно збігатися з кількістю розмірності (вимірів).

Рис. 2.1 Тривимірна матриця

Для ілюстрації цього припустимо, що є прилад, що формує щодня нову матрицю утримуючу в собі набір значень декількох фізичних величин, розкиданих у часі. До кінця місяця, апарат буде змушений зберігати 30 матриць, які будуть займати значний обсяг пам'яті (включаючи інформацію про параметри, датах і т.п., тобто «лишную інформацію», яку можна забрати при архівації). По витратах пам’яті, зручніше звести ці 30 матриць в одну (див. рис. 2.1), тобто одержати тривимірну матрицю фізичних величин зміряних за один місяць. При цьому наша матриця буде мати наступну структуру: час буде утримуватися в площинах паралельно площини ху й розташовуватися в стовпцях; фізичні величини утворять там же рядки; значення величин утворять там же стовпці; матриці утримуючі дні розташовуються в площині zx; причому в початок координат поміщена матриця зміряна в перший день місяця.

При нумерації всі наступні виміри вказуються останніми, тобто третій вимір вказується як третій індекс, четверте як четвертий і т.д.

При формуванні таких масивів, необхідно пам'ятати, що вони утворяться не простим набором елементів, а створюються з матриць розмірності на одиницю меншою, чим масив, що утвориться. При цьому використовується функція cat(n, A1,A2,…,An), де n – розмірність вздовж якої відбувається об'єднання масивів A1 … An...

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]