Информатика -продвинутый курс

       

СИСТЕМА АНАЛИТИЧЕСКИХ ПРЕОБРАЗОВАНИЙ REDUCE


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

Очевидно, что известные системы программирования (Паскаль, СИ, Бейсик и т.п.) мало пригодны для анализа и преобразования символьной информации. Для этих целей созданы и развиваются специальные системы аналитических преобразований, которые можно разделить на универсальные, специализированные и общего назначения. Наибольшей популярностью пользуется универсальная система символьных вычислений REDUCE, автором которой является профессор А.Хиен. Система Reduce написана на языке высокого уровня ЛИСП.

Язык Reduce, составляющий ядро системы, трансляторы для которого разработаны для всех распространенных типов ЭВМ, предназначен прежде всего для проведения вычислении в аналитическом виде. Язык «знает» все операции алгебры с многочленами, приведением подобных членов, раскрытием скобок; все базовые элементарные функции, в том числе и в комплексной форме, ряд других функции; широкий набор операции над матрицами, включающий как входящие в обычные вузовские программы, так и выходящие за их пределы (например, функции от матриц); очень хорошо дифференцирует и несколько хуже вычисляет первообразные (но все же значительно лучше, чем большинство студентов, изучивших стандартный курс интегрального исчисления); умеет делать и ряд других действий.


Запуск программы на выполнение в системе осуществляется клавишей <Enter>.

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

Пример 1.

А; XI; SS# ABCDIF; <Enter>

Листинг результата программы следующий:

А

XI

ABCDIF

Комментарий: все переменные являются свободными, т.е. их значения совпадают с именами.



Пример 2.

А:=123456789# В:= 123456789123456789#А*В; <Enter>

 

Листинг результата программы следующий:

15241578765432099750190521

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

Пример 3.

A:=S# A; A:=X*Y# A; Q:=X:=Y# Q; X; <Enter>

Листинг результата программы следующий:

S

Х*У

Y

Y

Комментарий: переменной А присваивается сначала значение S, затем - X*Y.

Пример 4.

13; 3+6; 2**64; 11-20; 25/(-125); 2*(3*A-6)/6; <Enter>

Листинг результата программы следующий:

139 18446744073709551616 (-9) (-1)/5А-2

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

Пример5.

I**2; A:=X+I*Y# B:=X-I*Y# A*B; A**2; <Enter>

Листинг результата программы следующий:

-1

X-52-0+Y-52

' 2*I*X*Y + X-52-0-Y-52

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

Пример 6.

OPERATOR F,W; W(X); F(5*X); (F(X)+A)**2; <Enter>

Листинг результата программы следующий:

W(X) F(5*X) F(X)-52-0 + 2*A*-F(x) + A-52

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

Пример 7.

DF(X**2,X); DF(Y,Y,2); DF(X**3*Y*82*Z**3,X,3,Y,Z,2); DF(Y,X); <Enter>



Листинг результата программы следующий: 2*Х 0 72*Y*Z О

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

Пример 8.

INT(X**2,X); INT(SIN(X),X); <Enter>

Листинг результата программы следующий:

Х-53-0/3 - COS(X)

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

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

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

 

1. В чем основные отличия переменных в традиционных системах программирования от систем аналитических преобразований типа REDUCE?

2. В каких задачах предпочтительнее использовать методы компьютерной алгебры?


Содержание раздела