Роздрукувати сторінку
Главная \ Методичні вказівки \ Методичні вказівки \ 5021 Методичні вказівки до лабораторної роботи на тему Вступ до системи MATLAB

Методичні вказівки до лабораторної роботи на тему Вступ до системи MATLAB

« Назад

Призначення і сфера застосування математичного пакета MATLAB. Для розв’язання прикладних задач важливим є застосування засобів автоматизації обчислень від простих до досить громіздких, а також графічна візуалізація отриманих результатів. Сучасне програмне забезпечення ПЕОМ має досить різноманітні, потужні математичні пакети, наприклад, MATLAB, MAPLE, MATHEMATICA, які використовуються у математичних обчисленнях і аналітичних перетвореннях. Пакет MATLAB є інтерактивною системою з розвиненою довідковою системою, містить велику кількість операторів та функцій, застосування яких дає змогу чисельно розв’язувати складні задачі математики, фізики, хімії, інженерії, фінансів [1-3,5-8,10]. Крім вбудованих засобів, пакет можна доповнювати власними розробками, використовуючи як власну мову (М-програми), так і зовнішні алгоритмічні мови, наприклад, С#, JAVA. Підсумовуючи, охарактеризуємо спектр задач, які розв’язуються за допомогою пакета MATLAB:

- проведення математичних досліджень, що вимагають обчислень і аналітичних розрахунків;

- розробка і аналіз алгоритмів;

- математичне моделювання, комп’ютерний експеримент;

- аналіз і обробка даних;

- візуалізація, наукова та інженерна графіка;

- розробка графічних і розрахункових додатків.

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

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

Робота з меню здійснюється за допомогою маніпулятора миша та набору певних клавіатурних комбінацій (“гарячих клавіш ”).

У вікні робочої області відображаються імена змінних, уведених користувачем, та їх поточні значення.

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

Інтерактивний сеанс роботи в командному вікні MATLAB прийнято іменувати сесією (session). Сесія, по суті, є поточним документом, що відобра­жає роботу користувача із системою MATLAB. У ній є рядки введення даних, результатів і повідомлень про помилки. За допомогою команд сесії користувач взаємодіє із середовищем пакета. Поіменовані дані поточної сесії, розташовані в робочій області пам'яті (але не саму сесію), можна записати на диск у вигляді файлів формату .mat, використовуючи команду save (зберегти). Командою load (завантажити) можна відновити з диска дані робочої області. Фрагменти сесії можна зберегти в певному документі за допомогою команди diary.

При роботі з MATLAB у командному режимі діє найпростіший рядковий редактор. Команди, які використовуються в редакторі, мають, як правило, відповідні комбінації клавіш для їх виклику. Ці комбінації наведені в табл. 1.1.

Таблиця 1.1. Комбінації клавіш для команд рядкового редактора

Клавіша

Призначення

<®> або <Ctrl+B>

на позицію вправо

<¬> або <Ctrl+F>

на позицію вліво

<Ctrl + ®> або <Ctrl+R>

на слово вправо

<Ctrl + ¬> <Ctrl+L>

на слово вліво

<Home> або <Ctrl+A>

на початок рядка

<End> або <Ctrl+E>

на кінець рядка

<­> або <Ctrl+P>

на попередню команду вгору

<¯> або <Ctrl+N>

на наступну команду вниз

<Del> або <Ctrl+D>

видалити символ справа

<BkSp> або <Ctrl+H>

видалити символ зліва

<Ctrl+K>

видалити текст до кінця рядка

<Esc>

очистити рядок уведення

<Ins>

вибрати режим вставки/заміни

<PgUp>

на сторінку сесії вгору

<PgDn>

на сторінку сесії вниз

