ПОЛИНОМЫ В СРЕДЕ ПРОГРАММИРОВАНИЯ




Бижанова Снежана Абаевна

Оренбургский Государственный Педагогический Университет, студент

г. Оренбург

 

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

В данной статье будет говориться о языке программирования, используемом в образовательной среде, PascalABC.NET. Он позволяет изучить основы и принципы алгоритмизации, которые всегда будут востребованы в обществе независимо от развития новых технологий. На данный момент на нем установлено множество библиотек и модулей, отвечающих разным запросам пользователей.

Одной из таких библиотек является NumLibABC, позволяющая реализовывать различные задачи, относящиеся к численным методам, в том числе, операции с полиномами. А именно, находить корни полиномов и значение полинома для аргумента х, преобразовывать функцию в быстросходящийся многочлен (экономизация полинома), возвращать коэффициенты многочлена, полученного дифференцированием исходного и многочлен при замене аргумента х на at+b, выполнять действия сложения, вычитания, умножения, деления полиномов. Данный пакет является свободным программным обеспечением и устанавливается автоматически с версией PascalABC.NET 3.5.

Многочленом от переменных называется выражение, представляющее собой сумму одночленов вида , где — неотрицательное целое число. Обычно полином v (x) принято записывать в порядке убывания степеней, т.е. в виде , но в пакете NumLibABC применяют обратный для удобства использования большого количества алгоритмов [1–3], построенных на возрастающем расположении степеней: .

Примеры выполнения операций с полиномами.

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

uses NumLibABC;

var имя_переменной:= new Polynom(параметры);

Задача № 1: Вычислить значение многочлена в точке x = -0,5.

Для нахождения значения аргумента существует функция Value (рис. 1):

Рисунок 1. Функция Value

Задача № 2: Для сделать замену .

Функция Polyx – производит замену аргумента x на основе алгоритма 29б [1]. Для вывода в более стандартном виде (в порядке убывания степеней) используется PrintlnBeauty с разделителем t вместо пробела. Синтаксис выражения (рис. 2):

Рисунок 2. Функция Polyx

Результат:

Задача № 3: Выполнить операции сложения, вычитания, умножения и деления для многочленов и .

Для первых трех действий перегружены стандартные арифметические операции (рис. 3):

Рисунок 3. Сложение, вычитание и умножение полиномов

Результаты:

;

;

.

Операция деления возвращает кортеж из двух многочленов – частного и остатка соответственно (рис. 4).

Рисунок 4. Деление полиномов

Решение имеет следующий вид:

Задача № 4: Найти корни уравнения .

Существует множество методов нахождения корней полинома. В данной статье представлено 2 способа с действительными и целочисленными коэффициентами корней многочлена.

Первый способ основан на «методе касательных» и запускается с помощью подпрограммы DPOLRT [2] класса PolRt [3, c 23; 5, c. 18]. Далее проверяется свойство ier для оценки результата, определяющее 5 статусов:

0 – ошибок не найдено;

1 – недостаточно элементов для построения полинома;

2 – степень полинома превышает 36;

3 – не удалось достигнуть приемлемой точности за 500 шагов;

4 – коэффициент при старшей степени полинома нулевой.

Метод Value позволяет получить динамический массив из корней полинома (рис. 5).

Рисунок 5. Класс PolRt

«Основная теорема алгебры говорит, что уравнение имеет столько корней, какова его степень» [4]. В данном примере найдены все 5 корней: 1, 3, -7, 5+2 i, 5-2 i.

Второй способ, основанный на методе Горнера, проводит разложение полинома с целочисленными коэффициентами на рациональные линейные множители. Выполняется на основе класса Factors функции Factorize, позволяющей находить в разложении полинома множители вида px-q (рис. 6).

Рисунок 6. Класс Factors

Полином разложился на 3 множителя, т.к. комплексные числа данным методом в расчет не принимаются. Разложение записывается в виде . Коэффициент k определяет знак перед множителями, далее к каждому первому значению приписывают x, второе берут с обратным знаком.

Язык программирования PascalABC.NET еще долгое время будет сохранять актуальность на рынке образования, т.к. отвечает основным требованиям: прост и понятен в использовании и имеет множество дополнительных библиотек, позволяющих развиваться в, практически, любой информационной сфере. Такой библиотекой является пакет численных методов NumLibABC, позволяющий выполнять большое количество различных операций с полиномами.

 

Список литературы

1. Агеев М.И., Алик В.П., Марков Ю.И. Библиотека алгоритмов 1б-50б. (Справочное пособие). М.: Сов. радио, 1975. – 178 с.

2. Дж.Форсайт, М.Малькольм, К.Моулер. Машинные методы математических вычислений. Пер. с англ. М.: Мир, 1980. – 279 с.

3. Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль. Томск: МП «РАСКО», 1991. – 272 с.

4. Никифоровский В.А. В мире уравнений. М.: Наука, 1987. - 176 с.

5. Рейзлин В.И. Численные методы оптимизации: учебное пособие. Томск: Изд-во Томского политехнического университета, 2011. – 105 с.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-07-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: