Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
MatLab MATrix LABoratory
МАТричная ЛАБоратория
(фирма Math Works,Inc.)
Возможности системы Matlab:
В состав MATLAB входят интерпретатор команд, графическая оболочка, редактор-отладчик, библиотеки команд, компилятор, символьное ядро пакета Maple для проведения аналитических вычислений, математические библиотеки MATLAB на C/C++,(частично Java, Fortran), богатый инструментарий (Toolboxes).
Пакет применяется в основном для работы с массивами данных матрицами.
Matlab включает в себя большое количество уже готовых математических средств, функций и операций, которые решают множество практических задач, для чего ранее приходилось готовить достаточно сложные программы:
Matlab - это уникальная коллекция реализаций современных численных методов.
Запись программ в системе традиционна и потому привычна для большинства пользователей компьютеров. К тому же система дает возможность редактировать программы с помощью любого привычного для пользователя текстового редактора. Имеет она и собственный редактор с отладчиком.
1). Начало работы в Matlab
1. Чтобы запустить Matlab, щелкните мышкой по ярлыку
на рабочем столе или кнопка Пуск/Все программы/ Matlab/Start Matlab.
Перед Вами откроется рабочая среда, изображенная на рисунке 1.
рис.1 Основной интерфейс MATLAB
2. Сменить текущий каталог. Для этого в строке Current Folder нажмите кнопку с многоточием и в открывшемся Окне папок откройте папку, в которой хранятся Ваши M-файлы (программные файлы). Если такой папки нет, то создайте её в этом окне (рис.2).
Установленный путь к новому текущему каталогу пользователя при повторной загрузке Matlab можно найти в строке Current Folder по раскрывающейся кнопке.
рис.2 Смена текущего каталога
3. Для изменения настроек рабочей среды В Командном окне откройте меню/File/ Preferences... открывается окно настройки элементов интерфейса (рис.3).
Основные настройки:
рис.3 Изменения настроек рабочей среды
Переменные в MATLAB не нужно предварительно описывать, указывая их тип. Все данные хранятся в виде массивов: числовые переменные (внутренний тип numeriс), текстовые строки (char), ячейки (сеll) и структуры (struct). Двумерный массив это матрица, вектор матрица размера 1xn, а скаляр матрица размера 1x1. Имя переменной должно начинаться с буквы, за ней могут идти буквы, цифры и символ подчеркивания. Допустимы имена любой длины, но MATLAB идентифицирует их по первым 31 символам и различает большие и малые буквы. В MATLAB имеется ряд констант (табл.1.1).
Таблица 1.1 Зарезервированные имена констант
Имя |
Описание |
ans |
Результат последней операции |
i, j |
Мнимая единица |
pi |
Число p |
eps |
Машинная точность |
realmax |
Максимальное вещественное число |
realmin |
Минимальное вещественное число |
inf |
Бесконечность |
NaN |
Нечисловая переменная |
end |
Наибольшее значение индекса размерности массива |
Отметим, что имя NaN (Not-a-Number) зарезервировано для результата операций 0/0, 0*inf, inf-inf и т.п.
Таблица 1.2 Специальные символы
Символ |
Назначение |
[] |
Квадратные скобки используются при задании матриц и векторов |
Пробел служит для разделения элементов матриц |
|
, |
Запятая применяется для разделения элементов матриц и оператора в строке ввода |
; |
Точка с запятой отделяет строки матриц, а точка с запятой в конце оператора (команды) отменяет вывод результата на экран |
: |
Двоеточие используется для указания диапазона (интервала изменения величины) и в качестве знака групповой операции над элементами матриц |
() |
Круглые скобки применяются для задания порядка выполнения математических операций, а также для указания аргументов функций и индексов матриц |
. |
Точка отделяет дробную часть числа от целой его части, а также применяется в составе комбинированных знаков (.*, .^, ./, .\) |
… |
Три точки и более в конце строки отмечают продолжение выражения на следующей строчке |
% |
Знак процента означает начало комментария |
|
Апостроф указывает на символьные строки, а для включения самого апострофа в символьную строку нужно поставить два апострофа подряд |
2). Интерфейс программы Matlab
При запуске система открывает от одного до пяти окон (в зависимости от установок) :
Рис.4 Интерфейс программы Matlab
Пользователь может настраивать вид интерфейса и произвольно располагать его окна.
Меню /Desktop/ Desktop Layout/Default открывает все окна.
Используя соответствующие пункты меню Desktop, можно открыть любой набор окон.
Окна:
Command Window командное окно, в которое пользователь вводит
свои команды и получает результаты работы среды.
Мигающий курсор означает приглашение к
работе;
Current Folder - (Текущая папка), предназначено для просмотра файловой
структуры и установки текущего каталога;
Command History - предназначено для сохранения, просмотра и повторного вызова ранее введенных команд;
Workspase - рабочее пространство, позволяет просматривать существующие в памяти объекты, создаваемые в процессе сеанса работы с Matlab, редактировать их содержимое и удалять объекты из памяти.
Окна можно минимизировать, открепить от Командного окна, восстановить, закрыть.
Для этого проанализируйте пиктограммы в правой части строки заголовка окна или меню/Desktop, которое является контекстно- зависимым, т.е. пункты верхнего блока выкидного меню зависят от того, какое из окон в данный момент является активным.
Содержимое окон Command Window, Command History и Workspase можно очистить полностью: меню/Edit/… или выделить всё мышкой, Del.
Если нужно очистить одну или несколько переменных: выделите их в окне Workspase, Del или в командной строке напишите команду clear <имя>.
Все определения, сделанные в течение стертых таким образом сессий, сохраняются в памяти компьютера. Для очистки экрана используется также команда clc, вводимая в командном режиме.
Более подробно работа с окнами будет рассмотрена в теме M-файлы.
3). Простейшие вычисления. Сценарий. MAT файлы.
Наберите в командной строке 1+2 и нажмите Enter. В результате в Командном окне Matlab отображается следующее:
Сначала программа вычислила сумму 1+2, затем записала результат в специальную переменную ans и вывела ее значение, равное 3, в командное окно.
Ниже ответа расположена командная строка с мигающим курсором, обозначающая, что Matlab готов к дальнейшим вычислениям. Можно набирать в командной строке новые выражения и находить их значения. Если требуется продолжить работу с предыдущим выражением, например, вычислить (1+2)/4.5, то проще всего воспользоваться уже имеющимся результатом, который хранится в переменной ans. Наберите ans/4.5 (при вводе десятичных дробей используется точка) и нажмите Enter.(ans это переменная без имени).
Сохранить все значения переменных:
Использовать в меню File пункт Save Workspase As или написать команду save <имя файла>. Программа сохранит результаты работы в файле с расширением mat. Теперь можно закрыть Matlab .
В следующем сеансе работы для восстановления значений переменных следует открыть этот сохраненный файл при помощи load <имя файла> или открыть этот сохраненный файл при помощи подпункта Open меню File.. Теперь все переменные, определенные в прошлом сеансе, опять стали доступными. Их можно использовать во вновь вводимых командах.
4). M-файлы, основы программирования.
Работа из командной строки Matlab (сценарий, дневник) затруднена, если требуется вводить много команд и часто их изменять. Тем более, что сценарий сохраняет только значения всех (или по выбору пользователя) переменных, но не команды, введенные в командных строках.
Самым удобным способом выполнения команд Matlab является использование М-файлов, в которых можно набирать команды, выполнять их все сразу или частями, сохранять в файле и использовать в дальнейшем.
Для работы с М-файлами предназначен редактор/отладчик
М-файлов Editor. При помощи этого редактора можно создавать собственные программы и функции и вызывать их, в том числе и из командной строки.
Открыть редактор:
Раскройте меню File Командного окна Matlab и в пункте New выберите подпункт Script (или M-file в более ранних версиях)
(или, что удобнее, пиктограмма на Панели инструментов).
Новый файл открывается в окне редактора М-файлов.
Прежде чем открывать окно редактора не забудьте сменить каталог.
По умолчанию файлу дается имя Untitled.m (безымянный), которое впоследствии (при сохранении файла) можно изменить на другое, отражающее тему задачи. Это имя отображается в титульной строке окна редактирования М-файла, которое размещается в окне редактора/отладчика.
Пример 1.
Наберите в редакторе команды, приводящие к построению двух графиков в одном графическом окне:
x=-10:0.1:10;
y1=sin(x);
y2=cos(x);
plot(x,y1,x,y2)
Сохраните файл с именем primer1.m в своей папке, выбрав пункт Save as меню File редактора Editor, или пиктограмму дискетка на Панели инструментов.
Для запуска на выполнение всех команд, содержащихся в файле, из редактора следует выбрать пункт Run в меню Debug (или F5, или пиктограмма зеленый треугольник на ПИ).
На экране появится графическое окно Figure 1, содержащее графики функций.
Если Вы решили построить график y1=sin2(x) вместо y1=sin(x), то просто внесите изменение в строку y1=sin(x) в редакторе, сохраните и запустите на выполнение.
Если при наборе сделана ошибка и Matlab не может распознать команду, то происходит выполнение команд до неправильно введенной команды, после чего выводится сообщение об ошибке в командное окно.
Изменить ошибочную команду можно и в командном окне: используя клавиши навигации вверх-вниз, вправо-влево найдите эту команду, внесите исправления Enter.
Очень удобной возможностью, предоставляемой редактором М-файлов Editor, является выполнение части команд.
Выделите при помощи мыши, удерживая левую кнопку, или клавишами со стрелками при нажатой клавише <Shift>, несколько команд программы и выполните их из пункта Evaluate Selection (вычислить по выбору) меню Text (или F9).
Отдельные блоки и команды М-файла можно снабжать комментариями, которые пропускаются при выполнении, но удобны при работе с М-файлом. Комментарии в MatLab начинаются со знака процента и автоматически выделяются зеленым цветом, например:
plot(x,y1,x,y2)%График двух функций
В редакторе/отладчике М-файлов может быть одновременно открыто несколько файлов. Переход между файлами осуществляется при помощи закладок с именами файлов, расположенных внизу окна редактора.
Таким образом, в редакторе/отладчике можно редактировать несколько m-файлов, и каждый из них будет находиться в своем окне редактирования, хотя активным может быть только одно окно, расположенное поверх других окон.
Открытие существующего М-файла производится в редакторе М-файлов Editor или при помощи пункта Open меню File Командного окна (рабочей среды).
Открыть файл в редакторе Editor можно и командой edit из командной строки, указав в качестве аргумента имя файла, например:
>> edit primer1
В редакторе М-файлов Editor открывается файл primer1.m
Команда edit без аргумента приводит к созданию нового файла.
Для получения листинга программы введите команды
>>echo <имя файла> on
>> type <имя файла>
или выделите содержимое файла в редакторе и нажмите F9.
Применение численных методов и программирование в Matlab требует создания М-файлов.
М-файлы в Matlab бывают двух типов: файл-программы (Script, M-Files), содержащие последовательность команд, и файл-функции (Function M-Files), в которых описываются функции, определяемые пользователем.
Файл-программа - смотри файл primer1.m
Все переменные, объявленные в файл-программе, становятся доступными в рабочей среде после ее выполнения.
Запустите на выполнение в редакторе М-файлов файл-программу, приведенную в примере 1 (файл primer1.m).
1. Откройте и проанализируйте содержимое окна Workspase (Рабочее пространство).
Workspase позволяет просматривать существующие в памяти объекты, создаваемые в процессе сеанса работы с Matlab, редактировать их содержимое и удалять объекты из памяти.
Подведите курсор к многоточию откроется более полная информация о переменной.
В окне также выводятся данные о числе строк и столбцов матрицы.
Для вывода и анализа содержимого объекта достаточно выделить его имя с помощью мыши и щелкнуть на кнопке Open в этом окне или двойным щелчком на его имени в списке.
Откроется окно редактирования массива Array Editor, которое дает удобный доступ для редактирования любого элемента матрицы по правилам, принятым при работе с электронными таблицами.
Основное из них быстрый доступ к любому элементу матрицы. Можно также менять тип значений элементов, выбирая его из списка, предоставляемого меню Numeric format (Формат чисел).
2. Просмотр рабочей области возможен и в командном режиме, без обращения к браузеру Workspace .
Команда who выводит список определенных переменных,
команда whos список переменных с указанием их размера и объема занимаемой памяти. Следующий пример иллюстрируют действие этих команд:
А). Наберите команду who в командной строке.
В командном окне появится информация
>> who
Your variables are:
x y1 y2
B). Наберите команду whos в командной строке для просмотра содержимого рабочей среды.
В командном окне появится описание переменных:
>> whos
Name Size Bytes Class Attributes
x 1x201 1608 double
y1 1x201 1608 double
y2 1x201 1608 double
Если вы хотите просмотреть данные одной переменной, например y1, следует использовать команду whos y1. Естественно, просмотр рабочей области с помощью браузера рабочей области Workspace более удобен и нагляден.
Переменные, определенные в одной файл - программе, можно использовать в других файл - программах и в командах, выполняемых из командной строки.
Запустить на выполнение команды, содержащиеся в файл - программе, можно двумя способами:
Из редактора М-файлов так, как описано выше.
Из командной строки или другой файл - программы, при этом в качестве команды используется имя М-файла.
>> primer1
Применение второго способа намного удобнее, особенно, если созданная файл-программа будет неоднократно использоваться впоследствии. Фактически, созданный М-файл становится командой, которую понимает MatLab.
После ввода команды >> primer1 Matlab производит следующие действия:
Проверяет, является ли введенная команда именем какой-либо из переменных, определенных в рабочей среде. Если введена переменная, то выводится ее значение.
Если введена не переменная, то MatLab ищет введенную команду среди встроенных функций. Если команда оказывается встроенной функцией, то происходит ее выполнение.
Если введена не переменная и не встроенная функция, то Matlab начинает поиск М-файла с названием команды и расширением m. Поиск начинается с текущего каталога (Current Folder), если М-файл в нем не найден, то Matlab просматривает каталоги, установленные в пути поиска (Path).
Найденный М-файл выполняется в Matlab.
Если ни одно из вышеперечисленных действий не привело к успеху, то выводится сообщение в командное окно, например:
» primer3
??? Undefined function or variable ' primer3'.
В этом случае попробуйте открыть m-файл
» type primer3
Откроется листинг программы. Выделите его и нажмите Enter.
В рабочей среде Matlab для вызова ранее введенных команд имеется удобное средство - окно Command History с историей команд.
История команд содержит время и дату каждого сеанса работы с Matlab.
Для активизации окна Command History необходимо выбрать в меню Desktop вкладку с одноименным названием.
Текущая команда в окне изображена на синем фоне. Если щелкнуть на какой-либо команде в окне левой кнопкой мыши, то данная команда становится текущей.
Для ее выполнения в Matlab надо применить двойной щелчок мыши или выбрать строку с командой при помощи клавиш <up>, <down> (стрелки вверх/вниз) и нажать клавишу Enter, или просто скопировать её в командное окно.
Лишнюю команду можно убрать из окна Command History . Для этого ее надо сделать текущей и удалить при помощи клавиши Delete.
Выделение последовательно идущих команд можно производить левой кнопкой мыши с одновременным удерживанием клавиши Shift. Выполнить их при помощи Enter или удалить клавишей Delete.
Если команды не идут одна за другой, то для их выделения следует использовать левую кнопку мыши с удерживанием клавиши Ctrl.
При щелчке правой кнопкой мыши по области окна Command History появляется всплывающее меню.
Выбор пункта Сору приводит к копированию команды в буфер Windows.
При помощи Evaluate Selection можно выполнить отмеченную группу команд.
Для удаления текущей команды предназначен пункт Delete Selection.
Для удаления всех команд до текущей - Delete to Selection, для удаления всех команд - Delete Entire History.
5). Форматы вывода результата вычислений
Требуемый формат вывода результата определяется пользователем.
Все расчеты в MATLAB выполняются с двойной точностью, а для представления чисел на экране имеются разные форматы. Нужный формат может быть определен в меню (File/Preferences) либо при помощи команды format в командном окне (>>format long, >>format compact ). Существуют следующие способы представления чисел (табл.1.3).
Таблица 1.3 Форматы вывода на экран
Формат |
Представление |
short |
Число отображается с 4 цифрами после десятичной точки или в формате short e |
short e |
Число в экспоненциальной форме с мантиссой из 5 цифр и показателем из 3 цифр |
rat |
Представление в виде рационального дробного числа |
long |
Число с 16 десятичными цифрами |
long e |
Число в экспоненциальной форме с мантиссой из 16 цифр и показателем из 3 цифр |
hex |
Число в шестнадцатеричной форме |
Для более удобного восприятия результата MatLab выводит результат вычислений через строку после вычисляемого выражения. Однако иногда бывает удобно разместить больше строк на экране, для чего следует выбрать переключатель compact из раскрывающегося списка Numeric display..
Добавление пустых строк обеспечивается выбором loose из раскрывающегося списка Numeric display.
Все промежуточные вычисления MatLab производит с двойной точностью, независимо от того, какой формат вывода установлен.
Разберем только наиболее часто используемые форматы. Выберите short в раскрывающемся списке Numeric format в Окно Preferences / Command Window
.Этот формат обычно установлен по умолчанию.
Это короткий формат с фиксированной точкой short для вывода результатов вычислений, при котором на экране отображаются только четыре цифры после десятичной точки.
Наберите в командной строке 100/3 и нажмите <Enter>.
Результат выводится в формате short:
»100/3
ans =
33.3333
>> 765.5432156
ans =
765.5432
Этот формат вывода сохранится для всех последующих вычислений, если только не будет установлен другой формат.
Заметим, что в Matlab возможна ситуация, когда при отображении слишком большого или малого числа результат не укладывается в формат short. Вычислите 100000/3, результат выводится в экспоненциальной форме:
» 100000/3
ans =
З.ЗЗЗЗе+004
То же самое произойдет и при нахождении 1/3000:
» 1/3000
ans =
З.ЗЗЗЗе-004
Однако, первоначальная установка формата сохраняется и при дальнейших вычислениях, для небольших чисел вывод результата снова будет происходить в формате short.
В предыдущих примерах пакет Matlab вывел результат вычислений в экспоненциальной форме. Аналогично можно вводить числа в выражениях. Например, проще набрать 10е9 или l.0e10, чем 1000000000, а результат будет тот же самый. Пробел между цифрами и символом е при вводе не допускается, т.к. это приведет к сообщению об ошибке.
Если требуется получить результат вычислений более точно, то следует выбрать в раскрывающемся списке long. Результат будет отображаться в длинном формате с фиксированной точкой с пятнадцатью цифрами после десятичной точки.
>> format long
>> 65.432178
ans =
65.432177999999993
Форматы short e и long e предназначены для вывода результата в экспоненциальной форме с четырьмя и пятнадцатью цифрами после десятичной точки соответственно.
>> format short e
>> 12345678e-7
ans =
1.2346e+000
>> format short e
>> 765.5432156
ans =
7.6554e+002
» format long e
» 1.25/3.11
ans =
4.019292604501608е-001
Формат bank (банковский) 2 знака после запятой;
>> format bank
>> 123.56784
ans =
123.57
Информацию о форматах можно получить, набрав в командной строке команду help с аргументом format:
» help format
В командном окне появляется описание каждого из форматов.
Задавать формат вывода можно непосредственно из командной строки при помощи команды format.
При вычислениях возможны некоторые исключительные ситуации, например деление на ноль, которые в большинстве языков программирования приводят к ошибке. При делении положительного числа на ноль в Matlab получается inf (бесконечность), а при делении отрицательного числа на ноль получается -inf (минус бесконечность) и выдается предупреждение:
» 1/0
Warning: Divide by zero.
ans =
Inf
При делении нуля на ноль получается NaN (не число) и также выдается предупреждение:
» 0/0
Warning: Divide by zero.
ans =
NaN
При вычислении, например sqrt(-1), никакой ошибки или предупреждения не возникает. Matlab автоматически переходит в область комплексных чисел:
»sqrt(-1.0)
ans =
0 + l.0000i
6). Установка количества значащих цифр выводимых чисел
Функция vpa(S,D)-возвращает результат вычислений каждого элемента массива S с количеством значащих цифр D
>> A=[1,2,3;4,2,5;7,8,9]
A =
1 2 3
4 2 5
7 8 9
>> C=A/0.123
C =
8.1301 16.2602 24.3902
32.5203 16.2602 40.6504
56.9106 65.0407 73.1707
>> vpa(C,3)
ans =
[ 8.13, 16.3, 24.4]
[ 32.5, 16.3, 40.7]
[ 56.9, 65.0, 73.2]
>> K=vpa(C,3)
K =
[ 8.13, 16.3, 24.4]
[ 32.5, 16.3, 40.7]
[ 56.9, 65.0, 73.2]
PAGE 5