Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Теоретическое обоснование

ОСНОВЫ РАБОТЫ В СРЕДЕ MATLAB

Цель и содержание работы: научиться проводить прямые вычисления и создавать М-файлы в пакете автоматизации математических расчетов MATLAB.

Система MATLAB была разработана К. Б. Молером и с конца 70-х гг. широко использовалась на больших ЭВМ. В начале 80-х гг. Джон Литл из фирмы MathWorks, Inc. разработал версии системы PC MATLAB для компьютеров класса IBM PC, VAX и Macintosh.

MATLAB — является системой автоматизации математических расчетов, построенной на расширенном представлении и применении матричных операций. Это нашло отражение в названии системы — MATrix LABoratory — матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что эта ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления. Он включает в себя вычисления, визуализацию и программирование в удобной среде.

В MATLAB используются такие типы данных, как многомерные массивы, массивы ячеек, массивы структур и разреженные матрицы, что открывает возможности применения системы при создании и отладке алгоритмов матричных вычислений и крупных баз данных.

Система MATLAB ориентирована на матричные операции. Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния динамических объектов и систем. Напомним, что двумерный массив чисел или математических выражений принято называть матрицей. А одномерный массив называют вектором. Примеры векторов и матриц даны ниже:

— вектор из 4 элементов;

– матрица размера 4x3.

Размер матрицы определяется числом ее строк m и столбцов n. Обычно размер матрицы указывают как . Элементы векторов и матриц рассматриваются как индексированные переменные, например:

— второй элемент вектора V;

— третий элемент второй строки матрицы М.

Обычные числа и переменные в MATLAB рассматриваются как матрицы размера 1x1, что дает единообразные формы и методы проведения операций над обычными числами и массивами. Данная операция обычно называется векторизацией. Векторизация обеспечивает и упрощение записи операций, производимых одновременно над всеми элементами векторов и матриц, и существенное повышение скорости их выполнения. Это также означает, что большинство функций может работать с аргументами в виде векторов и матриц. При необходимости вектора и матрицы преобразуются в массивы, и значения вычисляются для каждого их элемента.

Система MATLAB выполняет сложные и трудоемкие операции над векторами и матрицами даже в режиме прямых вычислений без какого-либо программирования. В этом случае работа происходит в режиме «вопрос – ответ», что немного напоминает работу в MathCAD. Ею можно пользоваться как мощнейшим калькулятором, в котором наряду с обычными арифметическими и алгебраическими действиями могут использоваться такие сложные операции, как инвертирование матрицы, вычисление ее собственных значений и принадлежащих им векторов, решение систем линейных уравнений, вывод графиков двумерных и трехмерных функций и многое другое.

В режиме непосредственных вычислений, которые проводятся в командном режиме, можно решать множество математических задач.

Существует ряд основных команд управления Окном командного режима (Command Window):

clс — очищает экран и размещает курсор в левом верхнем углу пустого экрана;

home — возвращает курсор в левый верхний угол окна;

mоrе on — включает режим постраничного вывода (полезен при просмотре больших m-файлов);

mоrе off — отключает режим постраничного вывода (в этом случае для просмотра больших фалов надо пользоваться линейкой прокрутки).

Команды clc и home действуют аналогично — очищают экран и помещают курсор в левый верхний угол окна командного режима работы.

В системе MATLAB можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства, аналогично присваиванию в Visual Basic.

Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение — вектор или матрица, то переменная будет векторной или матричной.

Имя переменнойможет содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя любой переменной не должно совпадать с именами других переменных, функций и процедур системы, т. е. оно должно быть уникальным. Имя должно начинаться с буквы, может содержать буквы, цифры и символ подчеркивания. Недопустимо включать в имена переменных пробелы и специальные знаки, например +, .-, *, / и т. д., поскольку в этом случае правильная интерпретация выражений становится невозможной.

Существует ряд основных правил для общения с MATLAB:

- для указания ввода исходных данных используется символ >>;

- данные вводятся с помощью простейшего строчного редактора;

- для блокировки вывода результата вычислений некоторого выражения после него надо установить знак «;» (точка с запятой);

- если не указана переменная для значения результата вычислений, то MATLAB назначает такую переменную с именем ans;

- знаком присваивания является привычный математикам знак равенства =, а не комбинированный знак:=, как во многих других языках программирования и математических системах;

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

- встроенные функции (например, sin) записываются строчными буквами, и их аргументы указываются в круглых скобках;

