Изучение численных методов с использованием средств пакета Scilab

7. Клесарева Е.Ю., Никольская Н.Н., Моисеева Т.Р. Особенности интегрированных коммуникаций инфокоммуникационного оператора на олигополистическом и монополистическом рынках // Мобильный бизнес: перспективы развития и реализации систем радиосвязи в России и за рубежом: сборник материалов (тезисов) XXXVII международной конференции РАЕН, 2016. - С. 21-22.

8. Клесарева Е.Ю., Никольская Н.Н., Моисеева Т.Р. Особенности интегрированных коммуникаций инфокоммуникационного оператора на олигополистическом и монополистическом рынках // Экономика и качество систем связи, 2016. - № 2. - C. 35-39.

9. Клесарева Е.Ю., Никольская Н.Н., Моисеева Т.Р. Специфика управления интегрированными коммуникациями инфокоммуникационного оператора на олигополистическом и монополистическом рынках // Технологии информационного общества X Международная отраслевая научно-техническая конференция: сборник трудов, 2016. - С. 314.

10. Клесарева Е.Ю. Стратегическое планирование рекламной деятельности организаций инфокоммуникаций // Международная отраслевая научно-техническая конференция: сборник трудов. 2017. - С. 493.

11. Клесарева Е.Ю., Ипатова Е.В. Теоретические и практические аспекты преподавания экономических дисциплин студентам инфокоммуникационных направлений технического вуза // Методические вопросы преподавания инфокоммуникаций в высшей школе, 2017. - Т 6. - № 4. - С. 42-45.

12. Каберова А.Р. Актуальные методики активного обучения и их применение в высшем экономическом образовании отрасли инфокоммуникаций // Методические вопросы преподавания инфокоммуникаций в высшей школе, 2017. - № 4. - С. 9-12.

13. Тураева Т.В., Гудко Н.И. Партизанская реклама в курсе «маркетинговые коммуникации» (использование мультимедийных ресурсов для повышения креативности изучения дисциплины) // Методические вопросы преподавания инфокоммуникаций в высшей школе, 2017. - № 4. - С. 62-65.

14. Кавтарадзе Д.Н. Обучение и игра: введение в интерактивные методы обучения. - М.: Просвещение, 2009. - 176 с.

15. Каберова А.Р. Повышение эффективности управления издержками производства услуг путем унификации бизнес-процессов компании // Мобильный бизнес: перспективы развития и реализации систем радиосвязи в России и за рубежом: сборник материалов (тезисов) XL международной конференции РАЕН, 2017. - С. 52-54.

16. Таловская Н. А., Самигуллина Г. Ю. Психологический портрет современного студента // Международный журнал прикладных и фундаментальных исследований, 2010. - № 3. - С. 4748.

17. Шоптенко В. Инновации в бизнес-обучении // Менеджер по персоналу, 2008. - № 2. - С. 24.

18. Werbach K., Hunter D. For the win: How game thinking can revolutionize your business. -Wharton Digital Press, 2012.

19. Клесарева Е.Ю. Формирование стратегии развития предприятий электросвязи на основе маркетинговой концепции управления. Диссертация на соискание ученой степени кандидата экономических наук. - М.: 1996.

ИЗУЧЕНИЕ ЧИСЛЕННЫХ МЕТОДОВ С ИСПОЛЬЗОВАНИЕМ СРЕДСТВ ПАКЕТА

SCILAB

Т.И. Семенова, доцентМТУСИ, к.т.н., sematata@yandex.ru;

А.В. Загвоздкина, старший преподаватель МТУСИ, ann-zag@mail.ru;

В.А. Загвоздкин, старший преподаватель МТУСИ, box-1111@mail.ru

УДК 378.1 339.138

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

Ключевые слова: численные методы; математические пакеты; система SCILAB.

THE STUDY OF NUMERICAL METHODS WITH THE USE OF SCILAB PACKAGE

Tatiana Semenova, associate professor MTUCI, Ph. D.; Anna Zagvozdkina, senior lecturer MTUCI; Vladimir Zagvozdkin, senior lecturer MTUCI

Annotation. The article considers an effective approach to teaching students computational methods taking into account modern requirements in education. A comparative assessment of the possibility of using the mathematical package Scilab in the educational process of universities is given. As an example, the solution of a real technical problem in the Scilab package is proposed. Keywords: numerical methods; mathematical packages; the SCILAB system.

