Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория информатика.doc
Скачиваний:
88
Добавлен:
24.09.2019
Размер:
5.2 Mб
Скачать

11.4 Инструментарий решения функциональных и вычислительных задач

 

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

В настоящее время компьютерные математические системы можно (достаточно условно) подразделить на 7 основных классов:

1. Системы для численных расчетов;

2. Табличные процессоры;

3. Матричные системы;

4. Системы для статистических расчетов;

5. Системы для специальных расчетов;

6. Системы для аналитических расчетов (компьютерной алгебры);

7. Универсальные системы.

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

Простейшими системами для численных расчетов являются встроенные калькуляторы, которые не следует путать с реальными калькуляторами, что носят в карманах пиджака. В качестве характерного примера является калькулятор, встроенный в операционную систему Windows (рисунок 11.3).

Рисунок 11.3. – Калькулятор Windows в стандартном и научном виде

 

Работа с подобным калькулятором отражает важную особенность – обмен данными между отдельными приложениями. Он позволяет резко повысить производительность труда пользователя. Числа с экрана калькулятора можно скопировать в буфер и переслать, например, в текстовый редактор. Таким образом, реализуется идея интеграции математических систем.

В настоящее время известно множество программ по обработке табличных данных – табличных процессоров. Начло им было положено созданием электронных таблиц SuperCalc и OmniCale. К новейшим табличным процессорам принадлежит Excel, входящий в пакет офисных программ Microsoft Office, который был рассмотрен в главе 7.

К матричным системам относятся прежде всего ранние версии систем MATLAB. У этих систем даже единичное числовое значение воспринимается как элемент матрицы размера . Практически все функции системы (включая элементарные) определены как матричные – способные обрабатывать массивы. Название системы является сокращением от слов MATrix LABoratory- матричная лаборатория.

Система имеет не только самое большое число матричных операторов и функций, но и самую простую адаптацию к решению задач пользователя. Любое новое определение системы задается в виде некоторого «М»-файла и в дальнейшем может использоваться наряду с встроенными в систему функциями без какого-либо предварительного объявления. Кроме того, для системы разработаны десятки пакетов расширения – от пакета символьной математики до пакетов имитационного моделирования. Так называемая дескрипторная графика этого пакета, основанная на принципах объектно-ориентированного программирования, добавляет мощные средства визуализации вычислений к огромному числу математических возможностей системы, среди которых много уникальных.

Особую разновидность математических систем образуют программы предназначенные для проведения статистических расчетов – системы для статистических расчетов. К ним относятся StatGraphcs Plus, Statistica, SPSS, S-PLUS и др.

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

Системы для специальных расчетов изначально ориентированы на некоторые специальные виды математических расчетов, например на решение нелинейных уравнений (TK Solver), решение систем дифференциальных уравнений (Dynamic Solver), построение графиков функций (MathPlot), выполнение нелинейной регрессии (DataFit Nonlinear Regression), моделирование электронных схем (Electronics Workbench) и т.д.

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

К системам компьютерной алгебры относятся программы Derive, MuPad.

Универсальными системами считаются системы, которые пригодны для выполнения как численных, так и аналитических расчетов, включая статистические расчеты и визуализацию всех видов расчета средствами графики. Яркими представителями этого класса систем являются MathCad, Mathematica, Maple, MatLab.

Наиболее популярной является система компьютерной математики MathCad. Mathcad — это популярная система компьютерной математики, предназначенная для автоматизации решения массовых математических задач в самых различных областях науки, техники и образования. Название системы происходит от двух слов — MATHimatica (математика) и CAD (Computer Aided Design — системы автоматического проектирования). Сегодня различные версии Mathcad являются математически ориентированными универсальными системами. Помимо собственно вычислений, как численных, так и аналитических, они позволяют решать сложные оформительские задачи, которые с трудом даются популярным текстовым редакторам или электронным таблицам. С помощью Mathcad можно, например, готовить статьи, книги, диссертации, научные отчеты, дипломные и курсовые проекты не только с качественными текстами разного стиля, но и с легко осуществляемым набором самых сложных математических формул, изысканным графическим представлением результатов вычислений и многочисленными «живыми» примерами. А применение библиотек и пакетов расширения обеспечивает профессиональную ориентацию Mathcad на любую область науки, техники и образования.

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

