Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВПС_ЛР№1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
557.06 Кб
Скачать

1.5.1. Файл-програми

Файл-програма – це набір команд, що зберігається у m-файлі (спеціальному виконуючому файлі системи MatLab). Для переходу в редактор m-файлів оберіть пункт меню File → New → m-file (Файл → новий → m-файл), як це зображено на рис. 1.2. Після цього з’являється вікно редактору m-файлів (рис. 1.3), в якому слід набрати наступні рядки:

Лістинг 1.1. файл-фунція funcf

f1=sqrt(1+x^2+exp(-2*x+6));

f2=1/(1+x^2);

f=f1-f2

Після цього слід зберегти m-файл під якимось зручним іменем, наприклад funcf.m, за допомогою меню File → Save As (Файл → Сохранить Как) редактора m-файлів.

Рис. 1.2. Перехід у редактор m-файлів

Тепер обчислити запропонований вираз можна при будь-яких значеннях змінної x наступним шляхом.

>>x=4;

>>funcf;

1.5.2. Файл-функції

Файл-програми, що розглянуті, являють собою тільки послідовність команд і не мають вхідних і вихідних аргументів. Однак при розв’язуванні задач за допомогою MatLab буває необхідно саме задавати вхідні аргументи і по них отримувати вихідні параметри. Для цього в системі MatLab існує можливість роботи з файл-функціями. Написання файл-функцій проводиться в редакторі m-файлів (рис. 1.3). Суттєва різниця від файл-програм – це наявність заголовка функції, де розміщається службове слово function, що вказує на те, що даний m-файл презентує функцію. Далі йде ім’я функції із списками вхідних та вихідних аргументів. Підправимо попередній набір команд і потім збережемо.

Лістинг 1.2. файл-фунція funcf1

function res=funcf1(x);

%res-вихідний параметр, funcf1-ім’я функції,x-вхідний параметр

f1=sqrt(1+x^2+exp(-2*x+6));

f2=1/(1+x^2);

res=f1-f2

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

>>x=4;

>>f=funcf1(x); % або f=funcf1(4)

f =

4.0807

Рис. 1. 3. Вікно редактору m-файлів

1.6. Дії з матрицями та визначники в середовищі MatLab

В середовищі MatLab існує дуже велика кількість функцій для розв’язання різноманітних задач лінійної алгебри. У таблиці 1.6 наведені деякі основні функції, що використовуються для роботи з матрицями.

Таблиця 1.6

Функції MatLab, що використовуються для розв’язання задач матричної алгебри.

Функція

Опис, приклад

1

2

A=[a11 a12 … a1n;…;

am1 am2 … amn]

Визначення матриці розміру . Рядки відокремлюються крапкою з комою, а елементи кожного рядка відокремлюються знаком пробелу. Наприклад:

>>A=[1 -3 2; 4 3 8; -2 6 1]

A =

1 -3 2

4 3 8

-2 6 1

>>B=[-1;2;6]

B =

-1

2

6

A'(апостроф)

Транспонування матриці, яка визначається змінною A. Наприклад, стовпець можна визначити як транспонований рядок:

>>B=[-1 2 6]

B =

-1 2 6

>>B=B’

B =

-1

2

6

A1+A2

Визначається сума двох матриць, які визначені змінними A1 і A2 (матриці повинні мати однаковий розмір). Наприклад:

>>A1=[3 4;1 -2;0 -7]

A1 =

3 4

1 -2

0 -7

>>A2=[2 -5;-9 -6; 8 5]

A2 =

2 -5

-9 -6

8 5

>>A1+A2 % сума матриць

ans =

5 -1

-8 -8

8 -2

a*A1 b*A2

Лінійна комбінація матриці, які визначені змінними A1 і A2 (матриці повинні мати однаковий розмір), a і b – це числа. Наприклад:

>>3*A1-2*A2

ans =

5 22

21 6

-16 -31

f(A)

Якщо f(x) – це елементарна функція, то означена операція приводить до обчислення матриці того ж розміру, що і матриця A, кожний елемент якої дорівнює значенню елементарної функції від відповідного елемента матриці A. Наприклад:

>>sin(A1)

ans =

0.1411 -0.7568

0.8415 -0.9093

0 -0.6570

>>exp(B)

ans =

0.3679

7.3891

403.4288

A.*C

Поелементний добуток матриць, які визначені матрицями A і C. Результатом є матриця того ж розміру, що і матриці A і C. Наприклад:

>>C=[2 1 0;3 1 3;4 -2 -7];

>>A.*C

ans =

2 -3 0

12 3 24

-8 -12 -7

Матриці повинні бути одного розміру, інакше буде помилка, наприклад:

>>A.*B

??? Error using ==> times

Matrix dimensions must agree.

A.^a

Кожен елемент матриці, яка визначена змінною A підноситься до степеня a.

>>A.^2%піднесення до степеня 2

ans =

1 9 4

16 9 64

4 36 1

Операція може бути застосована до будь якої прямокутної матриці:

>>A1.^2 % A1-прямокутна матриця

ans =

9 16

1 4

0 49

A*C

Звичайний добуток матриць, які визначені матрицями A і C. Розміри матриць повинні бути узгодженні (кількість стовпців першої матриці - множника повинна дорівнювати кількості рядків другої матриці- множника). Наприклад:

>>A*C

ans =

1 -6 -23

49 -9 -47

18 2 11

Якщо розміри не узгоджені видається повідомлення про помилку:

>>A1*A2

??? Error using ==> mtimes

Inner matrix dimensions must agree.

>>A1*A2’ %розміри узгоджені – результат

%є добуток матриці A1 та

%транспонованої матриці A2

ans =

-14 -51 44

12 3 -2

35 42 -35

A^n

Піднесення матриці, яка визначена змінною A, до степеня n(матриця повинна бути квадратною).

>>A^2 %піднесення до степеня 2

ans =

-15 0 -20

0 45 40

20 30 45

size(A)

Визначення розміру матриці, яка визначена змінною A. Наприклад:

>>size(A)

ans =

3 3

>>size(B)

ans =

3 1

det(A)

Обчислення визначника (!)квадратної матриці, яка визначена змінною A. Наприклад:

>>det(A)

ans =

75

inv(A)

Обчислення оберненої матриці, для матриці, що визначена змінною A (визначник повинен не дорівнювати нулю).

>>inv(A)

ans =

-0.6000 0.2000 0.4000

-0.2667 0.0667 0

0.4000 0 0.2000

Завдання:

  1. Визначити в середовищі MatLab матриці та розміром .

  2. Визначити в середовищі MatLab вектор як вектор-стовбець.

  3. Обчислити матриці ; ; .

  4. Обчислити матрицю . Зробити висновок.

  5. Обчислити матрицю та матрицю, що складається з квадратів відповідних елементів матриці . Порівняти результати.

  6. Перевірити рівність .

  7. Обчислити вектор-стовпець , який дорівнює добутку вектора та матриці , вектор .

  8. Обчислити і порівняти визначники матриць та .

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