Реферат: Реализация рациональной арифметики в системах символьной математики

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Real-Time Workshop - это программа, которая позволяет генерировать С код из блоков диаграмм и запускать их на выполнение на различных системах реального времени.

Пакет MATLAB представляет собой программное средство для выполнения математических расчетов на компьютере. Математика состоит из двух частей: Ядро(Kernel) и Оболочка (Front End). Ядро представляет собой программное обеспечение, непосредственно выполняющее расчеты, которое работает одинаково на всех типах компьютеров. Оболочка обеспечивает интерфейс между ядром и пользователем. В большинстве компьютерных систем используется интерфейс типа “Notebook”, который позволяет создавать документы, содержащие текст, графики, звуки и активные формулы или команды, обрабатываемые ядром. Такой документ можно читать на экране компьютера, редактируя и выполняя отдельные его части, сохранить на диске или распечатать на бумаге.

MATLAB:

* Численные расчеты.

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

- Позволяет вычислять интегралы, численно решать алгебраические и дифференциальные уравнения и системы уравнения.

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

- Может работать не только с числами, но и с матрицами, обеспечивая выполнение всех операций линейной алгебры.

* Символьные вычисления.

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

- Может вычислять интегралы и производные, решать дифференциальные уравнения в символьной форме.

- Может представлять функции в виде разложения в ряд, а также вычислять пределы.

* Графические средства.

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

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

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

* Программирование.

- Кроме встроенных функций, MATLAB позволяет определять дополнительные функции.

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

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

- Таким образом система компьютерной алгебры MATLAB является программным средством для проведения фундаментальных и прикладных математических исследований широкого спектра проблем современного естествознания. В главе 4 решим конкретную задачу при помощи пакета MATLAB.

3. Реализация класса Polynom

Современное объектно-ориентированное программирование основано на возможности введения новых типов данных и определения операций для них. В MATLAB классы пользователя User Classes наследуют родительский класс struct, т. е. все новые типы(классы) данных базируются на стуктурах.

Правила создания класса в MATLAB.

Рассмотрим последовательность создания класса в среде MATLAB на примере класса myclass.

* Класс - это папка-контейнер - каталог с именем …\@ myclass.

* Для работы с классом myclass текущий каталог Current Directory должен быть открыт на папке, содержащей папку класс @ myclass .

* Имя функции-конструктора класса должно совпадать с названием класса(функция myclass , описанная в M-файле myclass. m).

* Объект класса хранит свои данные в структуре, все поля которой являются скрытыми(private ).

* Функции-методы класса реализуются в M-файлах. Функция-метод - это функция, один из аргументов которой - объект данного класса. Имя М-файла - действия, реализованной функцией.

* Скрытые частные (private) функции класса myclass размещаются в папеке …\@ myclass\ pribate, не имеют в качестве входного аргумента объект класса, используются как вспомогательные функции и не оперируют непосредственно с классом.

* Базовые методы классов MATLAB:

- с lass constructor : создание объекта класса;

- double, char: конверторы;

- display: вывод содержимого объекта в командное окно, если выражение не завершается разделителем точкой с запятой;

- set и get: доступ к свойствам объекта( функция get - чтение значения свойств, а функция set - запись новых значений);

- subsref: индексная ссылка( переопределение методов для операторов a( i), a{ i}, a. field );

- subsangn: индексное присваивание( переопределение методов для операторов a( i), a{ i}, a. field );

- subindex: индексный дескриптор, т. е. использование объекта класса в качестве целочисленного индекса другого объекта( переопределение методов для x( a) );

- end: последний индекс по указанной размерности.

* Переопределение арифметический функций и операторов: функции plus, minus, mtimes…

* Команда clear classes вызывается после каждого переопределения класса, для удаления объектов класса.

* Встроенные функции MATLAB для идентификации объектов классов:

- class( p) : определение класса объекта;

- isa( p,' myclass') : проверка принадлежности объекта данному классу;

- isobject( p) : выявление принадлежности объекта к какому-нибудь классу MATLAB.