- диалог происходит в стиле «задал вопрос — получил ответ».

Оператор это специальное обозначение для определенной операции над данными — операндами. Используются следующие операторы:


+ сложение;

- вычитание;

* умножение;

.* поэлементное умножение массивов;

/ деление;

./ поэлементное деление массивов;

 

левое деление (деление справа налево);

^ возведение в степень;

транспонирование

() определение порядка вычислений.


Система MATLAB создана таким образом, что любые (подчас весьма сложные) вычисления можно выполнять в режиме прямых вычислений, то есть без подготовки программы. Это превращает MATLAB в необычайно мощный калькулятор, который способен производить не только обычные для калькуляторов вычисления (например, выполнять арифметические операции и вычислять элементарные функции), но и операции с векторами и матрицами, комплексными числами, рядами и полиномами.

Работа с системой в режиме прямых вычислений носит диалоговый характер и происходит по правилу «задал вопрос – получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует его (если нужно) в командной строке и завершает ввод нажатием клавиши ENTER.

Система MATLAB предоставляет большое количество элементарных математических функций, а также логических функций, функций обработки множеств и т.д. Имена функций не являются зарезервированными, поэтому возможно изменять их значения на новые. Несколько специальных функций представляют значения часто используемых констант:

аns – результат выполнения последней операции;

pi – 3.14159265…;

i или j – мнимая единица ();

eps – относительная точность числа с плавающей точкой, 2-52;

realmin – наименьшее число с плавающей точкой, 2-1022;

realmax – наибольшее число с плавающей точкой, ;

Inf – бесконечность;

NAN – не число.

В системе MATLAB определены следующие функции:

Таблица 1.1 – Основные функции MATLAB

Функция Название Пример
Математические
abs(X) Модуль. Возвращает абсолютную величину для каждого числового элемента вектора X. >> abs(-5) ans =
ехр(Х) Экспонента. Возвращает экспоненту для каждого элемента X. >> ехр([1 2 3]) ans = 2.7183 7.3891 20.0855
inv(A) Возвращает матрицу А-1, обратную матрице А A = 1 1 1 0 1 -1 3 1 -1 2 0 3 3 1 1 -1 >> inv(A) ans = -1.000 0.100 0.200 0.700 1.000 -0.250 0 -0.2500 1.000 0.150 -0.200 -0.450 -1.000 0.200 0.400 0.400
det(A) Возвращает определитель матрицы А A = 1 1 1 0 1 -1 3 1 -1 2 0 3 3 1 1 -1 >> det(A) ans = -20
log(X) Возвращает натуральный логарифм элементов массива X. >> Х=[1.2 3.34 5 2.3]; >> log(X) ans= -0.1823 1.2060 1.6094 0.8329
log2(X) Возвращает логарифм по основанию 2 элементов массива X. >> X=[1.2 3.34 5 2.3]; >> log2(X) ans = 0.2630 1.7398 2.3219 1.2016
log10(X) Возвращает логарифм по основанию 10 элементов массива X. >> X=[1.2 3.34 5 2.3]; >> log10(X) ans = 0.0792 0.5237 0.6990 0.3617
sqrt(X) Возвращает квадратный корень каждого элемента массива X >> А=[25 21.23 55.8 3]: >> sqrt(A) ans = 5.0 4.6076 7.4699 1.7321
cos(X) Возвращает косинус для каждого элемента X >> X=[1 2 3]; >> cos(X) ans = 0.5403 -0.4161 -0.9900
acos(X) Возвращает арккосинус для каждого элемента X >>Y = acos (0.5) Y= 1.0472
sin(X) Возвращает синус для каждого элемента X >> X=[pi/2 pi/4 pi/6 pi]; >> sin(X) ans = 1.000 0.7071 0.500 0.000
asin(X) Возвращает арксинус для каждого элемента X >> Y= asin (0.278) Y = 0.2817
tan(X) Возвращает тангенс для каждого элемента X >> Х=[0.08 0.06 1.09] >> tan(X) ans= 0.802 0.0601 1.9171
atan(X) Возвращает арктангенс для каждого элемента X >> Y=atan(1) Y = 0.7854
mod(X,Y) Возвращает остаток от дедения X на Y >> mod(5,2) ans =
Функции и операторы отношения Данные операторы выполняют поэлементное сравнение векторов или матриц одинакового размера и возвращают значение 1 (True), если элементы идентичны, и значение 0 (False) в противном случае.
eq Равно. Оператор: = = >> eq(2, 2) ans = >> 2==2 ans =
ne Не равно. Оператор: ~ = >> ne(l, 2) ans = >> 2 ~- 2 ans =
Lt Меньше чем. Оператор: < x<y
Gt Больше чем. Оператор: > x>y
Le Меньше или равно. Оператор: <= x<=y
Ge Больше или равно. Оператор: >= x>=y
Логические операторы и функции
And Логическое И (AND) & »А=[1 2 3]; »В=[1 0 0]; » and(A.B) ans = 1 0 0
Or Логическое ИЛИ (OR) | >> оr(А.В) ans = 1 1 1
Not Логическое НЕ (NOT) ~ >> not(А) ans = 0 0 0 >> not(B) ans = 0 1 1

 

