Поелементні операції з векторами - студопедія

Спроба ділення числа на вектор приводить до повідомлення про помилку:

Matrix dimensions must agree.

Це пов'язано з тим, що операція / в MatLab призначена, зокрема, для вирішення систем лінійних алгебраїчних рівнянь. Якщо потрібно розділити число на кожен елемент вектора і записати результат в новий вектор, то слід використовувати операцію ./

Всі вищеописані операції застосовні як до вектор-рядків, так і до вектор-стовпцями.

Побудова таблиці значень функції

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

точках 0.2, 0.3, 0.5, 0.8, 1.3, 1.7, 2.5. Завдання вирішується в два етапи.

1. Створіть вектор-рядок х, що містить координати заданих точок.

2. Обчисліть функцію у (х) від кожного елемента вектора х і запишіть отримані значення в вектор-рядок у. Важливо тільки зробити це правильно! Необхідно знайти значення функції для кожного з елементів вектор-рядки х, тому операції в вираженні для функції повинні виконуватися поелементно, як було описано вище.

>> х = [0.2 0.3 0.5 0.8 1.3 1.7 2.5]

-1.2978 -0.8473 -0.2980 0.2030 0.8040 1.2258 1.8764

Зверніть увагу. що при спробі використання операцій зведення в ступінь, ділення / і множення * (які не належать до поелементний) виводиться повідомлення про помилку вже при зведенні sin (х) в квадрат:

> У = sin (x) ^ 2 / (1 + cos (х)) + ехр (х) * log (x)

Matrix must be square.

Справа в тому, що в MatLab операції * і ^ застосовуються для перемноження матриць відповідних розмірів і зведення квадратної матриці в ступінь.

У MatLab передбачено просте створення векторів, кожен елемент яких відрізняється від попереднього на постійну величину, т. Е. Крок. Для введення таких векторів служить двокрапка (не плутайте з індексацією за допомогою двокрапки). Наступні два оператора призводять до формування однакових вектор-рядків:

»Х = [1, 1.2, 1.4, 1.6, 1.8, 2.0]

Умовно можна записати

х = [початкове значення. крок. кінцеве значення]

Необов'язково піклуватися про те, щоб сума передостаннього значення і кроку дорівнювала б кінцевому значенню, наприклад, при виконанні наступного оператора присвоювання

вектор-рядок заповниться до елемента, що не перевершує певний нами кінцеве значення. Крок може бути і негативним:

1.9000 1.7000 1.5000 1.3000 1.1000

У разі негативного кроку для отримання непорожній вектор-рядка початкове значення має бути більше кінцевого.

Спробуйте заповнити вектор-стовпець елементами, які починаються часткою з нуля і закінчуються 0.5 с кроком 0.1. Для цього слід задати вектор-рядків у, а потім використовувати операцію транспонування:

Зверніть увагу, що елементи вектора, що заповнюється за допомогою двокрапки, можуть бути тільки речові, тому для транспонування можна використовувати апостроф замість точки з апострофом.

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

Виведіть тепер таблицю значень функції

на відрізку [0, 1] з кроком 0.05, зробивши такі дії:

3. Сформуйте вектор-рядок х за допомогою двокрапки.

4. Обчисліть значення у (х) від елементів х (не забудьте використовувати поелементне множення).

5. Запишіть результат в вектор-рядків у у.

6. Виведіть х і у.

Результат, відображений на екрані, не дуже нагадує таблицю:

Columns 1 through 7

Columns 8 through 14

0.3500 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500
Columns 15 through 21

0.7000 0.7500 0.8000 0.8500 0.9000 0.9500 1.0000
»y

Columns 1 through 7

0 0.4560 0.7614 0.8586 0.7445 0.4661 0.1045

Columns 8 through 14

-0.2472 -0.5073 -0.6233 -0.5816 -0.4071 -0.1533 -0.1123
Columns 15 through 21

Вектор-рядки х і у складаються з двадцяти одного елемента, не поміщаються на екрані в один рядок і виводяться по частинах. Так як х і у зберігаються в двовимірних масивах розмірністю один на двадцять один, то виводяться за стовпцями, кожен з яких складається з одного елемента. Спочатку виводяться стовпчики з першого по сьомий (columns i through 7), потім - з восьмого по чотирнадцятий (columns 8 through 14), і нарешті - з п'ятнадцятого по двадцять перше (columns is through 21). Більш наочним і зручним є графічне представлення функції.

Побудова графіків функції однієї змінної

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

визначеної на відрізку [0, 1]. Висновок відображення функції у вигляді графіка складається з наступних етапів:

· Завдання вектора значень аргументу х.

Обчислення вектора у значень функції у (х).

· Виклик команди plot для побудови графіка.

Команди для завдання вектора х і обчислення функції краще завершувати крапкою з комою для придушення виведення в командне вікно їх значень (після команди plot крапку з комою ставити необов'язково, т. К. Вона нічого не виводить в командне вікно). Не забудьте використовувати поелементне множення

>> y = ехр (х). * Sin (10 * x);

Після виконання команд на екрані з'являється вікно Figure No. 1 з графіком функції, зображене на рис. 2.1. Вікно містить меню, панель інструментів і область графіка.

Поелементні операції з векторами - студопедія

Мал. 2.1. Найпростіший графік функції

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

від цих аргументів. Команда plot з'єднує точки з координатами (x (i), у (i)) прямими лініями, автоматично масштабується осі для оптимального розташування графіка в вікні. При побудові графіків зручно розташувати на екрані основне вікно MatLab і вікно з графіком поруч так, щоб вони не перекривалися, як показано на рис. 2.2.

Поелементні операції з векторами - студопедія

Мал. 2.2. Розташування вікон

Побудований графік функції не повинен мати зламів, т. К. Сама функція гладка. Для точного побудови графіка обчисліть функцію в більшій кількості точок на відрізку [0, 1], т. Е. Задайте менший крок при введенні вектора х. Не забудьте, що можна занести в командний рядок введені раніше команди за допомогою клавіш <↑>, <↓>, потім відредагувати їх і виконати, натиснувши . Наступні команди:

призводять до побудови графіка функції у вигляді плавної кривої, зображеної на рис. 2.3.

Порівняння декількох функцій зручно робити, відобразивши їх графіки на одних осях. Наприклад, побудуйте на відрізку [-1, - 0.3] графіки функцій

за допомогою послідовності команд, наведеної нижче:

Поелементні операції з векторами - студопедія

Мал. 2.3. Гладкий графік функції

Утворені графіки, наведені на рис. 2.4, дають наочне представку про поведінку досліджуваних функцій.

MatLab виводить графіки різним кольором. Монохромний принтер надрукує графіки різними відтінками сірого кольору, що не завжди зручно. Команда plot дозволяє легко задати стиль і колір ліній, наприклад

>> plot (x, f, 'k-', x, g, 'k:')

здійснює побудову першого графіка суцільною чорною лінією, а другий чорної пунктирною (рис. 2.5). Аргументи 'k' і 'k:' задають стиль і колір першої і другої ліній. Тут k означає чорний колір, а дефіс або двокрапка - суцільну або пунктирну лінію.

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

Схожі статті