При решении реальных инженерных или научных задач часто используются не точные, а приближенные (численные) методы [1], которые, как известно позволяют получить решение даже в тех случаях, когда методы высшей математики оказываются бессильны. Практически все численные методы являются итерационными, а, следовательно, их отличает высокая трудоемкость. Этот недостаток устраняется использованием современных математических пакетов, таких как Matlab, Maple, Mathematica, MathCad и многих других. Математические пакеты содержат не только множество встроенных математических функций и обширные библиотеки вычислительных методов, но и графические средства визуализации полученных результатов.

Однако, использование средств математических пакетов, реализующих численные методы, не снимает проблему обучения студентов самим вычислительным методам, поскольку специалист должен уметь грамотно поставить задачу, произвести выбор метода решения, а также оценить полученный результат. Поэтому в ходе обучения преподаватели чаще всего ориентируются не на использование математических пакетов, а на самостоятельное программирование изучаемого метода на известном студенту языке программирования. В этом случае студент может вывести необходимые промежуточные данные, оценить трудоемкость метода и точность полученного результата, а результат, полученный в математическом пакете, используется только на этапе проверки правильности работы программы. Такой подход к обучению является малоэффективным, поскольку процесс изучения методов подменяется программированием и отладкой программ на не всегда простом алгоритмическом языке. С другой стороны, практически в каждой современной системе компьютерной математики имеется встроенная система программирования, которая, как показывает практика, легко осваивается студентами, имеющими даже начальные навыки программирования. Наконец, математические пакеты включают в себя такое мощное средство обучения, как визуализация результатов (таблицы, графики). Напрашивается вывод, что для повышения эффективности учебного процесса, связанного с изучением методов вычислительной математики, достаточно использовать наиболее подходящую для этой цели систему компьютерной математики, например, Matlab [2] или Scilab [3].

Среди современных программных продуктов Matlab, безусловно, является лидером -самым мощным и многофункциональным средством для решения вычислительных задач [4-6]. Его название Matrix Laboratory означает «матричная лаборатория», поскольку все данные в пакете представлены матрицами. Удобный интерфейс, наличие колоссального количества встроенных функций, мощная графика, возможность программирования и наличие системы моделирования позволяют сделать вывод, что пакет ориентирован на решение самых разнообразных вычислительных задач.

Matlab имеет множество достоинств и уже широко используется в учебном процессе, однако тот факт, что пакет является коммерческим, во многом затрудняет его широкое использование, поскольку, например, в высших учебных заведениях количество студентов, как правило, значительно превышает число допустимых (оплаченных) установок пакета. Анализ известных на настоящее время систем показал, что существуют и свободно распространяемые аналоги пакета Matlab. Например, пакет Scilab, программное обеспечение которого создано в IRIA (Французский институт исследований в области компьютерных наук и управления). Он распространяется бесплатно на основе лицензии Cecill [3], а дистрибутив Scilab (версии 5.4.0) занимает около 108 МБ, и что немаловажно - пакет русифицирован. Многооконный интерфейс Scilab (рис. 1) содержит обозреватель файлов, командное окно, обозреватель переменных, журнал команд очень похож на интерфейс пакета Matlab (рис. 2).

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

Вычислительные возможности Scilab обеспечены приблизительно тысячью встроенных функций, что вполне соответствует математическим пакетам профессионального уровня. Scilab имеет и множество встроенных функций, реализующих численные методы. С их помощью можно решить нелинейные или дифференциальные уравнения, аппроксимировать или интерполировать таблично заданные функции, вычислять определенные интегралы, найти экстремумы одномерных и многомерных функций и многое другое [3].

Рисунок 1

Рисунок 2

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

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

В Московском техническом университете связи и информатики (МТУСИ) первое знакомство студентов с возможностями пакета Scilab происходит на втором курсе при изучении дисциплины «Введение в математические пакеты прикладных программ». В помощь студентам, изучающим пакет Scilab, разработано и используется в учебном процессе соответствующее электронное пособие [8]. В результате, при изучении таких дисциплин как «Вычислительная математика» и «Вычислительные модели» студенты проводят все необходимые расчеты в пакете Scilab полностью самостоятельно.

Заключительным этапом изучения перечисленных дисциплин является выполнение курсовой работы. Целью курсовой работы является получение студентами практических навыков решения различных задач с применением численных методов, основ программирования и математических пакетов. Задания по курсовой работе дифференцированы по сложности решения и могут быть сформулированы как в формализованном, так и в неформализованном виде. Решение неформализованной задачи захватывает все аспекты дисциплин «Вычислительная математика» и «Вычислительные модели», в частности: постановка задачи в формализованном виде; выбор и обоснование необходимых для решения численных методов; развитие и применение полученных ранее навыков для реализации выбранных численных методов; умение использовать возможности математического пакета при исследовании задачи и при ее решении.

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

