Материал: Scilab ЛабПрактикум и теория

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Подробнее операции над векторами и матрицами рассмотрены в Теме 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 определяются с помощью символов //. Например,

// Это комментарий

1.1.3. Лабораторная работа по теме «Элементы рабочей среда Scilab и простейшие вычисления»

  1. Вопросы, подлежащие изучению

  1. Элементы основного окна Scilab.

  2. Окно панели Командного окна.

  3. Установка свойств среды системы Scilab.

  4. Основные объекты системы Scilab.

  5. Правила записи и вычисления арифметических выражений.

  6. Работа с функциями пользователя, заданными в окне Командное окно.

  7. Назначение окон Обозреватель переменных и Журнал команд.

  1. Общее задание

  1. Изучите материал Темы 1.1 (п.п. 1.1.1 – 1.1.2).

  2. Выберите вариант задания формул из табл. 1.1.3-1.

  3. Задайте переменным x и y допустимые числовые значения.

  4. Проанализируйте информацию, возникшую в окне Обозреватель переменных.

  5. Введите формулу для вычислений арифметического выражения и получите результат.

  6. Измените значения исходных данных.

  7. Измените формат вывода результата, выполнив команду format (16), и произведите перерасчет значения выражения.

  8. Измените формат вывода данных format(6).

  9. Представьте арифметическое выражение в виде правой части функции f(x).

  10. Опишите функцию f(x) с помощью оператора deff числовое значение при новом значении переменной х.

  11. Опишите функцию f1(x) с помощью оператора function.

  12. Измените значение переменной y, вычислите значения выражения b и функции f1(x).

  13. Объясните, почему изменение значения y привело к изменению значения b, но не повлияло на значение функции.

  14. Задайте диапазон изменения аргумента функции с шагом, позволяющим получить таблицу значений функции f(x) и f1(x)для заданных значений аргумента (порядка 8-10 точек), выведете значения функции f(х) в выбранном интервале вначале в строку, а затем в столбец.

  15. Выполните команду who_user и проанализируйте выведенную информацию о данных.

  16. Установите путь к папке, находящейся на вашей флешь-карте, для сохранения содержимого Командного окна.

  17. Создайте файл в текущей папке.

  18. Сохраните текст рабочего окна на внешнем носителе

  19. Предоставьте результаты работы преподавателю, ответьте на поставленные вопросы.

  20. Выполните команды clear и clc для очистки Рабочей среды.

  21. Оформите отчет по выполненной работе.

  1. Варианты индивидуальных заданий

Таблица 1.1.3-1

Источник: https://studfile.net/preview/16689967/