Раніше введені команди автоматично утворюють список, який виводиться у вікні історії. Якщо з'явилася необхідність повторити раніше виконану команду, то треба відшукати її в цьому вікні і двічі клацнути по ній лівою кнопкою миші. Для активізації вікна історії необхідно вибрати вкладку з однойменною назвою і клацнути по ній лівою кнопкою миші. Якщо клацнути на команді вікна історії лівою кнопкою миші, то дана команда стає поточною (на синьому тлі). Можна виділити потрібну послідовність команд за допомогою комбінації клавіш <Shift+↑>, <Shift+↓>. Вставлений у командний рядок набір команд відправляється на виконання натисненням клавіші <Enter>. До цього вміст набору можна редагувати, використовуючи звичайні прийоми редагування, спільні для Windows-програм, у тому числі за допомогою миші. Можна вносити в команди необхідні зміни, видаляти зайві команди і додавати нові.

ОПЕРАЦІЙНЕ СЕРЕДОВИЩЕ MATLAB І ОСНОВНІ КОМАНДИ

Теоретичні відомості

Основні пункти меню системи, інструментальна панель і опції MATLAB. Основне меню системи складається з 6 пунктів, кожний з яких у свою чергу містить декілька підпунктів різного ступеня вкладеності :

- File – робота з файлами;

- Edit – редагування сесії та документів М-файлів;

- View – управління вікнами та панеллю інструментів;

- Web – доступ до Інтернет-ресурсів;

- Windows – відображення відкритих додаткових вікон, перехід до потрібного вікна;

- Help — доступ до довідкових підсистем.

Розглянемо призначення деяких із них.

Серед команд меню File:

New – відкриття підменю з пунктами:

- M-file – відкриття вікна редагування М-файлів, аналог команди edit;

- Figure – відкриття порожнього вікна графіки;

- Model – відкриття порожнього вікна для створення Simulink-моделі;

- GUI – відкриття вікна розробки елементів графічного інтерфейсу користувача;

- Open – відкриття вікна завантаження файла;

- Close Command Windows – закриття вікна командного режиму;

- Import data – відкриття вікна імпорту файлових даних;

- Save Workspace As – відкриття вікна запису робочої області у вигляді файла із заданим ім’ям;

- Set Path – відкриття вікна встановлення шляхів доступу файлової системи;

- Preferences – відкриття вікна налаштування елементів інтерфейсу;

- Print – відкриття вікна друку поточного документа;

- Print Selection – відкриття вікна друку виділеної частини документа.

- Exit – завершення роботи в системі.

Серед команд менюEdit:

- Undo – скасування результату попередньої операції;

- Redo – скасування дії останньої операції Undo;

- Cut – вирізання виділеного фрагмента і перенесення його в буфер обміну;

- Copy – копіювання виділеного фрагмента в буфер обміну;

- Paste – вставка фрагмента з буфера обміну в поточну позицію курсору;

- Select All – виділення всієї сесії;

- Delete – видалення виділеного об'єкта;

- Clear Command Windows – очистка тексту сесії зі збереженням створених об'єктів, аналог команди clc;

- Clear Command History – очистка вікна історії команд;

- Clear Workspace – очистка вікна робочої області.

Вікно управління редактора М-файлів. Для підготовки і редагування М-файлів (текстів програм на внутрішній алгоритмічній мові системи) використовується спеціальний системний редактор текстів або зовнішній текстовий редактор. Редактор можна викликати командою edit з командного рядка або через пункт меню File. Після закінчення роботи з текстом М-файла його необхідно записати на диск, використовуючи команду Filе Save as у меню редактора.

При створенні тексту файла редактор виконує ретельну синтаксичну перевірку. Редактор має й інші важливі засоби – він дозволяє встановлювати в тексті М-файла спеціальні мітки переривання (breakpoints). При досягненні цих міток обчислення припиняються, і користувач може оцінити проміжні результати обчислень, наприклад, значення певних змінних, перевірити правильність виконання циклів і т.д. Для зручності роботи з редактором рядки програми в ньому нумеруються в послідовному порядку. Редактор є багатовіконним. Вікно кожної програми оформлене як вкладка.

Управління командним вікном. Розглянемо деякі команди управління вікном командного режиму:

- clс – очистка екрана і розміщення курсору в лівому верхньому куті порожнього вікна;

- home – повернення курсору в лівий верхній кут вікна;

- echo<file_name> on – увімкнення режиму збереження команд, які вводяться на екрані, в текстовий файл <file_name>(файл М-сценарію);

