Глава 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

o methods(‘myclass’): вывод списка методов данного класса;

o 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 с.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: