Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800240

.pdf
Скачиваний:
2
Добавлен:
01.05.2022
Размер:
1.09 Mб
Скачать

ФГБОУ ВПО «Воронежский государственный технический университет»

Кафедра систем информационной безопасности

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к практическим занятиям № 1–4 по дисциплине «Информационные технологии»

для студентов специальности 090302 «Информационная безопасность

телекоммуникационных систем» очной формы обучения

Воронеж 2015

Составитель д-р техн. наук К. А. Разинкин

УДК 004.94

Методические указания к практическим занятиям № 1–4 по дисциплине «Информационные технологии» для студентов специальности 090302 «Информационная безопасность телекоммуникационных систем» очной формы обучения / ФГБОУ ВПО «Воронежский государственный технический университет»; сост. К. А. Разинкин. Воронеж, 2015. 55 с.

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

Методические указания предназначены для студентов первого курса, выполняющих практические занятия по дисциплине «Информационные технологии».

Методические указания подготовлены в электронном виде в текстовом редакторе MS Word 2013 и содержатся в файле Разинкин_ПЗ_ИТ.pdf.

Ил. 9. Табл. 6 . Библиогр.: 3 назв.

Рецензент д-р техн. наук, проф. А. Г. Остапенко

Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. А. Г. Остапенко

Издается по решению редакционно-издательского совета Воронежского государственного технического университета

© ФГБОУ ВПО «Воронежский государственный технический университет», 2015

ВВЕДЕНИЕ

Современные вычислительные системы, такие как MATLAB (программная система для численных и символьных вычислений и визуализации результатов) дают возможность применять методы научных вычислений для решения реальных нетривиальных задач инвариантных к предметной области исследования. Также такие системы называют системами компьютерной математики и определяют как совокупность теоретических, алгоритмических, аппаратных и программных средств, предназначенных для эффективного решения на компьютерной технике всех видов математических задач, включая символьные преобразования и вычисления с высокой степенью визуализации всех видов вычислений. Применение компьютерной математики существенно расширяет возможности автоматизации всех этапов математического моделирования. Системы компьютерной математики (СКМ) позволяют провести исследование проблемы, анализ данных, моделирование, тестирование, проверку существования решения, оптимизацию, документирование и оформление результатов, они позволяют сосредоточить основное внимание на существе проблемы, оставляя в стороне технику классической математики, детали вычислительных методов и алгоритмических процедур, нюансы языков программирования

икоманд операционной системы.

Вкачестве подобной СКМ в указаниях рассмотрен свободнораспространяемый аналог Matlab пакет Scilab, предоставляющий открытое окружение для инженерных (технических) и научных расчётов.

Scilab содержит сотни математических функций, и есть возможность добавления новых, написанных на различных языках (C, C++, Fortran и т. д.). Также имеются разнообразные структуры данных (списки, полиномы, рациональные функции, линейные системы), интерпретатор и язык высокого уровня.

Scilab был спроектирован как открытая система, и пользователи могут добавлять в него свои типы данных и операции путём перегрузки.

В системе доступно множество инструментов: 2D и 3D

графики;

анимация;

линейная

алгебра, разреженные

матрицы (sparse matrices);

полиномиальные и рациональные

функции; интерполяция, аппроксимация; cимуляция: решение ОДУ и ДУ; Дифференциальные и не дифференциальные

оптимизации;

обработка

сигналов;

параллельная

работа;

cтатистика. Интерфейс к C, C++, Java, LabVIEW и т.д.

 

Scilab

имеет

схожий

с MATLAB язык

программирования. В состав пакета входит утилита, позволяющая конвертировать документы Matlab в Scilab.

Scilab позволяет работать с элементарными и большим числом специальных функций (Бесселя, Неймана, интегральные функции), имеет мощные средства работы с матрицами, полиномами (в том числе и символьно), производить численные вычисления (например, численное интегрирование) и решение задач линейной алгебры, оптимизации и симуляции, мощные статистические функции, а также средство для построения и работы с графиками.