- echo <file_name> off – вимкнення попереднього режиму збереження команд;

- echo <file_name> – зміна режиму збереження на протилежний;

- echo on all – увімкнення режиму виведення на екран тексту для всіх М-файлів;

- echo off all – вимкнення режиму виведення на екран тексту М-файлів;

- mоrе on – увімкнення режиму посторінкового виведення (відображення) (корисний при перегляді великих М-файлів);

- mоrе off – вимкнення режиму посторінкового виведення, в цьому випадку для перегляду великих файлів треба користуватися смугою прокручування.

MATLAB у ролі калькулятора. Система MATLAB створена таким способом, що будь-які (часом досить складні) обчислення можна виконувати в режимі прямих обчислень (інтерактивному режимі), тобто без підготовки програми. Це перетворює MATLAB у надзвичайно потужний калькулятор, здатний здійснювати не тільки звичайні для калькуляторів обчислення (наприклад, виконувати арифметичні операції й обчислювати елементарні функції), але й операції з векторами й матрицями, комплексними числами, рядами й поліномами і т.д. Можна майже миттєво задати й вивести графіки різних функцій — від простої одновимірної до складної тривимірної фігури. Робота із системою в режимі прямих обчислень носить діалоговий характер і відбувається за правилом “поставив запитання, отримав відповідь”. Користувач набирає певний запит на клавіатурі, потім (якщо потрібно) редагує його в командному рядку і передає на виконання натисненням клавіші <Enter>.

Деякі правила роботи:

- ознакою готовності системи до введення запиту є наявність курсору після символу >> у командному вікні;

- дані вводяться і редагуються за допомогою найпростішого рядкового редактора;

- записи запитів розрізняються залежно від використання великих і малих літер;

- якщо в кінці запиту (команди) поставити знак “;”, то результат (відповідь) не відображається у командному вікні. Якщо цього не зробити (в тому числі і в М-файлі), то після успішного обчислення буде здійснене виведення результатів на екран;

- якщо не зазначена змінна для отримання результату обчислень, то MATLAB призначає таку змінну з ім'ям ans ;

- знаком присвоювання є = ;

- результат обчислень виводиться в рядках відображення (без знака >> );

- у загальному випадку для подання результату в командному вікні застосовується така форма: <ім’я_змінної> = <результат>.

- вбудовані функції записуються малими літерами, і їхні аргументи вказуються в круглих дужках, наприклад, sin(x).

Вихід із системи. Завершення роботи з системою MATLAB здійснюється за допомогою команд quit, exit або натисненням комбінації клавіш <Ctrl+0>.

У деяких випадках математичний вираз, що вводиться, може виявитись настільки довгим, що для нього не вистачить одного рядка. Тоді для його перенесення на новий рядок використовується символ “...” (три або більше крапки), наприклад:

s = 1 – 1/2 + 1/3– 1/4 + 1/5 – 1/6 + 1/7 ...

1/8 + 1/9 – 1/10 + 1/11 – 1/12 .

Цей прийом може бути корисним для створення наочних документів (запобігання заходу рядків у невидиму область вікна або текстового документа, який друкується на принтері). Загалом кажучи, максимальне число символів в одному рядку командного режиму – 4096, а в М-файлі – не обмежене, проте з такими довгими рядками працювати незручно. У ранніх версіях пакета рядок мав не більше 256 символів.

Типи даних, які використовуються в MATLAB. Усі типи даних, з структурної точки зору, є масивами, тому в системі MATLAB:

скалярна змінна

– це матриця розмірності 1´1;

вектор-рядок з N елементів

– це матриця розмірності 1´N;

вектор-стовпець з N елементів

– це матриця розмірності N´1.

Надалі будемо розглядати роботу тільки з такими типами даних:

double – натуральні, цілі, дійсні і комплексні дані;

char – лінійний масив (рядок).

Звичайно в MATLAB є й інші типи даних: sparse,uint8, cell, structта інші.

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

1, –25, 435.123, –2.345, 1е–12, 1.26E8, ‘значення змінної X = ’.

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

Серед поіменованих констант виділяють системні змінні, які мають фіксовані імена і значення. Основні системні змінні, що використовуються в системі MATLAB, наведені в табл. 2.1.

Таблиця 2.1. Системні змінні MATLAB

Позначення

Назва

i, j

уявна одиниця комплексного числа

pi

число p

eps

похибка операцій над числами з плаваючою крапкою

realmin

найменше число з плаваючою крапкою

realmax

найбільше число з плаваючою крапкою

inf

значення машинної нескінченності ( ∞ )

ans

змінна, що зберігає результат останньої операції

NaN

вказівка на нечисловий характер даних (Not-a-Number), позначення невизначеного результату (наприклад, 0/0; inf inf)

nargin

кількість вхідних аргументів у функції

nargout

кількість вихідних аргументів у функції

computer

тип комп'ютера

flops

кількість операцій з плаваючою крапкою

version

номер версії MATLAB

Системні змінні можна перевизначити, але це можливо лише під час поточної сесії.

У системі MATLAB для іменування змінних використовуються іденти­фікатори, які обов’язково починаються з букви і можуть містити букви, цифри й символ підкреслення “_”. Ідентифікатор може мати скільки завгодно символів, але значущими є тільки 31 перший (початковий) символ.

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

Операції і спеціальні символи, які використовуються при записі виразів, наведені в табл. 2.2.

Таблиця 2.2. Операції і спеціальні символи у виразах MATLAB

Символ

Призначення

:

оператор утворення масиву даних

( )

дужки для групування операцій або аргументу

[ ]

дужки для формування матриць (векторів)

{ }

фігурні дужки для формування масивів комірок

.

десяткова крапка

..

посилання на батьківський каталог

...

продовження рядка команди

,

розділовий знак

;

блокування виведення інформації на екран

%

коментар

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

Таблиця 2.3. Арифметичні операції MATLAB

Символ

Призначення

+

додавання

-

віднімання

*

добуток

.*

добуток (“скалярний”)

^

піднесення до степеня

.^

піднесення до степеня (“скалярне”)

\

“ліве” ділення

/

“праве” ділення

.\

“ліве” ділення (“скалярне”)

./

“праве” ділення (“скалярне”)

'

транспонування

.'

транспонування

kron

тензорний добуток (добуток Кронекера)

Таблиця 2.4. Ієрархія при виконанні арифметичних операцій

Рівень

Операція

1

“ .' ”, “ .^ ”, “ ' ”, “ ^ ”

2

унарні “ + “, “ – ”

3

“ .* ”, “ ./ ”, “ .\ ”, “ * ”, “ / ”, “ \ ”

4

бінарні “ + ”, “ – ”

5

оператор формування масиву “ : ”

Операції відношення (табл.2.5) мають два операнди і використовуються для порівняння двох величин, векторів або матриць (в алгоритмічній мові – предикатів).

Таблиця 2.5. Операції відношення

Оператор

Функція

Призначення

Приклад

==

eq

дорівнює

x==y або eq(x,y)

~=

ne

не дорівнює

x~=y або ne(x,y)

lt

менше

x<y або lt(x,y)

gt

більше

x>y або gt(x,y)

<=

le

менше або дорівнює

x<=y або le(x,y)

>=

ge

більше або дорівнює

x>=y або ge(x,y)

При обчисленні предиката ми отримуємо результат 1 – Істина або 0 – Хибність.

Примітка. Оператори “<”, “<=”, “>”, “>=” при порівнянні комплексних чисел порівнюють лише їх дійсні частини.

Логічні операції і функції (табл. 2.6) застосовуються поелементно до даних і використовуються для побудови булевих виразів.

Таблиця 2.6. Логічні операції і функції

Опе­ратор

Функція

Назва

Приклад

~

not

заперечення

~x або not(x)

&

and

кон’юнкція

x&y або and(x,y)

|

or

диз’юнкція

x|y або or(x,y)

 

xor

виключаюче “або”

xor(x)

 

all

Істина, якщо всі елементи вектора ≠0

all(x)

 

any

Істина, якщо не всі елементи вектора =0

any(x)

 