- methods(` myclass'): вывод списка методов данного класса;

- whos p : вывод подробной информации об объекте;

Пример.

Создадим класс polynom. В классе будут реализованные методы, определяющие функциональное название данного класса.

Для создание объектов класса polynom используем функцию-конструктор. Конструктор будет находится в M-файле с именем @ polynom/ polynom. m . Данный конструктор создает полином из заданного вектора коэффициентов полинома при убывающих степенях переменно х . В нашем примере мы будем использовать три типа конструктора:

* Конструктор по умолчания. Создадим шаблон объекта, обычно с пустыми полями. В отдельных случая поля инициализируются некторыми значениями.

* Конструктор копирования. Конструктор возвращает копию объекта. При этом в конструкторе будем использовать функцию isa( p,` polynom') , чтобы определить: является ли входной аргумен объектом данного класса.

* Конструктор с параметрами. Конструктор создает структуру и инициализирует её поля, использую её входные данные. Затем из этой структуры конструируется сам объект класса при помощи встроенной функции class(). У этой функции есть два обязательных параметра. Первый - структура, которая будет представлять объект данные объекта, а второй - текстовая строка, содержащая имя создаваемого класса.

Для преобразования объекта данного класса к другому классу будем использовать функцию конвертор. Имя этой функции и имя её М-файла совпадают с именем класса, к которому она будет преобразовывать исходный объект.

Для преобразования объекта класса polynom обратно в вектор его коэффициентов будем использовать метод double():

Для преобразования объекта к текстовому виду используется метод char() . В нашем примере этот метод определяется в M-файле @ polynom/ char. m

Преобразование к текстовому виду используется в методе display(), который относится к базовому методу MATLAB. Этот метод вызывается всякий раз, когда в среде MATLAB введено выражение не завершенное точкой с запятой.

Для переопределения основных математических операторов в папке-контейнере, содержащей методы класса, создадим М-файл с именем, соответсвующим имени переопределяемого оператора, и в этом файле определим функцию с этим же именем. Так функция в файле @polynom/plus.m складывает полиномы.

В примере реализованы следующие методы:

- char - преобразование полинома к текстовому виду;

- diff - вычисление производной полинома;

- display - вывод в командное окно;

- double - функция-конвертер полинома в вектор его коэффициентов;

- int - вычисление неопределенного интеграла полинома

- minus - вычитание полиномов;

- mtimes - умножение полиномов;

- plot - построение графика полинома р;

- plus - сложение полиномов;

- polynom - конструктор;

- polyval - вычисление всех корней полинома;

- subsref - операция индексной ссылки, реализующая вычиследние значений полинома в указанных точках.

Заключение

В настоящее время научное программирование претерпевает серьезную трансформацию: развиваются интегрированные среды, основанные на алгоритмических языках, и растет применение универсальных математических систем (Maple, Mathematica, MATLAB, MatCad и др.). Эти системы имеют дружественный интерфейс, реализуют множество стандартных и специальных математических операций, снабжены мощными графическими средствами и обладают собственными языками программирования.[6] Все это предоставляет широкие возможности для эффективной работы специалистов разных профилей, о чем говорит активное применение математических пакетов в научных исследованиях и в преподавании. С помощью этих пакетов проще готовить и выполнять задания, устраивать демонстрации и гораздо быстрее решать исследовательские и инженерные задачи.

Конечным продуктом исследования выступают публикации, подготовка, распространение и использование которых в настоящее время требует квалифицированного применения компьютера. Это касается редактирования текста, изготовления графических материалов, ведения библиографии, размещения электронных версий в Интернет, поиска статей и их просмотра. Де-факто сейчас стандартными системами подготовки научно-технических публикаций являются различные реализации пакета TeX и текстовый редактор Word. Кроме того, необходимы минимальные знания о стандартных форматах файлов, конверторах, программах и утилитах, используемых при подготовке публикаций.

Математические пакеты Maple и MATLAB -- интеллектуальные лидеры в своих классах и образцы, определяющие развитие компьютерной математики. Компьютерная алгебра Maple вошла составной частью в ряд современных пакетов, численный анализ от MATLAB и наборы инструментов (Toolboxes) уникальны. Сами пакеты постоянно совершенствуются, развивая аппарат и пополняя ресурсы. Пакет Maple и вычислительная среда MATLAB -- мощные и хорошо организованные системы, надежные и простые в работе. Освоение даже части их возможностей даст несомненный эффект, а по мере накопления опыта придет настоящая эффективность от взаимодействия с ними.[9]

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

Список использованных источников

рациональный математика компьютер

1. Говорухин, В. В. Цибулин. Компьютер в математическом исследовании: Maple, MATLAB, LaTeX. // Учебный курс. / В. В. Говорухин. Издательство «Питер», 2001 г. 624 с.

2. Прохоров, Г. В. Система аналитических вычислений Maple / Г. В. Прохоров, М. А. Леденев, В. В. Колбеев. - М.: Петит, 1997, 200 с.

3. Дьяконов, В. П. Математическая система Maple V R3/R4/R5. / В. П. Дьяконов. М.: Солон.- 1998. - 400 с.

4. Дьяконов, В. П. Справочник по применению системы PC MATLAB. / В. П. Дьяконов. М.: Физматлит, 1993. 112 с.

5. Потемкин, В. Г. Система MATLAB. // Справочное пособие. / В. Потемкин. - М.: ДИАЛОГ-МИФИ, 1997 - 350 с.

6. Потемкин, В. Г. MATLAB 5 для студентов. // Справочное пособие. / В. Г. Потемкин, М: Диалог-МИФИ, 1998. - 314 с.

7. Воробьев, Е. М. Введение в систему "Математика". М: Финансы и статистика / Е. М. Воробьев, 1998. - 262 с.

8. Аладьев, В. З.Введение в среду пакета Mathematica 2.2. / В. З. Аладьев, М. Л. Шишаков. М: Филинъ, 1997. - 368 с.

9. Дьяконов, В. П. Системы символьной математики Mathematica 2 и Mathematica 3. // Справочное издание. / В. П. Дьяконов. М.: СК ПРЕСС. - 1998.- 328 c.

10.Очков, В. Ф. MATLAB 7 Pro для студентов и инженеров. / В. Ф.Очков. М: КомпьютерПресс, 1998. -384 с.

11.Дьяконов, В. П. Справочник по MathCAD PLUS 7.0 PRO. / В. П. Дьяконов. М.: CK Пресс, 1998. - 352 c.

12.Дьяконов, В. П.MathCAD 7 в математике, в физике и в Internet. / В. П. Дьяконов. И. В. Абраменкова. М.: Нолидж. - 1998. - 352 с.

Источник: https://otherreferats.allbest.ru/download/1240341/