В состав пакета также входит Scicos — инструмент для редактирования блочных диаграмм и симуляции (аналог simulink в пакете MATLAB). Имеется возможность совместной работы Scilab с программой LabVIEW.

Программа доступна для различных операционных систем, включая Linux и Microsoft Windows. Возможности Scilab могут быть расширены внешними программами и модулями, написанными на разных языках программирования. Программа имеет открытый исходный код, что позволяет как свободное коммерческое использование и распространение неизменённых версий, так и некоммерческое распространение измененных версий, которые должны включать в себя исходный код.

2

Тема 1. ОСНОВЫ РАБОТЫ В SCILAB 1.1. Элементарные математические выражения

Для выполнения простейших арифметических операций в Scilab применяют следующие операторы: + сложение, - вычитание, * умножение, / деление слева направо, \ деление справа налево, ˆ возведение в степень.

Вычислить значение арифметического выражения можно, если ввести его в командную строку и нажать клавишу Enter. В рабочей области появится результат:

Листинг 1.1. Пример арифметического выражения

--> 2.35*(1.8-0.25)+1.34^2/3.12 ans =

4.2180

1.2.Переменные в Scilab

Врабочей области Scilab можно определять переменные, а затем использовать их в выражениях. Любая переменная до использования в формулах и выражениях должна быть определена. Для определения переменной необходимо набрать имя переменной, символ «=» и значение переменной. Здесь знак равенства - это оператор присваивания, действие которого не отличается от аналогичных операторов языков программирования. Т.е., если в общем виде оператор присваивания записать как

имя_переменной = значение_выражения

то в переменную, имя которой указано слева, будет записано значение выражения, указанного справа.

Имя переменной не должно совпадать с именами встроенных процедур, функций и встроенных переменных системы и может содержать до 24 символов. Система различает большие и малые буквы в именах переменных. Т.е. ABC, abc, Abc, aBc – это имена разных переменных. Выражение в правой

3

части оператора присваивания может быть числом, арифметическим выражением, строкой символов или символьным выражением. Если речь идет о символьной или строковой переменной, то выражение в правой части оператора присваивания следует брать в одинарные кавычки. Если символ «;» в конце выражения отсутствует, то в качестве результата выводится имя переменной и ее значение. Наличие символа «;» передает управление следующей командной строке. Это позволяет использовать имена переменных для записи промежуточных результатов в память компьютера:

Листинг 1.2. Примеры определения переменных

-->//------------------------------------------------

-->//Присваивание значений переменным а и b

--> a=2.3

a=

2.3000

--> b=-34.7

b=

-34.7000

-->//Присваивание значений переменным x и y, -->//вычисление значения переменной z

--> x=1;y=2; z=(x+y)-a/b z =

3.0663 -->//Сообщение об ошибке – переменная с не определена

--> c+3/2

??? Undefined function or variable ’c’.

-->//------------------------------------------------

-->//Определение символьной переменной

--> c=’a’ c =

a

-->//Определение строковой переменной --> h=’мама мыла раму’

h =мама мыла раму

Для очистки значения переменной можно применить команду

clear имя_переменной;

4

которая отменяет определения всех переменных данной сессии. Далее приведены примеры применения этой команды:

Листинг 1.3. Пример использования команды clear.

-->//Определение переменных x и y

--> x=3; y=-1;

-->//Отмена определения переменной x

--> clear x

-->//Переменная x не определена

--> x

??? Undefined function or variable ’x’.

-->//Переменная y определена

--> y y = -1

-->//Определение переменных a и b

-->a=1;b=2;

-->//Отмена определения переменных a и b -->clear;

-->//Переменные a и b не определены

-->a !--error 4

undefined variable : a -->b

!--error 4

undefined variable : b

1.3. Системные переменные Scilab

Если команда не содержит знака присваивания, то по умолчанию вычисленное значение присваивается специальной системной переменной ans. Причем полученное значение можно использовать в последующих вычислениях, но важно помнить, что значение ans изменяется после каждого вызова команды без оператора присваивания:

Листинг 1.4. Пример работы с переменной ans

--> 25.7-3.14 ans = 22.5600

5

--> //Значение системной переменной равно 22.5600

--> 2*ans ans = 45.1200

--> //Значение системной переменной увеличено вдвое

--> x=ans^0.3 x =

3.1355 --> ans

ans = 45.1200

--> //После использования в выражении значение --> //системной переменной не изменилось и равно 45.1200

Результат последней операции без знака присваивания хранится в переменной ans. Другие системные переменные в Scilab начинаются с символа %:

%i - мнимая единица ( 1 );

%pi - число π = 3.141592653589793; %e - число e = 2.7182818;

%inf - машинный символ бесконечности (∞); %NaN - неопределенный результат (0/0,∞/∞ и т. п.); %eps - условный ноль %eps=2.220Е-16.

Все перечисленные переменные можно использовать в математических выражениях:

Листинг 1.5. Использование встроенных переменных

-->a=5.4;b=0.1; -->F=cos(%pi/3)+(a-b)*%e^2 F = 39.661997

1.4. Функции в Scilab

Все функции, используемые в Scilab, можно разделить на два класса: встроенные; определенные пользователем.

В общем виде обращение к функции в Scilab имеет вид:

имя_переменной = имя_функции(переменная1 [,переменная2, ...])

6

где имя_переменной _переменная, в которую будут записаны результаты работы функции; этот параметр может отсутствовать, тогда значение, вычисленное функцией, будет присвоено системной переменной ans;

имя_функции - имя встроенной или ранее созданной пользователем функции;

переменная1, переменная2, ...- список аргументов.

1.4.1. Элементарные математические функции

Пакет Scilab снабжен достаточным количеством всевозможных встроенных функций, знакомство с которыми будет происходить в следующих разделах.

Здесь приведем только элементарные математические функции, используемые чаще всего (табл. 1).

Таблица 1 Элементарные математические функции

Функция

Описание функции

Тригонометрические

 

 

sin(x)

синус числа x

cos(x)

косинус числа x

tan(x)

тангенс числа x

cotg(x)

котангенс числа x

asin(x)

арксинус числа x

acos(x)

арккосинус числа x

atan(x)

арктангенс числа x

Экспоненциальные

exp(x)

Экспонента числа x

log(x)

Натуральный логарифм числа x

Другие

 

sqrt(x)

корень квадратный из числа x

abs(x)

модуль числа x

log10(x)

десятичный логарифм от числа x

log2(x)

логарифм по основанию два от числа x

7

deff,

Пример вычисления значения выражения

z

x

* ex

y

:

sin

 

 

 

 

 

 

 

 

 

y

 

 

 

Листинг 1.6. Вычисление математического выражения

-->x=1.2;y=0.3; -->z=sqrt(abs(sin(x/y)))*exp(x^y) z =

2.5015073

1.4.2. Функции, определенные пользователем

Мы уже упоминали о файлах-сценариях и даже создавали небольшую программу, которая решала конкретное квадратное уравнение. Но в эту программу невозможно было передать входные параметры, т.е. это был обычный список команд, воспринимаемый системой как единый оператор.

Функция, как правило, предназначена для неоднократного использования, она имеет входные параметры и не выполняется без их предварительного задания. Рассмотрим несколько способов создания функций в Scilab.

Первый способ _ это применение оператора который в общем виде можно записать так:

deff(’[имя1,...,имяN] = имя_функции(переменная_1,...,переменная_M)’, ’имя1=выражение1;...;имяN=выражениеN’)

где имя1,...,имя N - список выходных параметров, то есть переменных, которым будет присвоен конечный результат вычислений, имя_функции - имя с которым эта функция будет

вызыватся, переменная_1,...,переменная_M -входные

параметры.

Далее приведен самый простой способ применения оператора deff. Здесь показано, как создать и применить

 

x

 

y

 

функцию для вычисления выражения z

sin

 

 

* ex

 

:

 

 

 

 

 

 

 

 

 

 

y

 

 

 

8