Задача состоит в следующем: требуется для заданной электрической схемы найти значение параметра реактивного элемента z, которое обеспечивает наилучшее приближение модуля коэффициента передачи по напряжению Н^^) к заданной частотной характеристике K(w), по критерию минимума функции (1) в диапазоне частот от 0 до 106 Гц.

106 2 ^(г) - | [и(м) - К(V)] dw (1) 0

Для найденного оптимального значения реактивного элемента z* рассчитать значения и построить графики коэффициента передачи Н w) и заданной частотной характеристики K(w) в диапазоне частот от 0 до 106 Гц.

Формализация задачи позволяет представить исходную техническую задачу как задачу одномерной оптимизации по заданному критерию (нахождение минимума F(z)). Следовательно, ее решение требует использования метода одномерной оптимизации. В свою очередь, для вычисления значений критериальной функции (1) необходимо использование одного из методов численного интегрирования.

Пусть задана схема электрической цепи (рис. 3а), для которой известны величины сопротивлений R1, и емкости C [9]. На рис. 3 изображены электрическая схема (а) и ее эквивалентный вид (б).

а) б)

Рисунок 3

И пусть заданная частотная характеристика имеет вид:

^ л ^2 Я1 мп

К м =--1---С08

Я1 + Я2 Я1 + Я2 2,106

Модуль коэффициента передачи по напряжению Н (Ь, w) схемы рисунка 3 а зависит от величины L. При различных значениях индуктивности частотная характеристика схемы Н (Ь, w) занимает различное положение относительно заданной частотной характеристики K

Критериальная функция (1) позволяет количественно оценить степень расхождения заданной и фактической частотных характеристик в диапазоне частот от 0 до 106 Гц. Следовательно, отыскав оптимальное значение L, при котором достигается минимум функции Б (Ь), получим такое значение индуктивности, при котором фактическая и заданная частотные характеристики в заданном диапазоне частот по критерию F (Ь) различаются минимально.

В курсовой работе сформулированная задача решается студентом для своего индивидуального задания, которое содержит электрическую схему (подобно той, которая приведена на рисунке 3 а) и заданную частотную характеристику. Для постановки задачи в формализованном виде, прежде всего, необходимо окончательно определить критериальную функцию F(z). Для этого следует получить выражение модуля коэффициента передачи схемы

64

по напряжению H (г, w). Представим заданную схему в эквивалентном виде (рис. 3б) с

комплексными сопротивлениями z1 и z2. В этом случае комплексные сопротивления равны

1 П1 1 1 + №С  Я1 , ¡м>1  Я1 = Я1 +-=--- и г 2 =

Я2 + jwL

Тогда коэффициент передачи по напряжению может быть найден как отношение выходного сопротивления z2 к входному сопротивлению схемы (z1+z2):

H (L, w) =

z 2 - w 2 LC  R2

г1 + г2 Я2 - w2LC(Я1 + Я2) + j(wL + wC  Я1  Я2) Получим модуль коэффициента передачи по напряжению H(L, w), где w - круговая частота

Н (L, w) =

w2LC  R2

R2 - w2LC(R1 + R2)]2 + [wL + wC  R1  R2]2

Так как величины резисторов R1, R2 и емкости C заданы и постоянны, и известны выражения для H (L, w) и K (w), то критерий минимизации (1) в рассматриваемом примере полностью определен, а задача состоит в нахождении такого значения L=L*, для которого

F(L*) = min F(L) , L е [а, b] , где[а, b] - некоторый интервал значений L. Для решения задачи воспользуемся системой программирования Scilab и составим несколько sci-функций, которые сохранены в одноименных файлах: функция H.sci для модуля коэффициента передачи по напряжению, функция K.sci для заданной частотной характеристики. Критериальная функция (1) вычисляется в файле F.sci вызовом функции интегрирования по методу Симпсона simpson.sci, и подынтегральной функции podinteg.sci. Программный код этих функций приведен на рис. 4.

