Лекция: Использование элементарных функций
Предположим, что требуется вычислить значение следующего выражения:
Введите в командной строке это выражение в соответствии с правилами MatLab и нажмите <Enter>:
» ехр (-2.5) *1оg (11.3) ^0.3-
sqrt {(sin (2.4 5*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>.
Получается
»exp(-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
» ехр(-2.5)*1од(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(-l), никакой ошибки или предупреждения не возникает. MatLab автоматически переходит в область комплексных чисел:
»sqrt (-1. 0)
ans =
0 + 1.00001