exist

перевірка існування змінної чи функції

exist(‘x’)

 

find

пошук індексу ненульового елемента (індексів, що задовольняють певні умові)

find(x)

 

isempty

Істина, якщо масив порожній

isempty(x)

 

isinf

Істина, якщо елемент = ∞

isinf(Inf)

 

isletter

Істина, якщо символом є буква

isleter(‘a’)

 

isnan

Істина, якщо елемент не є числовим

isnan(NaN)

 

isreal

Істина, якщо елемент дійсний

isreal(1.2)

 

isstr

Істина, якщо елементом є текстовий рядок

isstr(‘qwerty’)

Пакет MATLAB містить значну кількість елементарних і спеціальних функцій (табл. 2.7 – 3.14). Зі списком елементарних функцій можна ознайоми­тись за допомогою команди help elfun, а зі списком спеціальних функцій – за допомогою команди help specfun. Функції можуть бути вбудованими (внутрішніми) і зовнішніми, або M–функціями. Зовнішні функції містять свої визначення в M–файлах. Вбудовані функції зберігаються у відкомпільованому ядрі системи MATLAB, внаслідок чого вони виконуються гранично швидко.

Таблиця 2.7. Тригонометричні та гіперболічні функції

Тригонометрична функція

Обернена

тригонометрична функція

Гіперболічна

функція

Обернена

гіперболічна

функція

sin(x)

asin(x)

sinh(x)

asinh(x)

cos(x)

acos(x)

cosh(x)

acosh(x)

tan(x)

atan(x)

tanh(x)

atanh(x)

cot(x)

acot(x)

coth(x)

acoth(x)

Таблиця 2.8. Трансцендентні функції

Назва

Призначення

ехр(х)

експонента x

log (x)

натуральний логарифм x

log2(x)

логарифм x за основою 2

log10(x)

логарифм x за основою 10

pow2(x)

експонента x за основою 2

sqrt(x)

корінь квадратний з x

nextpow2(x)

найближча степінь експоненти за основою 2 ≥ x

Таблиця 2.9. Функції роботи з комплексними числами

Назва

Призначення

abs(z)

модуль z (|z|)

angle(z)

аргумент z (arg(z))

conj(z)

спряжене до z (z*)

imag(z)

уявна частина z (Im(z))

real(z)

дійсна частина z (Re(z))

Таблиця 2.10. Функції заокруглення і модульна арифметика

Назва

Призначення

abs(x)

абсолютна величина x

fiх(х)

[x] – ціла частина x

floor(x)

округлення x до найближчого меншого цілого (результат – ціле значення)

ceil(x)

округлення x до найближчого більшого цілого (результат – ціле значення)

round(x)

округлення x до цілого (результат – дійсне значення)

mod(x,y)

залишок від цілочисельного ділення х на у з урахуванням знака

rem(x,y)

залишок від цілочисельного ділення х на у.

Порівняйте: mod(5.345,2), rem(5.345,2); mod(-5.5,2), rem(-5.5,2)

sign(x)

знак числа

Таблиця 2.11. Теоретико-числові функції

Назва

Призначення

factor(n)

розклад числа n на прості множники

isprime(n)

Істина, якщо число n просте

primes(n)

формування списку простих чисел, які не перевищують n

gcd(n,m)

найбільший спільний дільник n,m

lcm(n,m)

найменше спільне кратне n,m

rat(n)

подання числа n у вигляді ланцюгового дробу

rats(n)

наближене число у вигляді раціонального дробу вигляду a/b

perms(1:n)

можливі перестановки елементів заданого числового вектора

nchoosek(n,k)

число сполучень Сnk

Таблиця 2.12. Функції для роботи з рядками символів

Назва

Призначення

abs('i')

код символу i

blanks(n)

створення рядка з n пробілів

deblank(s)

видалення пробілів у кінці рядка

double('xyz')

перетворення символів рядка ‘xyz’ у числове значення

strcmp(s,t)

порівняння рядків s і t

upper(s)

переведення всіх символів рядка s у верхній регістр

lower(s)

переведення всіх символів рядка s у нижній регістр