Однако при решении серьезных задач возникает необходимость сохранения используемых последовательностей вычислений, а также их дальнейшей модификации. Файлы, которые содержат код на языке MATLAB, называются М-файлами. Существует два вида М-файлов:

- файлы-сценарии, которые не имеют входных и выходных аргументов;

- файлы-функции, которые имеют входные и выходные аргументы.

Файл-сценарий, именуемый также Script-файлом, является просто записью серии команд без входных и выходных параметров. Он работает с данными из Рабочей области (Workspace), в процессе работы не компилируется и представляет собой зафиксированную в виде файла последовательность операций, полностью аналогичной той, что используется при прямых вычислениях. В MATLAB возможно использование комментариев. Комментарий должен начинаться с символа %, при этом комментарий выделяется зеленым цветом. При правильной записи комментария он выделяется зеленым цветом, в противном случае – красным.

Файлы-функции – это М-файлы, которые имеют входные параметры и возвращают выходные. Имя М-файла и имя функции должно быть одним и тем же. Функции работают с локальными переменными в пределах их собственного рабочего пространства. Первая строка файла-функции начинается со слова function. Здесь происходит задание имени функции со списком входных и выходных аргументов. Остальные строки файла представляют собой исполняемый код MATLAB. Например, на рисунке 1.1 представлен файл-функция fun двух переменных х и у, вычисляющая .

Здесь входными аргументами являются x и y. Выходным – z. Поскольку переменные х и у указаны как параметры функции fun(x, у), то они являются локальными. При вычислении значения fun(2, 3) в теле функции задается и . Поэтому результат — . Если функция имеет несколько выходных параметров, то эти параметры записываются в квадратных скобках перед именем функции через запятую в той последовательности, в которой они будут возвращаться. Синтаксис записи такой функции выглядит следующим образом:

function [Список_выходных_параметров]=f_name(Список_входных_параметров)

Рисунок 1.1 – Зад ание файла-функции

Функцию можно вызывать как из файла-сценария, так и в режиме прямых вычислений.

 

Задания

1. Ознакомиться с интерфейсом системы MATLAB. Изучить правила ввода матриц и векторов, использования операторов.

2. Решить двумя методами, методом Крамера и матричным методом, систему линейных уравнений:

в режиме прямых вычислений.

3. Решить приведенную выше систему уравнений путем создания М-файлов.

 

Методика выполнения задания №1 «Ознакомление с интерфейсом MFTLAB»

1.1. Запустите систему MATLAB, щелкнув дважды по ярлыку на рабочем столе. Появляется основное окно MATLAB (рисунок 1.2). Изменить вид окна можно во вкладке Вид (View). Для получения вида, представленного на рисунке 8.2, необходимо проставить «галочки» в меню Вид (View) напротив Окно команд (Command Window), Команды (Command History), Рабочая область (Workspace).

1.2. Введите матрицу и вектор. При вводе строки матрицы или вектора между элементами строки ставится пробел или запятая, строки отделяются друг от друга точкой с запятой.

Задайте четырехэлементный вектор-строку V со значениями элементов 1, 2, 3 и 4. Записи вводятся в Окне команд после символа >>, который устанавливается автоматически. Две записи для вектора — V =[l 2 3 4] и V =[1,2,3.4] — являются идентичными. Список заключается в квадратные скобки. После ввода вектора нажать Enter.

Рисунок 1.2 – Основное окно системы MATLAB

В Окне команд (Command Window) появляется запись введенного вектора:

V =

<== предыдущая лекция | следующая лекция ==>
Управление электроприводом | Лекція №16
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 376; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.036 сек.