Програмування в MATLAB

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Кафедра: Інформаційні технології
ПРОГРАМУВАННЯ В MATLAB

Оператори MATLAB
· Оператори циклу
Цикл for
Синтаксис
for count = start: step: final
команди MATLAB
end
Опис
count - мінлива циклу,
start - її початкове значення,
final - її кінцеве значення,
step - крок, на який збільшується count при кожному наступному заході в цикл
цикл закінчується, як тільки значення count стає більше final.
Приклад
Нехай потрібно вивести сімейство кривих для x € [0, 2π], що задано функцією, що залежить від параметра
y (x, a) = e-ax sin x,
для значень параметра а від -0.1 до 0.1. Нижче наведено лістинг файл-програми для виведення сімейства кривих.
Лістинг програми
Figure
x = [0: pi/30: 2 * pi];
for a = -0.1:0.02:0.1
y = exp (-a * x) .* sin (x);
hold on
plot (x, y)
end
В результаті виконання програми з'явиться графічне вікно, яке містить необхідну сімейство кривих.
Цикл while
Синтаксис
while умова циклу
команди MATLAB
end
Опис
Цикл працює, поки виконується (істинно) умова циклу. Для завдання умови виконання циклу припустимі наступні операції відношення:
Позначення
Операція відносини
==
Рівність
<
Менше
<=
Менше або дорівнює
> =
Більше або дорівнює
>
Більше
~ =
Не дорівнює
Завдання більш складних умов проводиться з застосуванням логічних операторів. Логічні оператори приведені в наступній таблиці

Оператор
Умова
Еквівалентна запис
Логічне «і»
x <3 і k = 4
(X <3) & (k == 4)
Логічне «або»
x = 1 або x = 2
(X == 1) | (x == 2)
Заперечення «не»
a ≠ 1.9
~ (A == 1.9)
Приклад
Оператори розгалуження
Умовний оператор if
Синтаксис
if умова
команди MATLAB
end
Опис
Якщо умова вірна, то виконуються команди MATLAB, які розміщені між if і end, а якщо умова не вірно, то відбувається перехід до команд, розташованих після end.
Приклад
Умовний оператор elseif
Синтаксис
if условіе1
команди 1
elseif условіе2
команди 2
... ... ... ... ... ... ... ... ...
elseif условіеn
командиn
else
команди
end
Опис
Залежно від виконання того чи іншого умови працює відповідна гілка програми, якщо всі умови невірні, то виконуються команди, розміщені після else.
Приклад
Оператор switch
Синтаксис
switch мінлива
case значення1
команди 1
case значення2
команди 2
... ... ... ... ... ... ... ...
case значеніеn
командиn
otherwise
команди
end

Кожна гілка визначається оператором case, перехід в неї виконується тоді, коли змінна оператора switch приймає значення, вказане після case, або одне з значення зі списку case. Після виконання будь-яких із гілок відбувається вихід з switch, при цьому значення, задані в інших case, вже не перевіряються. Якщо відповідних значень для змінної не знайшлося, то виконується гілка програми, відповідна otherwise.
Приклад
Переривання циклу. Виключні ситуації.
Оператор break
Синтаксис
break
Оператор break використовується при організації циклічних обчислень: for ... end, while ... end. При виконанні умови
if умова
break
end
оператор break закінчує цикл (for або while) і відбувається виконання операторів, які розташовані в рядках, наступних за end. У разі вкладених циклів break здійснює вихід з внутрішнього циклу.
Обробка виняткових ситуацій, оператор try ... catch
Синтаксис
try
оператори, виконання яких
може призвести до помилки
catch
оператори, які слід виконати
при виникненні помилки в блоці
між try і catch
end
Опис
Конструкція try ... catch дозволяє обійти виняткові ситуації (помилки, що призводять до закінчення роботи програми, наприклад, звернення до неіснуючого файлу) і зробити деякі дії у разі їх виникнення.
Приклад
Сервісні функції
disp - Здійснює виведення тексту або значення змінної в командне вікно
input - Здійснює запит на введення з клавіатури. Використовується при створенні додатків з інтерфейсом з командного рядка.
eval - виконує рядок або строкової змінної, як команди MATLAB
clear - Видаляє змінні робочого середовища.
з lc - Здійснює очищення командного вікна
Більш докладну інформацію про ці та інші функції можна дізнатися, виконавши в командному рядку
help імя_функціі