setstr(n)

перетворення числа n у рядок

Int2str(n)

перетворення цілого числа n у рядок

num2str(x)

перетворення дійсного числа x у рядок

str2num(s)

перетворення рядка s у число

findstr(s,p)

пошук місця рядка p у рядку s

strrep(s,c,p)

заміна в рядку s рядка c на рядок p

strcat(s,c)

горизонтальне об’єднання рядків

strvcat(s,c)

вертикальне об’єднання рядків

eval(s)

обчислення рядкових виразів

Таблиця 2.13. Функції часу та дати

Назва

Призначення

clock

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

 [рік, місяць, день, година, хвилина, секунда]

date

поточна дата у формі рядка

now

поточний час і дата у формі числа

datestr(d,n)

перетворення числового формату дати d в один із 19 вихідних рядкових форматів дати і часу ( n – номер формату від 0 до 18)

etime(t2,tl)

визначення тривалості проміжку часу (в сек), заданого векторами t1 і t2

Таблиця 2.14. Функції для операцій з елементами матриць

Назва

Призначення

diag(A)

створення або видобування діагоналі матриці. Якщо A є вектором, то створю­ється квадратна матриця, в якій елементи вектора A розміщені на головній діагоналі. Якщо A є матрицею, створюється вектор-стовпець, що складається з елементів головної діагоналі матриці A

fliplr(A)

відбиття стовпців матриці A відносно вертикальної осі

flipud(A)

відбиття рядків матриці A відносно горизонтальної осі

isreal(A)

Істина, якщо всі елементи матриці А дійсні

reshape(A,m,n)

зміна розмірності матриці без зміни кількості її елементів. Утворюється матриця розмірності m´n. Нехай А – матриця розмірності 3´4, отримай reshape(A,2,6); reshape(A,3,[ ]); reshape(A,12,[ ]); (див. help reshape)

rot90(A)

поворот матриці A на 90 градусів проти годинникової стрілки

rot90(A,k)

поворот матриці A на 90*k градусів, де k = 1, -1, 2, -2,…

tril(A)

створення лівої трикутної матриці

tril(A,k)

створення лівої трикутної матриці, починаючи з діагоналі з номером k. При k>0 це номер k-тої верхньої діагоналі, при k<0 це номер k-тої нижньої діагоналі

triu(A)

створення правої трикутної матриці

triu(A,k)

створення правої трикутної матриці, починаючи з діагоналі з номером k. При k>0 це номер k-тої верхньої діагоналі, при k<0 це номер k-тої нижньої діагоналі

:

виділення стовпця/рядка в матриці, генерація векторів

size(A)

визначення кількості рядків і стовпців матриці A

length(A)

визначення розмірності матриці A (для прямокутної матриці розмірності m´n length(A)=max(m,n) )

Таблиця 2.15. Функції для роботи з матрицями

пп

Назва

Призначення

2.1

eye(n)

eye(n,m)

eye(n,m,k,…)

 

створення одиничної матриці розмірності n´n або матриці (матриць) розмірності n´m з одиницями на головній діагоналі.

Порівняйте: eye(5); eye(5,1); eye(1,5); eye(3,5); eye(5,5); eye(5); eye(3,5,4)

Перевірити практично!

 

2.2

ones(n)

ones(n,m)

ones(n,m,k,…)

створення матриці розмірності n´n або матриці (матриць) розмірності n´m з одиниць.

Порівняйте: ones(5); ones(5,1); ones(1,5); ones(3,5); ones(5,5); ones(5); ones(3,5,4)

Перевірити практично!

 

2.3

zeros(n),

zeros(n,m)

zeros(n,m,k,…)

створення матриці розмірності n´n, що містить нулі. Якщо n не є скалярною величиною, то з'явиться повідомлення про помилку.

Порівняйте: zeros(5); zeros(5,1); zeros(1,5); zeros(3,5); zeros(5,5); zeros(5); zeros(3,5,4)

Перевірити практично!

 

2.4

[X,Y]=meshgrid(x,y)

