Подробнее операции над векторами и матрицами рассмотрены в Теме 1.2.
Приоритет исполнения математических операций в Scilab аналогичен приоритету в языках программирования высокого уровня: возведения в степень, умножения и деления, сложения и вычитания. Для изменения приоритета в математических выражениях используются круглые скобки.
Функции – это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов (параметров) и при этом возвращающие результаты этих преобразований. Возврат результата – отличительная черта функций. Различают встроенные функции (библиотечные функции системы Scilab), функции пользователя (созданные пользователем в процессе проведения расчета в Командном окне), и внешние функции, или так называемые sci-функции, созданные и сохраненные пользователем для многократного использования.
Scilab обладает большим набором элементарных встроенных функций, в том числе и математических. Они хранятся в откомпилированном виде в ядре системы Scilab. Некоторые из них приведены в табл. 1.1.2-3.
Таблица 1.1.2-3
Тригонометрические функции (аргумент задается в радианах) |
|
sin(), cos(), tan(), cotg() |
Синус, косинус, тангенс и котангенс |
sec(), csc() |
Секанс, косеканс |
Обратные тригонометрические функции (результат в радианах) |
|
asin(),acos(),atan(), atan2(), acot() |
Арксинус, арккосинус, арктангенс и арккотангенс |
asec(), acsc() |
Арксеканс, арккосеканс |
Алгебраические и арифметические функции |
|
abs(), sign() |
Модуль и знак числа |
exp() |
Экспоненциальная функция |
log(), log2(), log10() |
Логарифм натуральный, по основанию 2 и 10 |
sqrt() |
Квадратный корень |
fix() |
Целая часть числа |
floor() |
Округление до ближайшего целого значения, которое не превышает аргумент |
sign() |
Знак числа |
factorial() |
Вычисление факториала числа |
Гиперболические функции |
|
sinh(), cosh(), tanh(), coth() |
Гиперболические синус, косинус, тангенс и котангенс |
sech(), csch() |
Гиперболические секанс и косеканс |
asinh(), acosh(), atanh(), acoth() |
Гиперболические арксинус, арккосинус, арктангенс и арккотангенс; |
Функции для работы с комплексными числами |
|
conj() |
Комплексно-сопряжённое число |
imag() |
Мнимая часть числа |
real() |
Вещественная часть числа |
gcd(), lcm() |
Наибольший и наименьший общий делитель |
angle() |
P = angle(Z) возвращает фазу угла в радианах. Для комплексного Z, модуль R и фаза угла P Связаны следующим образом: R = abs(Z) theta = angle(Z) Z = R.*exp(i*theta) |
isreal() |
Возвращает логическую 1, если число действительное и 0 – если комплексное. |
Рассмотрим несколько примеров использования встроенных математических функций (рис. 1.1.2-2).
|
Рис. 1.1.2-2. Примеры использования встроенных функций Scilab
Система Scilab предоставляет пользователю средства для создания и использования своих собственных функций – так называемых функций пользователя. Об их создании и использовании функций речь пойдет в главе 1.1.3.
Логические выражения в Scilab строятся на основе математических выражений, операций отношения и соответствующим им функций, логических операций и функций, а также круглых скобок. Результатом логического выражения является значение равное T, если выражение Истинно (True), или значение F в противном случае – выражение Ложно (False).
Операции отношения и соответствующие им функции служат для сравнения двух величин, векторов и матриц. Список операций отношений приведен в табл. 1.1.2-4.
Таблица 1.1.2-4
Операция |
Описание |
Пример |
== |
Равно |
x==y; |
~= |
Не равно |
x~=y; |
< |
Меньше чем |
x<y; |
> |
Больше чем |
x>y; |
<= |
Меньше или равно |
x<=y; |
>= |
Больше или равно |
x>=y; |
Операции отношений выполняют поэлементное сравнение векторов или матриц одинакового размера и возвращает значение равное T, если элементы идентичны, и значение F в противном случае.
Следует отметить, что операции <, <=, >, >= при комплексных операндах используются для сравнения только действительные части операндов – мнимые отбрасываются. В то же время операции == и ~= ведут сравнения с учетом как действительной, так и мнимой частью операндов (рис. 1.1.2-3).
|
Рис. 1.1.2-3. Примеры операций отношения над векторами и
комплексными числами
Операции отношения обычно применяются в логических выражениях, которые являются условиями операторов if, for, while, select и служат для изменения последовательности выполнения операторов программы Scilab. Использование этих операторов подробно рассмотрено в Теме 1.3.
При вычислении выражений операции отношений имеют более низкий приоритет, чем арифметические операции, но более высокий, чем логические операции.
Логические операции и соответствующие им функции служат для поэлементных логических операций над элементами одинаковых по размеру массивов. Список логических операций отношений приведен в табл. 1.1.2-5, где в примерах используются вектора x=[1 0 0] и y=[111].
Таблица 1.1.2-5
Функция |
Операция |
Описание |
Пример |
and() |
& |
Логическое умножение (И) |
>>x&y ans = T F F |
or() |
| |
Логическое сложение (ИЛИ) |
>>or(x,y) ans = T T T |
not() |
~ |
Логическое НЕ |
>> ~x ans = F T T |
Логические функции дополняют логические операции и представлены в табл. 1.1.2-6, где в примерах используются вектора x=[1 0 0] и y=[111].
Таблица 1.1.2-6
Функция |
Описание |
Пример |
xor () |
Исключающее ИЛИ |
>>xor(x,y) ans = F T T |
all() |
Верно, если все элементы вектора не равны 0 |
>>all(x) ans = F |
any() |
Верно, если все элементы вектора равны 0 |
>>any(x) ans = T |
find() |
Нахождение ненулевых элементов в векторах |
>>find(x) ans = T |
Специальные операции реализуются с помощью специальных символов (табл. 1.1.2-7). Они предназначены для создания самых разнообразных объектов входного языка системы Scilab и придания им различных форм.
Таблица 1.1.2-7
Обозначение |
Название |
: |
Двоеточие – формирование под векторами и подматриц. |
( ) |
Круглые скобки используются для задания порядка выполнения операций в выражениях, указания последовательности аргументов функции и указания индексов элемента вектора или матрицы. |
[ ] |
Квадратные скобки – формирование векторов и матриц. |
{ } |
Фигурные скобки – формирование массивов ячеек. |
. |
Десятичная точка используется для отделения дробной части чисел от целой. |
.. |
Две точки подряд указывают на родительский каталог – переход по дереву каталогов на один уровень вверх. |
... |
Три точки подряд указывают на продолжение строки. |
, |
Запятая – разделитель элементов. |
; |
Точка с запятой используется внутри круглых скобок для разделения строк матриц, а также в конце операторов для запрета вывода на экран результата вычислений. |
% |
Знак процента – начало комментария. |
= |
Символ равно используется для присваивания (операция присваивания) значений в выражениях. |
'текст' |
Одиночные кавычки (апострофы), внутри которых заключен текст, интерпретируемый как вектор символов с компонентами, являющимися символами. Кавычка внутри строки задается двумя кавычками |
' |
Кавычка (апостроф) – транспонирование матриц (А'). Для комплексных матриц транспонирование дополняется комплексным сопряжением, т.е. строки транспонированной матрицы соответствуют столбцам исходной матрицы. |
. ' |
Точка с кавычкой (точкам с апострофом)–транспонирование массива (А.') Для комплексных массивов операция сопряжения не выполняется. |
[,] |
Квадратные скобки с перечислением внутри их элементов через запятую – горизонтальная конкатенация – объединение матриц А и В[А,В]. |
[;] |
Квадратные скобки с перечислением внутри их элементов через точкой с запятой – вертикальная конкатенация– объединение матриц А и В [А;В]. |
Функции пользователя – это функции, создаваемые пользователем системы, которые значительно облегчают работу за счет частого использования в математических выражениях, получении таблиц значений функций и построении графиков.
Как правило, функции создаются для обработки множества значений аргументов, поэтому при описании их математических выражений используются операции с точкой. Функцию можно создать внутри командного окна. Начинается она со слова function, а заканчивается словом endfunction (или end). Первая строка имеет следующий формат:
function [y1,…,yn]=Имя(x1,…xk),
где yi – выходные аргументы, а xi–входные аргументы.
Функция может иметь несколько аргументов, тогда они перечисляются через запятую. Имя функции формируется аналогично имени переменной и должно быть уникально.
Создание функции с использованием команды deff имеет следующий формат:
deff(‘[w]=fun(x1,…,xk)’,[‘оператор1’;…’ операторk’])
|
Рис.1.1.2-4. Примеры описания и использования функции
В
примере (рис. 1.1.2-4) описания функция
и получения ее значений для множества
значений аргумента x
с использованием
описанных выше средств. Традиционное
обращение к функции выводит значения
функции в строку, а добавление символа
апостроф (')
– в столбец.
Наряду с рассмотренными выше функциями пользователя в Scilab имеется возможность создания функций (или некоторой последовательности вычислений) в виде sci-файлов, которые можно сохранять и использовать в других сеансах работы. Подробнее материал о создании и работе с sce-файлами, а также о средствах программирования в среде Scilab, изложен в Теме 3.1.
Символьная константа – это последовательность символов, заключенных в одиночные апострофы. Например, 'Информатика'
Комментарии в Scilab определяются с помощью символов //. Например,
// Это комментарий
Элементы основного окна Scilab.
Окно панели Командного окна.
Установка свойств среды системы Scilab.
Правила записи и вычисления арифметических выражений.
Работа с функциями пользователя, заданными в окне Командное окно.
Назначение окон Обозреватель переменных и Журнал команд.
Изучите материал Темы 1.1 (п.п. 1.1.1 – 1.1.2).
Выберите вариант задания формул из табл. 1.1.3-1.
Задайте переменным x и y допустимые числовые значения.
Проанализируйте информацию, возникшую в окне Обозреватель переменных.
Введите формулу для вычислений арифметического выражения и получите результат.
Измените значения исходных данных.
Измените формат вывода результата, выполнив команду format (16), и произведите перерасчет значения выражения.
Измените формат вывода данных format(6).
Представьте арифметическое выражение в виде правой части функции f(x).
Опишите функцию f(x) с помощью оператора deff числовое значение при новом значении переменной х.
Опишите функцию f1(x) с помощью оператора function.
Измените значение переменной y, вычислите значения выражения b и функции f1(x).
Объясните, почему изменение значения y привело к изменению значения b, но не повлияло на значение функции.
Задайте диапазон изменения аргумента функции с шагом, позволяющим получить таблицу значений функции f(x) и f1(x)для заданных значений аргумента (порядка 8-10 точек), выведете значения функции f(х) в выбранном интервале вначале в строку, а затем в столбец.
Выполните команду who_user и проанализируйте выведенную информацию о данных.
Установите путь к папке, находящейся на вашей флешь-карте, для сохранения содержимого Командного окна.
Создайте файл в текущей папке.
Сохраните текст рабочего окна на внешнем носителе
Предоставьте результаты работы преподавателю, ответьте на поставленные вопросы.
Выполните команды clear и clc для очистки Рабочей среды.
Оформите отчет по выполненной работе.
Таблица 1.1.3-1