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

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

.pdf
Скачиваний:
3
Добавлен:
01.05.2022
Размер:
914.57 Кб
Скачать

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

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

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

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

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

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

Воронеж 2015

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

УДК 004.94

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

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

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

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

Ил. 6. Табл. 4 . Библиогр.: 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

Тема 5. НЕЛИНЕЙНЫЕ УРАВНЕНИЯ И СИСТЕМЫ В SCILAB

Если нелинейное уравнение достаточно сложное, то отыскание его корней процесс нетривиальный. Рассмотрим,

какими средствами обладает Scilab для решения этой задачи.

Любое уравнение

P x 0 , где P(x) -это многочлен,

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

или

полиномом.

Всякое

алгебраическое

 

уравнение

относительно

x

можно

записать

в

виде

a x

n

a x

n 1

... a

x a 0

,

где

a

0, n 1 и

 

 

0

 

1

 

 

n 1

n

 

 

0

 

ai коэффициенты алгебраического уравнения n–й степени.

 

 

Например,

линейное

уравнение это алгебраическое

уравнение первой степени, квадратное - второй, кубическое - третьей и так далее.

Решение алгебраического уравнения в Scilab состоит из двух этапов. Необходимо задать полином P(x) с помощью функции poly, а затем найти его корни, применив функцию roots.

Итак, определение полиномов в Scilab осуществляет функция

poly(a, "x ["fl"]),

где a - это число или матрица чисел, x - символьная переменная, fl - необязательная символьная переменная, определяющая способ задания полинома. Символьная переменная fl может принимать только два значения «roots» или «сoeff» (соответственно «r» или «c»). Если fl=c, то будет сформирован полином с коэффициентами, хранящимися в параметре a. Если же fl=r, то значения параметра a воспринимаются функцией как корни, для которых необходимо рассчитать коэффициенты соответствующего полинома. По умолчанию fl=r.

3

Пример, отражает создание полинома p, имеющего в качестве корня тройку, и полинома f с коэффициентом 3.

Листинг 5.1. Полиномы первой степени

-->p=poly(3,’x’,’r’); -->f=poly(3,’x’,’c’);

-->p p =

- 3 + x -->f

f = 3

Далее приведены примеры создания более сложных полиномов.

Листинг 5.2. Использование функции poly

-->//Полином с корнями 1, 0 и 2

-->poly([1 0 2],’x’) ans =

2 3

2x - 3x + x

-->//Полином с коэффициентами 1, 0 и 2

-->poly([1 0 2],’x’,’c’) ans =

2

1 + 2x

Рассмотрим примеры символьных операций с полиномами:

Листинг 5.3. Примеры символьных операций с полиномами

-->p1=poly([-1 2],’x’,’c’) p1 =

- 1 + 2x

-->p2=poly([3 -7 2],’x’,’c’) p2 =

2

3 - 7x + 2x

-->p1+p2 //Сложение

4

ans = 2

2 - 5x + 2x

-->p1-p2 //Вычитание ans =

2

4 + 9x - 2x

-->p1*p2 //Умножение ans =

2 3

-3 + 13x - 16x + 4x -->p1/p2 //Деление ans =

1

-----

-3 + x

-->p1^2 //Возведение в степень ans =

2

1 - 4x + 4x

-->p2^(-1) //Возведение в отрицательную степень ans =

1

-----------

2

3 - 7x + 2x

Функция roots(p) предназначена для решения алгебраического уравнения. Здесь p это полином, созданный функцией poly и представляющий собой левую часть уравнения P(x) = 0.

Решим алгебраическое уравнение.

Задача 5.1. Найти корни полинома 2x

4

8x

3

8x

2

1 0

 

 

 

Для решения этой задачи необходимо задать полином p. Сделаем это при помощи функции poly, предварительно определив вектор коэффициентов V . Обратите внимание, что в уравнении отсутствует переменная x в первой степени, это означает, что соответствующий коэффициент равен нулю:

5

Листинг 5.4. Формирование полинома

-->V=[-1 0 8 -8 2]; -->p=poly(V,’x’,’c’) p =

2 3 4

1 + 8x - 8x + 2x

Теперь найдем корни полинома:

Листинг 5.5. Использование функции roots

-->X=roots(p) X =

!0.4588039 !

!- 0.3065630 !

!1.5411961 !

!2.306563 !

Графическое решение задачи, показанное на рис. 1, позволяет убедиться, что корни найдены верно.

Рис. 1. Графическое решение задачи 5.1.

5.1.Контрольные вопросы

1.Какая функция в SciLab отвечает за построение полиномов?

2.Каковы особенности символьных операций с полиномами. Приведите примеры.

3.Как вычисляются корни полинома. Приведите пример вычисления корней полинома четвертой степени.

6

Тема 6. ОБРАБОТКА ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ

6.1. Метод наименьших квадратов

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

Пусть в результате эксперимента были получены некоторые данные, отображенные в виде таблицы (табл. 1). Требуется построить аналитическую зависимость, наиболее точно описывающую результаты эксперимента.

Таблица 1

Экспериментальные данные

x

i

x

x

2

x

x

4

x

n

 

1

 

3

 

 

 

 

y

i

y

y

2

y

3

y

4

y

n

 

 

 

1

 

 

 

 

 

Идея метода наименьших квадратов заключается в том,

что функцию

Y f x, a0

, a1

,..., ak

необходимо подобрать таким

образом, значений

чтобы сумма

квадратов

отклонений

yi

от расчетных Yi

была наименьшей:

 

 

S

n

y f x

, a

, a ,..., a

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

i

i

0

1

k

 

 

 

 

i 1

 

 

 

 

 

 

 

измеренных

min

(1)

Задача сводится к определению коэффициентов ai из условия (1). Для реализации этой задачи в Scilab предусмотрена функция [a,S]=datafit(F,z,с), где F-функция, параметры которой необходимо подобрать; z-матрица исходных данных; c-вектор начальных приближений; a -вектор коэффициентов; S- сумма квадратов отклонений измеренных значений от расчетных.

Рассмотрим использование функции datafit на примере.

7

Задача 6.1. В результате опыта холостого хода определена зависимость потребляемой из сети мощности (P, Вт) от входного напряжения (U, В) для асинхронного двигателя (табл. 2).

Таблица 2 Зависимость потребляемой из сети мощности

от входного напряжения

U , В

132

140

150

162

170

180

 

 

 

 

 

 

 

P, Вт

330

350

385

425

450

485

 

 

 

 

 

 

 

U , В

190

200

211

220

232

240

 

 

 

 

 

 

 

P, Вт

540

600

660

730

920

1020

 

 

 

 

 

 

 

Методом наименьших квадратов подобрать зависимость

вида

P a1 a2U a3U

2

4

3

.

 

a U

Далее приведено решение задачи с комментариями.

Листинг 6.1. Решение задачи 6.1

//Функция, вычисляющая разность между экспериментальными //и теоретическими значениями.

//Перед использованием необходимо определить //z=[x;y] - матрицу исходных данных - и

//с - вектор начальных значений коэффициентов, //размерность вектора должна совпадать //с количеством искомых коэффициентов. function [zr]=G(c,z) zr=z(2)-c(1)-c(2)*z(1)-c(3)*z(1)^2-c(4)*z(1)^3 endfunction

//Исходные данные

x=[1.32 1.40 1.50 1.62 1.70 1.80 1.90...

2.00,2.11,2.20,2.32,2.40,2.51];

y=[3.30 3.50 3.85 4.25 4.50 4.85 5.40...

6.00 6.60 7.30 9.20 10.20 13.50];

//Формирование матрицы исходных данных z=[x;y];

//Вектор начальных приближений c=[0;0;0;0];

//Решение задачи

8