Как интегрированная система Mathcad 2001 содержит следующие основные

компоненты:

  • редактор документов— редактор с возможностью вставки математических выражений, шаблонов графиков и текстовых комментариев;

  • центр ресурсов — интегратор ресурсов системы;

  • электронные книги — электронные книги с описанием типовых расчетов в

различных областях науки и техники;

  • справочная система — система для получения справочных данных по тематическому и индексному каталогу, а также для поиска нужных данных

по ключевому слову или фразе;

  • «быстрые шпаргалки» QuickSheets — короткие примеры с минимальными

комментариями, описывающие применение всех встроенных операторов и

функций системы;

  • броузер Интернета — собственное средство выхода в Интернет.

Системы реализуют типовые и весьма обширные возможности Windows 95/98/2000/NT, включая доступность множества шрифтов, одновременное выполнение нескольких разнохарактерных задач (в последних версиях) реализацию технологии обмена объектами OLE2. В режиме редактирования возможна одновременная работа с рядом документов и перенос объектов из одного окна в другое.

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

Mathcad является интерпретатором. Это означает, что когда система опознает какой-либо объект, она немедленно исполняет указанные в блоке операции. Объектами могут формульные, текстовые и графические блоки.

Языком реализации системы Mathcad является один из самых мощных языков высокого уровня С++.

Каждая система компьютерной математики может иметь нюансы в своей архитектуре или структуре. Тем не менее можно прийти к выводу, что современные универсальные системы имеют следующую типовую структуру:

Рисунок 11.4. – Типовая структура системы компьютерной математики

 

Центральное место занимает ядро системы. Оно представляет собой множество заранее откомпилированных функций и процедур, представлен­ных в машинных кодах и обеспечивающих набор встроенных функций и опе­раторов системы. Этот набор должен быть функционально полным. Напри­мер, в него должны входить как минимум все основные элементарные функ­ции. Роль ядра особенно велика в системах символьной математики, где в ядре хранятся многие сотни, а то и тысячи правил преобразования математи­ческих выражений.

Ядро математических систем тщательно оптимизируется, поскольку от скорости его работы этого зависит скорость вычислений, выполняемых дан­ной системой компьютерной математики. Этому способствует и предвари­тельная компиляция ядра. Доступ пользователя в ядро с целью его модифи­кации, как правило, исключен. Объем ядра может достигать нескольких ме­габайт. Пишется ядро на языке реализации системы - чаще всего это С или C++ (лишь в системе Derive использован язык искусственного интеллекта MuLISP) и компилируется на фирме - разработчике системы. Поставка ядра в исходных кодах (на языке реализации) не практикуется.

Интерфейс дает пользователю возможность обращаться к ядру со свои­ми запросами и получать результат решения на экране дисплея. Интерфейс современных систем символьной математики базируется на средствах опера­ционных систем Windows 95/98 и обладает практически всеми их возможно­стями: перемещаемые и масштабируемые окна документов, диалоговые и информационные окна, кнопки управления, общение с периферийными уст­ройствами и т. д. Нередко интерфейс систем обеспечивает возможность зада­ния и редактирования библиотечных модулей и пакетов расширения систем.

Функции и процедуры, включенные в ядро, выполняются предельно быстро. С этой точки зрения в ядро было бы выгодно включать как можно больше вычислительных средств. Однако это невольно приводит к замедле­нию поиска нужных средств из-за возрастания их числа, увеличению време­ни загрузки ядра и к другим нежелательным последствиям. Поэтому объем ядра ограничивают, но к нему добавляют библиотеки более редких проце­дур и функций, к которым обращается пользователь, если в ядре не обнару­жена нужная процедура или функция. Некоторые системы допускают модер­низацию библиотек и их расширение силами самих пользователей.

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

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