Реализация рациональной арифметики в системах символьной математики
Реализация рациональной арифметики в системах символьной математики
Появление компьютеров изменило все сферы современной науки и общественной, и даже личной, жизни. Появилась возможность проводить сложнейшие вычислительные эксперименты, что экономит не только деньги, но и время.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Просмотр содержимого документа
«Реализация рациональной арифметики в системах символьной математики»
Реализация рациональной арифметики в системах символьной математики
Выполнила студентка 5 курса
Группы МДМ-117
Чистякова Юлия
План
Обзор систем компьютерной алгебры
Возможности пакета MATLAB
Реализация класса Polynom
Обзор систем компьютерной алгебры
Системы компьютерной алгебры:
Maple — программный пакет, система компьютерной алгебры (точнее, система компьютерной математики) .
Mathematica — система компьютерной алгебры (обычно называется Математика, программный пакет Математика), широко используемая в научных, инженерных, математических и компьютерных областях.
Mathcad – это компьютерное программное обеспечение для проверки, подтверждения, документирования и повторного использования математических расчетов в инженерии и науке.
Matlab — язык программирования и система научных и инженерных расчетов, построенная на основе интерпретатора этого языка.
возможности пакета MATLAB
MATLAB - это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической.
Основные операции в MATLAB:
– математические вычисления;
– создание алгоритмов;
– моделирование;
– анализ данных, исследования и визуализация;
– научная и инженерная графика;
– разработка приложений, включая создание графического интерфейса.
возможности пакета MATLAB
Основные части MATLAB:
1. Язык MATLAB . Это язык матриц и массивов высокого уровня с управлением потоками, функциями, структурами данных, вводом-выводом и особенностями объектно-ориентированного программирования.
2. Среда MATLAB . Это набор инструментов и приспособлений, с которыми работает пользователь или программист MATLAB. Она включает в себя средства для управления переменными в рабочем пространстве MATLAB, вводом и выводом данных, а также создания, контроля и отладки М-файлов и приложений MATLAB.
3. Управляемая графика. Это графическая система MATLAB, которая включает в себя команды высокого уровня для визуализации двух- и трехмерных данных, обработки изображений, анимации и иллюстрированной графики.
возможности пакета MATLAB
Основные части MATLAB:
4 . Библиотека математических функций. Это обширная коллекция вычислительных алгоритмов от элементарных функций, таких как сумма, синус, косинус, комплексная арифметика, до более сложных, таких как обращение матриц, нахождение собственных значений, функции Бесселя, быстрое преобразование Фурье.
5. Программный интерфейс . Это библиотека, которая позволяет писать программы на Си и Фортране, которые взаимодействуют с MATLAB. Она включает средства для вызова программ из MATLAB (динамическая связь), вызывая MATLAB как вычислительный инструмент и для чтения-записи МАТ-файлов.
возможности пакета MATLAB
Основные элементы в MATLAB:
Численные расчеты.
– MATLAB может производить вычисления с любой точностью. Кроме того, MATLAB может производить расчеты с использованием большого числа специальных функций.
– Позволяет вычислять интегралы, численно решать алгебраические и дифференциальные уравнения и системы уравнения.
– Может обрабатывать численные данные, производя их статический анализ, а также производить Фурье-анализ, интерполяцию и аппроксимацию данных с помощью метода наименьших квадратов.
– Может работать не только с числами, но и с матрицами, обеспечивая выполнение всех операций линейной алгебры.
возможности пакета MATLAB
Символьные вычисления.
– MATLAB позволяет производить манипулирование алгебраическими формулами, т.е. разлагать на множители, раскрывать скобки и производить упрощение полиномов и рациональных выражений. Также позволяет находить алгебраические решения полиномиальных уравнений и систем уравнений.
– Может вычислять интегралы и производные, решать дифференциальные уравнения в символьной форме.
возможности пакета MATLAB
Графические средства.
– MATLAB может строить двумерные и трехмерные графики функций, заданных явно или в параметрической форме, а также контурные графики и графики плотности. Аналогично можно изображать и численные данные.
– В MATLAB существует много опций, позволяющие контролировать различные аспекты графиков. Например, для трехмерных графиков можно изменять цвет, тени, освещение и яркость поверхности и т.д.
– MATLAB включает графический язык, позволяющий изображать геометрические объекты, используя стандартные фигуры: многоугольники, окружности и их дуги и т.д., а также вставлять текст в любое место двумерного или трехмерного графического объекта.
возможности пакета MATLAB
Программирование.
– Кроме встроенных функций, MATLAB позволяет определять дополнительные функции.
– MATLAB включает в себя такой мощный элемент, как правила преобразования, которые позволяют преобразовывать символьные выражения из одной формы в другую.
Реализация класса Polynom
В MATLAB классы пользователя User Classes наследуют родительский класс struct, т. е. все новые типы(классы) данных базируются на стуктурах.
Правила создания класса в MATLAB.
Класс – это папка-контейнер – каталог с именем …\@ myclass.
· Для работы с классом myclass текущий каталог Current Directory должен быть открыт на папке, содержащей папку класс @ myclass .
· Имя функции-конструктора класса должно совпадать с названием класса(функция myclass , описанная в M-файле myclass. m ).
· Объект класса хранит свои данные в структуре, все поля которой являются скрытыми(private ).
· Функции-методы класса реализуются в M-файлах. Функция-метод – это функция, один из аргументов которой – объект данного класса. Имя М-файла – действия, реализованной функцией.
· Скрытые частные (private) функции класса myclass размещаются в папеке …\@ myclass\ pribate, не имеют в качестве входного аргумента объект класса, используются как вспомогательные функции и не оперируют непосредственно с классом.
Реализация класса Polynom
Базовые методы классов 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: последний индекс по указанной размерности.
Реализация класса Polynom
Базовые методы классов MATLAB:
·Переопределение арифметический функций и операторов: функции plus, minus, mtimes…
· Команда clear classes вызывается после каждого переопределения класса, для удаления объектов класса.
· Встроенные функции MATLAB для идентификации объектов классов:
– class( p) : определение класса объекта;
– isa( p,’ myclass’) : проверка принадлежности объекта данному классу;
– isobject( p) : выявление принадлежности объекта к какому-нибудь классу MATLAB.
– methods(‘ myclass’): вывод списка методов данного класса;
– whos p : вывод подробной информации об объекте.
Реализация класса Polynom
Пример: Создадим класс polynom. В классе будут реализованные методы, определяющие функциональное название данного класса.
Для создание объектов класса polynom используем функцию-конструктор. Конструктор будет находится в M-файле с именем @ polynom/ polynom. m . Данный конструктор создает полином из заданного вектора коэффициентов полинома при убывающих степенях
переменно х . В нашем примере мы будем использовать три типа конструктора:
· Конструктор по умолчания. Создадим шаблон объекта, обычно с пустыми полями. В отдельных случая поля инициализируются некторыми значениями.
· Конструктор копирования. Конструктор возвращает копию объекта. При этом в конструкторе будем использовать функцию isa( p,‘ polynom’) , чтобы определить: является ли входной аргумен объектом данного класса.
· Конструктор с параметрами. Конструктор создает структуру и инициализирует её поля, использую её входные данные. Затем из этой структуры конструируется сам объект класса при помощи встроенной функции class(). У этой функции есть два обязательных параметра. Первый – структура, которая будет представлять объект данные объекта, а второй – текстовая строка, содержащая имя создаваемого класса.
Реализация класса Polynom
Для преобразования объекта данного класса к другому классу будем использовать функцию конвертор. Имя этой функции и имя её М-файла совпадают с именем класса, к которому она будет преобразовывать исходный объект.
Для преобразования объекта класса polynom обратно в вектор его коэффициентов будем использовать метод double():
Реализация класса Polynom
Для преобразования объекта к текстовому виду используется метод char() . В нашем примере этот метод определяется в M-файле @ polynom/ char. m
Преобразование к текстовому виду используется в методе display(), который относится к базовому методу MATLAB. Этот метод вызывается всякий раз, когда в среде MATLAB введено выражение не завершенное точкой с запятой.
Реализация класса Polynom
В примере реализованы следующие методы:
– char – преобразование полинома к текстовому виду;
– diff – вычисление производной полинома;
– display – вывод в командное окно;
– double – функция-конвертер полинома в вектор его коэффициентов;
– int – вычисление неопределенного интеграла полинома
– minus – вычитание полиномов;
– mtimes – умножение полиномов;
– plot – построение графика полинома р;
– plus – сложение полиномов;
– polynom – конструктор;
– polyval – вычисление всех корней полинома;
– subsref – операция индексной ссылки, реализующая вычиследние значений полинома в указанных точках.
Заключение
Математические пакеты Maple и MATLAB — интеллектуальные лидеры в своих классах и образцы, определяющие развитие компьютерной математики. Компьютерная алгебра Maple вошла составной частью в ряд современных пакетов, численный анализ от MATLAB и наборы инструментов (Toolboxes) уникальны. Сами пакеты постоянно совершенствуются, развивая аппарат и пополняя ресурсы. Пакет Maple и вычислительная среда MATLAB — мощные и хорошо организованные системы, надежные и простые в работе.