Завдання на виконання лабораторної роботи
Номер конкретного варіанта завдання визначається викладачем.
Завдання № 1
Дане завдання передбачає перебування для деякої сукупності даних алгебраїчного інтерполяційного многочлена ступеня n: P n (x).
Мета роботи:
Необхідно скласти програму обчислення коефіцієнтів алгебраїчного інтерполяційного многочлена P n (x) = a 0 + a 1 x + ... + a n x n.
Методичні вказівки:
Нехай, наприклад, є наступна сукупність даних:
i
0
1
2
3
х i
1,2
1,4
1,6
1,8
y i
8,3893
8,6251
8,9286
8,9703
Коефіцієнти a 0, a 1, ..., a n визначаються з рішення системи рівнянь:

Тут n - порядок інтерполяційного многочлена,
n +1 - кількість заданих пар точок (x, y),
a 0, a 1, ... a n - шукані коефіцієнти многочлена P n (x) = a 0 + a 1 x + ... + a n x n).
Вимоги до програми
При виконанні даної роботи необхідно:
· Поставити межі відрізка [x0, xn], на якому будується інтерполяційний многочлен P (x)
· Поставити n - кількість відрізків інтерполяції (або, що те ж саме, ступінь многочлена)
Примітка: x0, xn, n вводяться з клавіатури.
· Для одержання вихідних даних (x, y) (кількість пар точок (x i, y i), за якими будується інтерполяційний многочлен P (x) - n1 = n +1) передбачити:
ü Введення довільно розташованих вузлів x i, i = 0, n з клавіатури
ü Розрахунок вузлів x i, i = 0, n, відповідних рівномірному розташуванню аргументу x на відрізку [x0, xn]
ü У пп. 1,2 значення y i, i = 0, n або вводяться з клавіатури (якщо вихідна функція невідома), або обчислюються за заданої функції f (x). Вираз, що визначає функцію, вводиться з клавіатури і повинно відповідати правилам запису виразів в MATLAB
ü Введення даних (x i, y i, i = 0, n) з файлу
· Вирішити систему рівнянь для визначення коефіцієнтів многочлена P (x)
· Побудувати графіки вихідної таблично заданої функції і многочлена P (x)
· Якщо вихідні дані задані у вигляді функції f (x), побудувати графік похибки інтерполяції / f (x) - P (x) /. Розрахувати максимальне по модулю значення похибки інтерполяції на заданому проміжку.
При виконанні останнього пункту на відрізку [x0, xn] взяти не менше 500 точок для проведення розрахунків

Завдання № 2
Інтерполяція сплайнами
Мета роботи:
Необхідно скласти програму обчислення коефіцієнтів та побудови сплайн-функції S (x), «склеєної» з шматків многочленів 3-го порядку S i (x), які мають спеціальну форму запису:
,
функція S i (x) визначена на відрізку [x i -1, x i],


Вимоги до програми
При виконанні даної роботи необхідно:
· Поставити межі відрізка [x0, xn], на якому будується сплайн-функція S (x)
· Поставити n - кількість відрізків інтерполяції, на кожному з яких будується кубічний многочлен Si (x).
· Примітка: x0, xn, n вводяться з клавіатури.
· Організувати введення вихідних даних (x, y) (кількість пар точок (xi, yi), за якими будується сплайн-функція S (x), n1 = n +1), передбачивши:
ü Введення довільно розташованих вузлів xi, i = 0, n з клавіатури
ü Розрахунок вузлів xi, i = 0, n, відповідних рівномірному розташуванню аргументу x на відрізку [x0, xn]
ü У пп. 1,2 значення yi, i = 0, n або вводяться з клавіатури (якщо вихідна функція невідома), або обчислюються за заданої функції f (x). Вираз, що визначає функцію, вводиться з клавіатури і повинно відповідати правилам запису виразів в MATLAB
ü Введення даних (xi, yi, i = 0, n) з файлу
· Для крайових умов 1-3 розрахувати коефіцієнти di кубічних сплайнів
ü S1''(x0) = 0, S3''(x3) = 0
ü S1 '(x0) = f' (x0), S3 '(x3) = f' (x3)
ü S1''(x0) = f «(x0), S3''(x0) = f« (x3)
· Для визначення коефіцієнтів природного кубічного сплайна (крайові умови 1) необхідно вирішити наступну систему рівнянь:
·