створення матриць розмірності m´n, що містить координати прямокутної сітки M(i,j)=(X(i,j),Y(i,j)), де X – матриця, утворена копіюванням в рядки значень одновимірного вектора x (ординат) довжини n, а Y – матриця, утворена копіюванням в стовпці значень одновимірного вектора y (абсцис) довжини m. Подумайте, як правильно задати відповідні вектори.

Перевірити практично!

 

2.5

det(A)

обчислення визначника (детермінанта) квадратної матриці A

Перевірити практично!

 

 

 

 

norm(A,n)

обчислення норми матриці/вектора, n = 1,2, inf, ‘fro’. norm(A)≡norm(A,2); ‘fro’ – Фробеніусова норма

 

cond(A,n)

обчислення числа обумовленості матриці в нормі n = 1,2, Inf, ‘fro’.

cond(A)≡cond(A,2)

2.6

rank(A)

обчислення рангу матриці А

Перевірити практично!

 

 

trace(A)

обчислення сліду матриці А

 

orth(A)

створення ортонормованого базису матриці А: h=orth(A); h¢*h=E

 

null(A)

нуль-простір матриці А

2.7

inv(A)

утворення матриці, оберненої до квадратної матриці A. Видається попередження, якщо A – погано обумовлена або близька до виродженої

Перевірити практично!

 

 

pinv(A)

утворення матриці, псевдооберненої до квадратної матриці A. Результатом є матриця B того ж розміру, що й А і задовольняє умовам A*B*A=Aта B*A*B=B. Обчислення ґрунтується на використанні функції svd(A) і прирівнюванні до нуля всіх сингулярних чисел, менших величини tol

 

[Q,R]=qr(A)

QR-розклад матриці A: A=Q*R, де Q – унітарна матриця, R – верхня трикутна матриця

 

[L,U]=lu(A)

LU-розклад матриці A: A=L*U, де L – нижня трикутна матриця, U – верхня трикутна матриця

2.8

dot(X,Y)

обчислення скалярного добутку векторів X,Y

Перевірити практично!

 

2.9

cross(X,Y)

обчислення векторного добутку векторів X,Y

Перевірити практично!

 

 

 

 

2.10

[H,L]=eig(A)

обчислення власних значень і власних векторів матриці A. Тут L – діагональна матриця власних значень, H – матриця правих власних векторів, що задовольняють співвідношення A*H = H*L. Ці вектори H(:,k) нормовані так, що норма кожного з них дорівнює одиниці

Перевірити практично!

 

2.11

poly(A)

обчислення характеристичного полінома для матриці A

Перевірити практично!

 

 

[U,S,V]=svd(A)

розклад A=U*S*V ', де U,V – унітарні матриці, S – діагональна матриця

3) На практиці обчислення оберненої матриці в явному вигляді не так вже й необхідне. Цю операцію застосовують при розв’язанні системи лінійних рівнянь вигляду Ах=b. Дійсно, один із шляхів – обчислення x=inv(A)*b. Але кращим (з погляду мінімізації часу розрахунку) є використання оператора матричного ділення х=А\ b. Ця операція використовує метод виключення Гаусса без явного формування оберненої матриці.

Приклад 1. Нижче наведено приклад, в якому формуються матриця A і вектор xx; знаходиться вектор b – добуток матриці A на вектор xx; розв’язується СЛАР Ax=b з використанням QR- і LU-розкладів матриці A. Знати зміст кожного рядка тексту!

% Приклад 1

clc

% Задання вхідних даних

xx=[1;2;3];

A=[ 7, -1, 1;...

 -1, 10, 2;...

 1, 2,-4]

b=A*xx

pause

 

% 1-й варіант

x=A\b

pause

 

% 2-й варіант

[Q,R]=qr(A);

% Перевірте Q*Q' i Q'*Q

x=R\(Q'*b)

pause

% 3-й варіант

[L,U]=lu(A);

x=U\(L\b)

pause

Розглянемо приклади:

Приклад 1

М5021, 1

Приклад 1 Варіант 1

М5021, 2

Приклад 1 Варіант 2

 

Приклад 1 Варіант 3

М5021, 4

З повагою ІЦ "KURSOVIKS"!