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