Перед непосредственным решением задачи оптимизации критериальной функции F (z), необходим ее предварительный анализ, чтобы определить отрезок, содержащий единственный минимум этой функции. Надо найти сравнительно узкий интервал значений реактивного элемента схемы, внутри которого находится его оптимальное в смысле критерия F (z) значение, обеспечивающее наилучшее приближение H (z, w) к K (w) по критерию F (z). Найти отрезок с указанными свойствами можно, рассчитав значения функции F (z), т.е. получив таблицу значений функции и проанализировав ее поведение в широком диапазоне значений z. Границы этого широкого диапазона зависят от типа реактивного элемента исследуемой электрической схемы: для индуктивности - диапазон от 10-4 до 1 Гн, для емкости - от 10-10 до 10-7 Ф. В обоих случаях диапазон изменения аргумента весьма широк, поэтому при построении таблицы рекомендуется удваивать значения аргумента z. После анализа выбирается новый более узкий диапазон, для которого снова строится таблица значений функции уже с постоянным шагом изменения аргумента для 10 точек. Для построения таблицы разработана функция tablica .sci, входными параметрами которой являются: начало и конец отрезка и n - число точек таблицы, а выходным - матрица, первый столбец которой содержит значение аргумента, а второй -соответствующее ему значение функции. При первом вызове этой функции для построения таблицы в широком диапазоне с удваиванием аргумента число точек таблицы n задается равным нулю. Программный код функции построения таблицы значений критериальной функции приведен на рис. 5.

// модуль коэф. передачи по напряжению

function[y]=H

globalR1,R2,C;

y=w.A2*z*C*R2./5qrt((R2-w.A2*z*C*(R1+R2)).A2+(w.*z+w.*C*R1*R2).A2); endfunction

// частотнаяхарактеристика function[y]=K(w) globalR1,R2;

y=R2/(R1+R2)+R1/(R1+R2)*cos(w.*%pi/(2*10A6)); endfunction

// подынтегральнаяфункция function[y] =podinteg(z, w) y=(H(z,w)-K(w))A2; endfunction

// Вычисление определенного интеграла по методу Симпсона //на отрезке [a,b] с точностью Eps function[y]=simpson(a, b, x, Eps) n=2;h=(b-a)/n;

s=(podinteg(x,a)+4*podinteg(x,(a+b)/2)+podinteg(x,b))*h/3; s1=0;

whileabs(s-s1)/15>Eps n=2*n;h=(b-a)/n;s1=s;d=4;xi=a; s=podinteg(x, a)+podinteg(x,b) ; fori=1:n-1

xi=xi+h;

s=s+d*(podinteg(x,xi)); d=6-d; end

s=s*h/3;

end

y=s;

endfunction

// Критериальная функция для оптимизации function[y]=F

//вызов ф-ции вычисления интеграла от 0 до 10л6 с заданной точностью Eps;

y=simpson(0,1000000.0,z,Eps);

endfunction

Рисунок 4

// табуляция критериальной функции

// р-матрица, содержащая построенную таблицу function[p]=tablica(a, b, n) х=а;//начальное значение аргумента ifn==0then h=0; else

h=(b-a)/n; end

i=0;

whilez<=b y=F(z); i=i+1;

p(i, )=z;p(i, )=y;// запись в матрицу вычисленных значений ifh==0thenz=z*2; elsez=z+h; end/Мзменение значения аргумент end

endfunction

Рисунок 5

После окончательного определения отрезка, содержащего минимум критериальной функции, методом дихотомии вычисляется значение параметра реактивного элемента z, которое обеспечивает наилучшее приближение модуля коэффициента передачи по напряжению H (z, w) к заданной частотной характеристике K (w) по критерию минимума функции F (z). Для реализации метода дихотомии на отрезке [a, b] с точностью Eps составлена функция dihotomia.sci (рис. 6).

//одномерная оптимизация по методу дихотомии //на отрезке [a,b] с точностью Eps runction|xmin|=dihotomia(a. b, Eps) d=Eps/10; while(b-a)>Eps x1=(a+b)/2-d; x2=(a+b)/2+d; ifF(x1)>F(x2)then a=x1; else b=x2; end end

xmin=(a+b)/2; endfunction

Рисунок 6

Для решения всей задачи составлен файл-сценарий киге.Бсе, в котором с помощью вызова функции dihotomia вычисляется оптимальное значение индуктивности и соответствующее значение критерия и для найденного оптимального значения Zopt строятся графики модуля коэффициента передачи Н ^ор^ w) и частотной характеристики К^). Программный код файла-сценария киге.Бсе приведен на рис. 7.

// сценарий

Zopt=dihotomia(a,b,Eps) //Zopt-оптимальное значение индуктивности