Коефіцієнти σ 0 = 0, σ n = 0
· Побудувати графіки вихідної функції та сплайн-функцій для всіх трьох типів крайових умов.
· Побудувати графіки функцій похибки сплайн-інтерполяції f (x) - S (x) для всіх трьох типів крайових умов.
· Розрахувати максимальні по модулю значення похибки інтерполяції на заданому проміжку [x0, xn] для кожного виду сплайна.
Примітка:
У пакеті MATLAB індекси одновимірних і двовимірних масивів починаються з 1, а не з 0. Врахувати це при складанні програми.

Завдання № 3
Апроксимація функції методом найменших квадратів (МНК).
Дане завдання передбачає перебування для деякої сукупності даних апроксимуючої функції (многочлена ступеня m), побудованої методом найменших квадратів (МНК).
Мета роботи:
Необхідно скласти програму знаходження коефіцієнтів многочлена φ (x) = a 0 + a 1 * x + ... a n * x m методом найменших квадратів.
Рекомендації щодо виконання роботи:
Нехай, наприклад, є наступна сукупність даних:
х i
1,2
1,4
1,6
1,8
2,0
2,2
2,4
2,6
2,8
3,0
y i
8,3893
8,6251
8,9286
8,9703
9,1731
9,1784
8,8424
8,7145
8,3077
7,9611
Пошук необхідних коефіцієнтів здійснюється наступним чином:

де n - Кількість точок (x, y),
m - ступінь шуканого многочлена,
a 0, a 1, ..., a m - шукані коефіцієнти (x) = a 0 + a 1 x +   ... + A m x m).
Вимоги до програми
При виконанні даної роботи необхідно:
· Поставити межі відрізка [x1, xn], на якому будується апроксимуюча функція φ (x) = a0 + a1 * x + ... an * xm
· Поставити m - ступінь многочлена
· Примітка: x1, xn, m вводяться з клавіатури.
· Для одержання вихідних даних (x, y), за якими будується апроксимуюча функція φ (x) = a0 + a1 * x + ... an * x m передбачити:
ü Введення довільно розташованих вузлів xi, i = 1, n з клавіатури
ü Розрахунок вузлів xi, i = 1, n, відповідних рівномірному розташуванню аргументу x на відрізку [x1, xn]
ü У пп. 1,2 значення yi, i = 1, n або вводяться з клавіатури (якщо вихідна функція невідома), або обчислюються за заданої функції f (x). Вираз, що визначає функцію, вводиться з клавіатури і повинно відповідати правилам запису виразів в MATLAB
ü Введення даних (xi, yi, i = 1, n) з файлу
· Вирішити систему рівнянь для визначення коефіцієнтів многочлена φ (x)
· Побудувати графіки вихідної таблично заданої функції і многочлена φ (x)
· Якщо вихідні дані задані у вигляді функції f (x), побудувати графік похибки інтерполяції / f (x) - φ (x) /. Розрахувати максимальне по модулю значення похибки інтерполяції на заданому проміжку.
При виконанні останнього пункту на відрізку [x1, xn] взяти не менше 500 точок для проведення розрахунків

Вимоги до оформлення лабораторної роботи
Звіт повинен містити:
1. Постановку задачі
2. Текст програми
3. Результати тестування
Примітка тексти програм повинні бути забезпечені коментарями.

Список літератури
1. Ануфрієв І.Є. Самовчитель Matlab 5.3/6.x - СПб.: БХВ-Петербург, 2003. - 736 с.: Іл.
2. В.П. Дьяконов MATLAB 6.5 SPI / 7 + Simulink 5 / 6 у математику й моделюванні. Серія «Бібліотека професіонала». - М.: СОЛОН-Прес, 2005. - 576 с.: Іл.
3. Ануфрієв І.Є., Смирнов А.Б., Смирнова Є.Н. MathLab 7. - СПб.: БХВ-Петербург, 2005. - 1104 с.: Іл.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Лабораторна робота
44.3кб. | скачати


Схожі роботи:
Основні поняття математичного програмування Побудова моделі задачі лінійного програмування
Matlab 2
MatLab
Програмування мовою С з використанням обєктно-орієнтованого програмування
Програмування мовою С з використанням об єктно орієнтованого програмування
Програма Matlab та її використання
Система математичних розрахунків MATLAB
Теорія кодування в середовищі MATLAB
Заняття з MATLAB в комп`ютерному класі
© Усі права захищені
написати до нас