Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Использование элементарных функций




 

Предположим, что требуется вычислить значение следующего выражения:

 


Введите в командной строке это выражение в соответствии с правилами 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. Нажмите клавишу <up>, при этом в командной строке появится введенное ранее выражение.

2. Внесите в него необходимые изменения, заменив знак минус на плюс и квадратный корень на возведение в квадрат (для перемещения по строке с выражением служат клавиши <rigth>, <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, затем нажимать клавишу <up> до тех пор, пока в командной строке не появится требуемое выражения, и вычислить его, нажав <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

Как узнать, какие встроенные элементарные функции можно использовать и как их вызывать? Наберите в командной строке команду help elfun, при этом в командное окно выводится список всех встроенных элементарных функций с их кратким описанием.

В системе MATLAB для вычисления числа «пи» есть специальное обозначение: pi. (Список системных переменных MATLAB находится в Приложении 1).

MATLAB имеет также логические функции, функции, связанные с целочисленной арифметикой (округления до ближайшего целого: round, усечение дробной части числа: fix). Есть еще функция mod – остаток от деления с учетом знака, sign – знак числа, lcm – наименьшее общее кратное, perms – вычисление числа перестановок и nchoosek – числа сочетаний и много других. Многие из функций имеют область определения, отличную от множества всех действительных чисел.

Помимо арифметических операций над операндами типа double выполняются еще операции отношения и логические операции. Операции отношения сравнивают между собой два операнда по величине. Эти операции записываются следующими знаками или комбинациями знаков (Таблица 1):

Таблица 1 Символьные обозначения операций отношения

< <= > >= ~= ==
Меньше Меньше или равно Больше Больше или равно Не равно Равно

 

В случае истинности операции отношения ее величина равна 1, а в случае ложности – 0. Операции отношения имеют более низкий приоритет, чем арифметические операции.

Наберите с клавиатуры выражение с операциями отношения и вычислите его:

» a=1; b=2; c=3;

» res=(a<b)+(c~=b)+(b==a)

Вы получите следующий результат:

res = 2 9

Логические операции над вещественными числами обозначаются знаками, перечисленными в таблице 2:

 

Таблица 2 Символьные обозначения логических операций

 

& | ~
И ИЛИ НЕ

 

Первые две из этих операций являются бинарными (двухоперандными), а последняя – унарной (однооперандной). Логические операции трактуют свои операнды как «истинные» (не равные нулю) или «ложные» (равные нулю). Если оба операнда операции «И» истинны (не равны нулю), то результат этой операции равен 1 («истина»); во всех остальных случаях операция «И» вырабатывает значение 0 («ложь»). Операция «ИЛИ» вырабатывает 0 («ложь») только в случае, когда являются ложными (равными нулю) оба операнда. Операция «НЕ» инвертирует «ложь» на «истину». Логические операции имеют самый низкий приоритет.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...