Yopt=F(Zopt) //Yopt-минимальное значение критериальнойфункции

w= 1000:1000001 ; //задается вектор значений частоты для построения графиков

y^H^op^w);//^ графика коэффициента передачи

y2=K(w); // для графика частотной характеристики

mtlb hold

plot

xtitle('Графики коэф. передачи H(Zopt,w) и частотной х-ки K(w)'. w');

legend('H(Zopt.w)'.'K(w)')._

Рисунок 7

Файл-сценарий вызывается в командном окне после двукратного построения таблицы значений критериальной функции (1) (сначала для широкого диапазона, затем для уточнения выбранного узкого отрезка). Текст командного окна с результатами выполнения работы представлен на рис. 8 и 9. Вначале здесь подключаются все требуемые sci-функции, задаются значения исходных данных для резисторов и емкости схемы и для точности вычислений Eps для начального (широкого) диапазона аргумента. Первое построение таблицы критериальной функции позволяет выбрать границы отрезка неопределенности [a, b], второе - проверяет сделанный выбор. Затем запускается файл-сценарий, позволяющий на выбранном отрезке неопределенности [a, b] определить оптимальное значение реактивного элемента z и значение F (z). Результаты работы отображаются в командном окне (рис. 8 и 9), графики коэффициента передачи и частотной характеристики - в графическом окне, приведенном на рис. 10.

Рисунок 8

И—>а=0 . 05;Ь=0 . 2://новь^й отрезок —>р=саЫа.са (а, Ь, 10)//второе построение таблицы из 10 точек Р =

0. 05 152964. 86

0. 065 152814. 84

0. 08 152803. 6

0. 095 152840. 78

0. 11 152894. 53

0. 125 152952. 39

0. 14 153009. 26

0. 155 153063. 08

0. 17 153113. 14

0. 185 153159. 35

->ехес ( ' С: \Oser3\anna\Documents\ciihotomia. зс! 1 ) ;

->ехес(•С:\Users\anna\Documents\1сигз.зсе');//подключение сценария горе =

0.0742133 Уорс =

152799.28

Рисунок 9

Графики коэф передачи H(Zopt.w) и частотной х- к и K(w) 1 -----

' / 0 .3 - (

' I 0.2 - I  ( 0.1- ( . (

О 4-,-,-.-т-'-I---I-*-1-'-1---1-•-1-•-Р-•-

ОеОО 1 е05 2е05 Зе05 4е05 5е05 6е05 7е05 8е05 8е05 1еОв

и

Рисунок 10

Таким образом, можно сделать вывод, что математический пакет Scilab практически является облегченной версией пакета Matlab. Он легко осваивается студентами младших курсов, позволяя проводить как сложные математические расчеты, так и их визуализацию, и кроме того, позволяет в значительной степени облегчить переход к более сложному и мощному пакету Matlab, широко используемому студентами старших курсов, аспирантами и научными работниками.

Литература

1. Семенова Т.И., Кравченко О.М., Шакин В.Н. Вычислительные модели и алгоритмы решения задач численными методами. Учебное пособие: МТУСИ. - М.: 2017. - 84 с.

2. Шакин В.Н., Семенова Т.И. Особенности работы с математическим пакетом Matlab. Учебное пособие: МТУСИ. - М.: 2016. - 133 с.

3. Андриевский А.Б., Андриевский Б.Р., Капитонов А.А., Фрадков А.Л. Решение инженерных задач в среде Scilab. Учебное пособие: НИУ ИТМО. - СПб: 2013. - 97 с.

4. Семенова Т.И., Юскова И.Б., Юсков И.О. Технология решения вычислительных задач средствами Matlab. Учебное пособие: МТУСИ. - М.: 2016. - 47 с.

5. Васильев А.Н. Matlab. Самоучитель. Практический подход. - СПб: Изд-во Наука и техника, 2012. - 448 с.

6. Кочегурова Е.А., Особенности системы Scilab для решения задач вычислительной математики. Учебное пособие: ТПУ. Томск, 2013. -110 с.

7. Семенова Т.И., Шакин В.Н. Основы работы с математическим пакетом Scilab. Электронное учебное пособие и практикум: МТУСИ. - М.: 2017. - 129 с.

8. Семенова Т.И., Юсков И.О., Юскова И.Б. Алгоритмизация вычислительных задач, Электронное учебное пособие: МТУСИ. - М.: 2017. - 64 с.

9. Фриск В.В. Основы цепей. - М.: Изд-во Радио Софт, 2002. - 288 с.