Название: Основи роботи в системі символьної математики MATLAB 5.2
Вид работы: лабораторная работа
Рубрика: Информатика и программирование
Размер файла: 139.42 Kb
Скачать файл: referat.me-134715.docx
Краткое описание работы: Основи роботи з векторами і матрицями. Способи будування математичних виразів. Константа як заздалегідь визначене числове або символьне значення, представлене унікальним ім’ям. Знаходження матриці обернення та множення їх на скаляр в пакеті Matlab.
Основи роботи в системі символьної математики MATLAB 5.2
Лабораторна робота №8
За курсом «Інструментальні засоби комп’ютерного моделювання»
Тема. Основи роботи в системі символьної математики MATLAB 5.2
Черкаси 2009
Зміст
1. Мета роботи
2. Теоретична частина
3. Практична (розрахункова) частина
4. Висновки за результатами виконання роботи
5. Бібліографічний список
1. Мета
Освоїти основні моменти роботи з операторами та функціями.
Навчитися користуватися основними функціями роботи з матрицями.
Обладнання:МATLAB 5.2.
2. Теоретичні відомості
Система MATLAB створена таким чином, що будь-які обчислення можна виконувати в режимі прямих обчислень, тобто без підготовки програми. Це перетворює MATLAB в надзвичайно могутній калькулятор, який здатний виконувати не тільки звичайні для калькуляторів обчислення (наприклад, виконувати арифметичні операції і обчислювати елементарні функції), але і операції з векторами і матрицями, комплексними числами, рядами і поліномами. Можна майже вмить задати і вивести графіки різних функцій - від простої синусоїди до складної тривимірної фігури.
Робота з системою в режимі прямих обчислень носить діалоговий характер. Користувач набирає на клавіатурі вираження, що обчисляється, редагує його в командному рядку і завершує введення натисненням клавіші ENTER.
При цьому:
•для вказівки введення початкових даних використовується символ »;
•дані вводяться за допомогою найпростішого рядкового редактора;
•для блокування виведення обчислень деякого виразу після нього треба встановити знак ; ( крапка з комою);
•якщо не вказана змінна зі значенням результату обчислень, то MATLAB призначає таку змінну з ім’ям ans;
•знаком привласнення є звичний математиці знак рівності =, а не комбінований знак: =, як в багатьох інших математичних системах;
•вбудовані функції (наприклад, sin) записуються малими буквами і їх аргументи вказуються в круглих дужках;
•результат обчислень виводиться в рядках висновку (без знаку »);
•діалог відбувається в стилі «задав питання - отримав відповідь».
Центральним поняттям всіх математичних систем є математичний вираз. Ось приклади простих математичних виразів:
2+3 2.301*sin(х) 4+exp(3)/5 sqrt(у)/2 sin(pi/2)
Математичні вирази будуються на основі чисел, констант, змінних, операторів і функцій і різних спецзнаків. Числа найпростіший об’єкт мови MATLAB, що представляє кількісні дані. Числа можна вважати константами, ім’я яких співпадає з їх значеннями. Числа використовуються в загальноприйнятому уявленні про них. Вони можуть бути цілими, дробовими, з фіксованою точкою і плаваючою точкою. Можливе представлення чисел з вказівкою мантиси і порядку числа. Нижче приведені приклади представлення чисел: 02-3 2.301 0.00001 123.456e.24 -234.456е10
Легко помітити, в мантисі чисел ціла частина відділяється від дробової не коми, а точкою, що прийнято в більшості мов програмування. Для відділення порядку числа від мантиси використовується символ е. Знак “ плюс” у чисел не проставляється, а знак “ мінус” у числа називають унарним мінусом. Пропуски між символами в числах не допускаються. Числа можуть бути комплексними z=Re(х)+Im(х)*i. Такі числа містять дійсну Re(z) і уявну Im(z) частини. Уявна частина має множник i або j: 3i 2j 2+3i -3.141i -123.456+2.7е-3
Функція real(z) повертає дійсну частину комплексного числа Re(z), а функція imag(z) - уявну Im(Z). Для отримання модуля комплексного числа використовується функція abs(z), а для обчислення фази - angle(z).
У MATLAB не прийнято ділити числа на ціле і дробові, короткі і довгі і так далі, як це прийняте в більшості мов програмування. Хоч задавати їх в таких формах можна. Взагалі ж операції над числами виконуються в форматі, який прийнято вважати форматом чисел з подвійною точністю. Такий формат задовольняє переважній більшості вимог до чисельних розрахунків, але абсолютно не підходить для символьних обчислень з довільною (абсолютної) точністю. Символьні обчислення MATLAB може виконувати за допомогою спеціального пакету розширення Symbolic. Константа - це заздалегідь визначене числове або символьне значення, представлене унікальним ім’ям. Числа (наприклад: 1, -2 і 1.23) є безіменними числовими константами.
Основні системні змінні, що застосовуються в системі MATLAB, вказані нижче: i або j - уявна одиниця; pi - 3.1415926...; eps - погрішність для операцій над числами з плаваючою крапкою ( 52 2. ); realmin - найменше число з плаваючою точкою ( 1022 2. ); realmax – найбільше число з плаваючою точкою ( 1023 2 ); inf - значення машинної нескінченності; ans - змінна, що зберігає результат останньої операції і зазвичай спричиняє його відображення на екрані дисплея; NaN - вказівка на не числовий характер даних (Not-a-Number).
Як відмічалося, системні змінні можуть перевизначити. Можна задати системної змінної eps інше значення, наприклад eps=0.0001.
Однак важливе те, що їх значення по замовчуванню задаються відразу після завантаження системи. Тому невизначеними, на відміну від змінних, системні змінні не можуть бути ніколи. Символьні константи - це ланцюжок символів, взятих в апострофи, наприклад: ’Hello my friend!’ ’Привіт’ ’2+3’.Якщо в апострофи вміщене математичне вираження, то воно не обчислюється і розглядається просто як ланцюжок символів. Оскільки MATLAB використовується для досить складних обчислень, важливе значення має наглядність їх опису. Вона досягається, зокрема, використанням текстових коментарів. Текстові коментарі вводяться за допомогою оператора –
Символа % , наприклад: %.
Нижче представлено задання функції обчислення факторіалу
Знищення виділених змінних - команда clear .
У пам’яті змінні займають певне місце, котре носить назву:
робочий простір – workspace. Для очищення робочого простору використовується функція clear в різних формах, наприклад:
clear - знищення визначень всіх змінних; clear х - знищення визначення змінної х; clear a, b, с - знищення визначень змінних списку і так далі.
Знищена (стерта в робочому просторі) змінна стає невизначеною. Використати такі змінні не можна і такі спроби будуть супроводитися видачею повідомлень про помилку. Приведемо приклади завдання і знищення змінних:
»х=2*р1 х=
6.2832 » V=[12345] V=
12345 »МАТ
??? Undefined function or variable '
MAT'. »
MAT=[1 2 3 4; 5 6 7 8] МАТ=1234
5678 »
clear V»V
??? Undefined function or variable 'V. »clear »х
??? Undefined function or variable 'x'. »M???Undefined function or variable'M'.
Зверніть увагу на те, що спочатку вибірково стерта змінна V, а потім командою clear без параметрів стерті інші змінні. Оператор - це спеціальне позначення для певної операції над даними - операндами. Наприклад, найпростішими арифметичними операторами є знаки суми +, віднімання -, множення * і розподілу /. Оператори використовуються спільно з операндами. Наприклад, у вираженні 2+3 знак + є оператором складання, а числа 2 і 3 - операндами. Потрібно зазначити, що більшість операторів відноситься до матричних операцій, що може служити причиною серйозних непорозумінь. Наприклад, оператори множення * і розподілу / обчислюють добуток і частку від ділення двох масивів, векторів або матриць. Є ряд спеціальних операторів, наприклад: оператор означає поділ справа наліво, а оператори. .* і ./ означають почленне множення і ділення масивів.
Повний список операторів можна отримати, використовуючи команду » help ops .Функції в загальному випадку мають список аргументів (параметрів), взятий в круглі дужки. Наприклад, функція Бесселя записується як bessel(NU, X). У цьому випадку список параметрів містить два аргументи - NU у вигляді числа і Х у вигляді вектора.
Багато які функції допускають ряд форм запису, наприклад, відмінних списком своїх параметрів. Якщо функція повертає декілька значень, то вона записується у вигляді:
[Y1, Y2,...]=func(X1, X2,...),де Y1, Y2,... - список вихідних аргументів і X1, Х2, ... – список вхідних аргументів (параметрів).Зі списком елементарних функцій можна ознайомитися, виконавши команду help elfun , а зі списком спеціальних функцій - help specfun . Функції можуть бути вбудованими (внутрішніми) і зовнішніми, або М-функціями. Так, вбудованими є найбільш поширені елементарні функції, наприклад sin(х) і ехр(у), тоді як функція sinh(х) є зовнішньою функцією. Зовнішні функції містять свої визначення в М-файлах. Задання таких функцій за допомогою спеціального редактора М-файлів ми розглянемо пізніше. Дуже часто необхідно зробити формування впорядкованих числових послідовностей. Такі послідовності потрібні для створення векторів або значень абсциси при побудові графіків. Для цього в MATLAB використовується оператор : (двокрапка) у Наступній конструкції:
Початкове_значення:Крок:Кінцеве_значення
Дана конструкція породжує послідовність чисел, яка починається з початкового значення, йде із заданим кроком і завершується кінцевим значенням. Якщо крок не заданий, то він приймає значення 1 або – 1 у вказаних співвідношеннях. Як відмічалося, приналежність MATLAB до матричних систем вносить корективи в визначення операторів і приводить, при невмілому їх використанні, до казусів.
Розглянемо наступний характерний приклад:
»х=0:5
х=
0 1 2 3 4 5
»cos(х)
ans =
1.0000 0.5403 -0.4161 -0.9900 -0.6536 0.2837
»sin(х)/х
ans =
-0.0862
Обчислення масиву косинусів тут пройшло коректно. А ось обчислення масиву функції sin(х)/х дає на перший погляд несподіваний ефект замість масиву з шістьма елементами обчислено єдине значення. Причина “парадоксу” тут в тому, що оператор / обчислює відношення двох матриць, векторів або масивів. Якщо вони однієї розмірності, то результат буде одним числом, що в цьому випадку і видала система. Щоб дійсно отримати масив значень sin(х)/х, треба використати спеціальний оператор почленного ділення масивів -./.
Тоді буде отримано масив чисел:
»sin(х)./х
Warning: Divide by zero.
ans =NaN 0.8415 0.4546 0.0470 -0.1892 -0.1918
Проте, і тут без особливостей не обійшлося. Так, при х=0 значення sin(х)/х дає невизначеність вигляду 0/0=1. Однак, як і всяка чисельна система, MATLAB класифікує спробу розподілу на 0 як помилку і виводить відповідне попередження. А замість очікуваного чисельного значення виводиться символьна константа NaN, що означає, що невизначеність 0/0 все ж не звичайне число. Формати чисел - команда format
При роботі з числовими даними можна задавати різні формати представлення чисел. Однак в будь-якому випадку всі обчислення проводяться з подвійною точністю. Для установки формату представлення чисел використовується команда »format name, де name – ім’я формату. Для числових даних name може бути наступним повідомленням: short - коротке представлення в фіксованому форматі (знаків), short е - коротке представлення в експонентному форматі (5 знаків мантиси і 3 порядки), long – довге представлення в фіксованому форматі (15 знаків), long е – довге представлення в експонентному форматі (15 знаків мантиси і 3 порядки), hex - представлення чисел в шістнадцятеричній формі; bank - представлення для грошових одиниць.
Основи роботи з векторами і матрицями.
Якщо необхідно задати вектор з трьох елементів, то їх значення треба перерахувати в квадратних дужках, розділяючи пропусками.
Задання матриці вимагає вказівки різних рядків. Для розрізнення рядків використовується знак - ; (крапка з комою). Цей же знак (або знак коми) в кінці введення запобігає виведенню матриці або вектора на екран дисплея. Так, введення.Можливе введення елементів матриць і векторів у вигляді арифметичних виразів, що містять будь-які доступні системі функції, наприклад:
»V=[2+2/(3+4) exp(5) sqrt(10)];
»V
V=
2.2857 148.4132 3.1623
Для вказівки на елемента вектора або матриці використовуються вирази вигляду V(i) або M(i;j). Якщо потрібно привласнити елементу M(i;j) нове значення х, потрібно використати вираз M(i;j)=х. Можливе завдання векторів і матриць з комплексними елементами.
Нарівні з операціями над окремими елементами матриць і векторів система дозволяє виробляти операції множення, розподілу і зведення в міру відразу над всіма елементами масивами. Для цього перед операцією ставиться знак точка. Наприклад, знак * означає знак множення для векторів або матриць, а знак .* - множення всіх елементів у вигляді масиву. Так, якщо М - матриця, то М.*2 дасть матрицю, всі елементи якої помножені на скаляр - число 2.
Об’єднання малих матриць у велику. Описаний спосіб завдання матриць дозволяє виконати операцію конкатенації – об’єднання малих матриць у велику. Для знаходження суми стовпчиків матриці використовується функція sum(A) , а суми рядків sum(A’) . Запис А’ означає транспонування матриці А. Видалення стовпців і рядків матриць. Для формування матриць і виконання ряду матричних операцій виникає необхідність видалення окремих стовпців і рядків матриці. Для цього використовуються пусті квадратні дужки
Для роботи з матрицями використовуються основні команди:
det (Х)- знаходження визначника матриці;
inv (X) – знаходження оберненої матриці.
3. Практична робота
1.Задаємо матриці:
2. Визначаємо визначники і множення А·В і В·А:
3.Знаходимо обернені матриці.
4. Задаємо матриці і знаходимо матрицю Х.
4. Висновок
На даній роботі ми ознайомилися з пакетом Matlab. Навчилися знаходити матриці обернені і їх визначники. Знаходити матрицю Х з ВХ=А, також множити матриці на скаляр.
5. Література
1. В.П.Дьяконов, И.В. Абраменкова MATLAB 5.0/5.3 Система символьной математики, М, «Нолидж», 1999 634 с.
Похожие работы
-
Теорія множин. Операції над множинами та їх властивості
Теоретичні основи теорії множин. Основні операції над множинами та їх властивості. Складання програми для обчислення результуючої множини за вихідним і спрощеним виразами. Виконання операцій над множинами, застосування їх властивостей, спрощення виразів.
-
Способи зберігання графів. Пошук в графі
Програмна робота з графами: операції їх зчитування, збереження та обробки у вигляді перевірки на симетричність та орієнтованість. Основи пошуку в графі в різних напрямках. Розбиття множини вершин на класи еквівалентності за відношенням зв'язності графу.
-
Дослідження перехідних характеристик цифрових САК
Дослідження цифрових систем автоматичного керування. Типові вхідні сигнали. Моделювання цифрової та неперервної САК із використання MatLab. Результати обчислень в програмі MatLab. Збільшення періоду дискретизації цифрової системи автоматичного керування.
-
Інтерполювання функцій за формулою Лагранжа
Вираз інтерполяційного многочлена Лагранжа. Методи математичного пакету MathCad. Графічне зображення лінійної інтерполяції. Схема алгоритму прикладної програми lagr.pas. Лістинг модуля користувача та програмного модуля. Результат роботи програми lagr.pas.
-
Моделирование структурных схем в среде SIMULINK пакета MATLAB
Практические навыки моделирования структурных схем в среде SIMULINK пакета MATLAB. Построение графиков функций в декартовой системе координат. Решение систем линейных и нелинейных уравнений. Работа с блоками Sum, Algebraic Constraint, Gain, Product.
-
Моделирование движения невесомой заряженной частицы в электрическом поле в среде MathCAD и Matlab
Моделирование движения невесомой заряженной частицы в электрическом поле, созданном системой нескольких фиксированных в пространстве заряженных тел, в случае, когда заряженные тела находятся в одной плоскости и в ней же находится движущаяся частица.
-
Синтез системи оперативної обробки мінімальної конфігурації
Еverest як програма для перегляду інформації про апаратні і програмні конфігурації комп'ютера, її структура та принцип роботи, значення та функціональні особливості. Обчислення середнього часу відповіді та вартості СОО. Методи діагностики Linux.
-
Розрахунок норм вектору
Розробка програми для розрахунку норм вектору. Процедури множення матриці на матрицю, сумування матриць, віднімання векторів. Функція множення матриці на вектор. Обчислення евклідової норми вектора. Створення зручного інтерфейсу для користувача.
-
Інженерні розрахунки в MathCad
Розв’язання системи лінійних та нелінійних рівнянь у програмі MathCAD. Матричний метод розв'язання системи рівнянь. Користування панеллю інструментів Математика (Math) для реалізації розрахунків в системі MathCAD. Обчислення ітераційним методом.
-
Виконання символьних операцій з многочленами
Математичний опис задачі виконання символьних операцій з многочленами, розробка алгоритмів її реалізації і сама реалізація на одній з версій алгоритмічної мови Pascal, контрольна перевірка правильності. Тестування програми на екстремальних вхідних даних.