КОМПЬЮТЕРНАЯ АЛГЕБРА ИЛИ ПОМОЩЬ КОМПЬЮТЕРА ДЛЯ ВЫЧИСЛЕНИЙ - Студенческий научный форум

IX Международная студенческая научная конференция Студенческий научный форум - 2017

КОМПЬЮТЕРНАЯ АЛГЕБРА ИЛИ ПОМОЩЬ КОМПЬЮТЕРА ДЛЯ ВЫЧИСЛЕНИЙ

Стойко Д.А. 1, Бондаренко В.А. 1
1Университетский колледж ОГУ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
Компьютер внес громадные изменения не только в повседневную жизнь человека, но и во все области человеческих знаний. Начиная с 1960 года появилось много различных программ для алгебраических вычислений. Основной функцией таких программ были операции с выражениями в символьной форме. Именно в этот период и начинает развиваться компьютерная алгебра.

Компьютерная алгебра — область математики, лежащая на стыке алгебры и вычислительных методов.

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

Первые системы были ограниченны по своим возможностям и поэтому были предназначены для одной, конкретной области алгебры. Позже, были разработаны универсальные системы компьютерной алгебры или, как их называют по-другому - системы общего назначения, в которых реализованы основные математические алгоритмы и есть возможность пользователю самостоятельно создать новые алгоритмы на языке программирования системы [2].

Основоположниками компьютерной алгебры, являются советский и российский учёный в области радиотехники и электроники Дьяконов В.П., доктор технических наук, профессор Смоленского университета. Ляпунов А.А. – советский математик, один из основоположников кибернетики, член-корреспондент АН СССР, специалист в области теории функций вещественного переменного и математических вопросов кибернетики.

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

Имеющие вид:

,

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

,

имеющее, значительно более сложный вид:

[1].

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

Конечно, при наличии соответствующего алгоритма, вполне возможна та мысль, об использовании алгебраических вычислений в пакетном режиме. (Пакетный режим - многократное выполнении какой-то однотипной операции над множеством объектов.)

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

MATLABодна из систем компьютерной математики, разработанная математиком программистом Кливом Моулером в конце 70 годов прошлого столетия. Клив Моулер является председателем и главным учёным компании MathWorks lncorporated. Моулер был профессором математики и информатики более 20 лет в университете Мечигана, Стенфорда и университета в Нью-Мексико. В дополнение к тому, что он был автором первой версии MATHLAB, Моулер является одним из соавторов таких научных библиотек, как LINPACK и EISPACK. Он – соавтор трёх книг по численным методам. Основатель компании MathWorks. Клив Моулер опубликовал книгу «Numerical» Computing With MATLAB». В настоящее время, программа широко используется исследователями и учеными для решения прикладных и теоретических задач на ЭВМ.

Название программы MATLAB (МАТЛАБ) расшифровывается, как «матричная лаборатория», так изначально, программа использовалась только в матричных вычислениях. Впоследствии, с развитием информационных технологий, программа стала усовершенствоваться, и в нее были добавлены новые функции. Сейчас программа служит для разных областей математики, таких, как: линейная алгебра, численные методы и др.

Пользователю предлагается несколько вариантов использования системы. Основным режимом системы MATLAB является режим командной строки (рисунок 1), при котором команды, набираемые пользователем на клавиатуре в ответ на приглашение системы, выполняются в диалоговом режиме с немедленной выдачей результата. В таком режиме легко получить решение таких задач, как вычисление определителей, обращение и перемножение матриц, решение систем линейных алгебраических уравнений и др. Для выполнения этих и других операций необходимо вызвать соответствующую функцию системы, передав ей входные параметры и, возможно, сохранить результат для последующего использования [4].

Рисунок 1 – Главная форма программы

Рассмотрим пример одной из задач для решения в системе MATLAB:

Задача о рюкзаке формулируется следующим образом. Необходимо отыскать такой набор предметов из заданного их множества с размерностью ai и стоимостью ci каждого (i = 1,…,n), которые, будучи помещёнными в рюкзак размерности A, обеспечивали бы максимальную стоимость.

Формальная постановка данной задачи имеет вид:

(1)

(2)

В данных выражениях xi– булева переменная, при этом xi= 1,если i-й предмет кладётся в рюкзак и xi= 0 – в противном случае.

Исходные данные для решения задачи о рюкзаке представлены в таблице 1.

Таблица 1 – Исходные данные

Номер

предмета

Размер

предмета

Стоимость

предмета

Размер

рюкзака

1

50

14

250

2

75

12

3

155

20

4

90

18

5

85

11

6

35

15

В этом случае MATLAB-код для решения данной задачи имеет вид:

f = [14; 12; 20; 18; 11; 15];

A = [50 75 155 90 85 35];

b = 250;

[x,fval]= bintprog(-f, A, b);

x

fval = -fval.

В результате вычислений получится вектор оптимальных значений булевых переменных и оптимальное значение целевой функции:

x =

1

1

0

1

0

1

fval = 59.

Таким образом, как следует из полученных результатов, в рюкзак помещаются предметы с номерами 1,2,4,6, а их общая стоимость равна 59.

M-файл-функция с именем knapsack01 для решения 0,1-задачи о рюкзаке имеет вид:

function func = knapsack01(f, A, b)

[x,fval]= bintprog(-f, A, b);

x

fval = -fval

end.

Входными параметрами данной функции являются: f – вектор (столбец) значений стоимостей предметов ci; A – вектор значений размерностей предметов ai; b – размерность рюкзака.

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

Список используемых источников

  1. Кук, Д. Компьютерная математика: / Д. Кук, Г. Бейз: пер. с англ. Г. М. Кобелькова – М.: Наука. Главная редакция физико-математической литературы, 1990. – 383 с.

  2. Дэвенпорт, Дж. Компьютерная алгебра: Системы и алгоритмы алгебраических вычислений. / Дж. Дэвенпорт, И. Сирэ, Э. Турнье – М.: Мир, 1991. - 352 с.

  3. Каганов, В. И. Компьютерные вычисления в средах Excel и Mathcad / Каганов В.И. – М.: Горячая линия – Телеком, 2003. – 328 с.

  4. Электронные ресурсы о системе MATLAB [Электронный ресурс] – Режим доступа: http://gnss.4du.ru/wp-content/uploads/2016/04/MATLAB_FOR_STUDENTS.pdf.

Просмотров работы: 514