Пакет MatLab был создан компанией Math Works более десяти лет назад. Работа сотен ученых и программистов направлена на постоянное расширение его возможностей и совершенствование заложенных алгоритмов. В настоящее время MatLab является мощным и универсальным средством решения задач, возникающих в различных областях человеческой деятельности.
Рабочая среда MatLab 6.x,MatLab 7 имеет удобный интерфейс для доступа ко многим вспомогательным элементам MatLab.
При запуске MatLab 6.x на экране появляется рабочая среда, изображенная на рис. 1.
Рис. 1. Рабочая среда пакета MatLab 6.x
Данный урок изучает основы работы (введение) в matlab.
Рабочая среда содержит следующие элементы:
- меню;
- панель инструментов с кнопками и раскрывающимся списком;
- окно с вкладками Launch Pad и Workspace, из которого можно получить простой доступ к различным модулям ТооlBох и к содержимому рабочей среды;
- окно с вкладками Command History и Current Directory, предназначенное для просмотра и повторного вызова ранее введенных команд, а также для установки текущего каталога;
- командное окно Command Window с командной строкой, в которой находится мигающий курсор;
- строку состояния.
Все команды, описанные в этой лабораторной работе, следует набирать в командной строке. Сам символ », обозначающий приглашение командной строки, приведенный в примерах, набирать не нужно. Для просмотра рабочей области удобно использовать полосы скроллинга или клавиши <Home>, <End> для перемещения влево или вправо и <PageUp>, <PageDown> для перемещения вверх или вниз. Про использование клавиш <up>, <down>, <rigth>, <left> будет сказано дополнительно. Если вдруг после перемещения по рабочей области командного окна пропала командная строка с мигающим курсором, просто нажмите <Enter>.
Важно запомнить, что набор любой команды или выражения должен заканчиваться нажатием на клавишу <Enter> для того, чтобы программа MatLab выполнила эту команду или вычислила выражение.
Замечание 1
Если в рабочей среде MatLab 6.x отсутствуют некоторые описанные окна, то следует в меню View выбрать соответствующие пункты: Command Window, Command History, Current Directory, Workspace, Launch Pad.
2.1. Арифметические вычисления
Встроенные математические функции MatLab позволяют находить значения различных выражений. MatLab предоставляет возможность управления форматом вывода результата. Команды для вычисления выражений имеют вид, свойственный всем языкам программирования высокого уровня.
2.1.1. Простейшие вычисления
Наберите в командной строке 1+2 и нажмите <Enter>. В результате в командном окне MatLab отображается следующее:
» 1+2
ans =
3
» |
Что сделала программа MatLab? Сначала она вычислила сумму 1+2, затем записала результат в специальную переменную ans и вывела ее значение, равное 3, в командное окно. Ниже ответа расположена командная строка с мигающим курсором, обозначающая, что MatLab готова к дальнейшим вычислениям. Можно набирать в командной строке новые выражения и находить их значения.
Если требуется продолжить работу с предыдущим выражением, например, вычислить (1+2)/4.5, то проще всего воспользоваться уже имеющимся результатом, который хранится в переменной ans. Наберите в командной строке ans/4.5 (при вводе десятичных дробей используется точка) и нажмите <Enter>, получается:
» ans/4.5
ans =
0.6667
» |
Замечание 2
Вид, в котором выводится результаты вычислений, зависит от формата вывода, установленного в MatLab. Далее объяснено, как задать основные форматы вывода.
2.1.2. Форматы вывода результата вычислений
Требуемый формат вывода результата определяется пользователем из меню MatLab. Выберите в меню File пункт Preferences. На экране появится диалоговое окно Preferences. Для установки формата вывода следует убедиться, что в списке левой панели выбран пункт Command Window. Задание формата производится из раскрывающегося списка Numeric format панели Text display.
Разберем пока только наиболее часто используемые форматы. Выберите short в раскрывающемся списке Numeric format в MatLab 6.x. Закройте диалоговое окно, нажав кнопку ОК. Сейчас установлен короткий формат с плавающей точкой short для вывода результатов вычислений, при котором на экране отображаются только четыре цифры после десятичной точки. Наберите в командной строке 100/3 и нажмите <Enter>.
Результат выводится в формате short:
» 100/3
ans =
33.3333
Этот формат вывода сохранится для всех последующих вычислений, если только не будет установлен другой формат. Заметьте, что в MatLab возможна ситуация, когда при отображении слишком большого или малого числа результат не укладывается в формат short. Вычислите 100000/3, результат выводится в экспоненциальной форме:
» 100000/3
ans =
З.ЗЗЗЗе+004
То же самое произойдет и при нахождении 1/3000:
» 1/3000
ans =
З.ЗЗЗЗе-004
Однако, первоначальная установка формата сохраняется и при дальнейших вычислениях, для небольших чисел вывод результата снова будет происходить в формате short.
В предыдущем примере пакет MatLab вывел результат вычислений в экспоненциальной форме. Запись 3.3333е-004 обозначает 3.3333*10-4 или 0.00033333. Аналогично можно набирать числа в выражениях. Например, проще набрать 10е9 или l.0e10, чем 1000000000, а результат будет тот же самый. Пробел между цифрами и символом е при вводе не допускается, т.к. это приведет к сообщению об ошибке:
» 10 е9
??? 10 е9
Missing operator, comma, or semi-colon.
Если требуется получить результат вычислений более точно, то следует выбрать в раскрывающемся списке long. Результат будет отображаться в длинном формате с плавающей точкой long с четырнадцатью цифрами после десятичной точки. Форматы short e и long e предназначены для вывода результата в экспоненциальной форме с четырьмя и пятнадцатью цифрами после десятичной точки соответственно. Информацию о форматах можно получить, набрав в командной строке команду help с аргументом format:
» help format
В командном окне появляется описание каждого из форматов.
Задавать формат вывода можно непосредственно из командной строки при помощи команды format. Например, для установки длинного с плавающей точкой формата вывода результатов вычислений следует ввести команду format long e в командной строке:
» format long e
» 1.25/3.11
ans =
4.019292604501608е-001
Обратите внимание, что команда help format выводит на экран название форматов прописными буквами. Однако команда, которую надо ввести, состоит из строчных букв. К этой особенности встроенной справки help надо привыкнуть. MatLab различает прописные и строчные буквы. Попытка набора команды прописными буквами приведет к ошибке:
» FORMAT LONG E
??? FORMAT LONG.
|
Missing operator, comma, or semi-colon.
Для более удобного восприятия результата MatLab выводит результат вычислений через строку после вычисляемого выражения. Однако иногда бывает удобно разместить больше строк на экране, для чего следует выбрать переключатель compact (File, Numeric display) из раскрывающегося списка. Добавление пустых строк обеспечивается выбором loose из раскрывающегося списка Numeric display.
Замечание 3
Все промежуточные вычисления MatLab производит с двойной точностью, независимо от того, какой формат вывода установлен.
2.2. Использование элементарных функций
Предположим, что требуется вычислить значение следующего выражения:
.
Введите в командной строке это выражение в соответствии с правилами MatLab и нажмите <Enter>:
» ехр(-2.5)*lоg(11.3)^0.3-sqrt((sin(2.45*pi)+cos(3.78*pi)}/tan(3.3))
Ответ выводится в командное окно:
ans =
-3.2105
При вводе выражения использованы встроенные функции MatLab для вычисления экспоненты, натурального логарифма, квадратного корня и тригонометрических функций. Какие встроенные элементарные функции можно использовать и как их вызывать? Наберите в командной строке команду help eifun, при этом в командное окно выводится список всех встроенных элементарных функций с их кратким описанием. Аргументы функций заключаются в круглые скобки, имена функций набираются строчными буквами. Для ввода числа л достаточно набрать pi в командной строке.
Арифметические операции в MatLab выполняются в обычном порядке, свойственном большинству языков программирования:
- возведение в степень ^;
- умножение и деление *, /;
- сложение и вычитание +, -.
Для изменения порядка выполнения арифметических операторов следует использовать круглые скобки.
Если теперь требуется вычислить значение выражения, похожего на предыдущее, например
то необязательно его снова набирать в командной строке. Можно воспользоваться
тем, что MatLab запоминает все вводимые команды. Для повторного занесения их в командную строку служат клавиши <up>, <down>. Вычислите данное выражение, проделав следующие шаги.
1. Нажмите клавишу <>, при этом в командной строке появится введенное ранее выражение.
2. Внесите в него необходимые изменения, заменив знак минус на плюс и квадратный корень на возведение в квадрат (для перемещения по строке с выражением служат клавиши <right>, <left>, <Home>, <End>).
3. Вычислите измененное выражение, нажав <Enter>.
Получается
»ехр(-2.5)*log(11.3)^0.3+((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
121.2446
Если необходимо получить более точный результат, то следует выполнить команду format long e, затем нажимать клавишу <> до тех пор, пока в командной строке не появится требуемое выражения, и вычислить его, нажав <Enter>.
» format long e
» exp(-2.5)*log(11.3)^0.3+((sin.(2.45*pi)+cos(3.78*pi))/tan(3.3))^2
ans =
1.212446016556763e+002
Вывести результат последнего найденного выражения в другом формате можно без повторного вычисления. Следует изменить формат командой short, а затем посмотреть значение переменной ans, набрав ее в командной строке и нажав <Enter>:
» format short
» ans
ans =
121.2446
В рабочей среде MatLab 6.x для вызова ранее введенных команд имеется удобное средство - окно Command History с историей команд. История команд содержит время и дату каждого сеанса работы с MatLab 6.x. Для активизации окна Command History необходимо выбрать вкладку с одноименным названием. Текущая команда в окне изображена на синем фоне. Если щелкнуть на какой-либо команде в окне левой кнопкой мыши, то данная команда становится текущей. Для ее выполнения в MatLab надо применить двойной щелчок мыши или выбрать строку с командой при помощи клавиш <up>, <down> и нажать клавишу <Enter>. Лишнюю команду можно убрать из окна. Для этого ее надо сделать текущей и удалить при помощи клавиши <Delete>. Можно выделить несколько идущих подряд команд при помощи комбинации клавиш <Shift>+<up>, <Shift>+<down> и выполнить их при помощи <Enter> или удалить клавишей <Delete>. Выделение последовательно идущих команд можно производить левой кнопкой мыши с одновременным удерживанием клавиши <Shift>. Если команды не идут одна за другой, то для их выделения следует использовать левую кнопку мыши с удерживанием клавиши <Ctrl>.
При щелчке правой кнопкой мыши по области окна Command History появляется всплывающее меню. Выбор пункта Сору приводит к копированию команды в буфер Windows. При помощи Evaluate Selection можно выполнить отмеченную группу команд. Для удаления текущей команды предназначен пункт Delete Selection. Для удаления всех команд до текущей - Delete to Selection, для удаления всех команд - Delete Entire History.
При вычислениях возможны некоторые исключительные ситуации, например деление на ноль, которые в большинстве языков программирования приводят к ошибке. При делении положительного числа на ноль в 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
Как узнать, какие встроенные элементарные функции можно использовать и как их вызывать? Наберите в командной строке команду help eifun, при этом в командное окно выводится список всех встроенных элементарных функций с их кратким описанием.