Системы компьютерной математики (СКМ). Программно-математическое обеспечение асу


6.1Математическое обеспечения АСУ Под математическим обеспечением АСУ понимается совокупность различных математических методов, моделей, алгоритмов и комплексов программ, обеспечивающих функционирование АСУ в соответствии с ее целевым назначением. Под термином математическое обеспечение АСУ понимают математическое, лингвистическое и программное обеспечение АСУ. Особенностью математического обеспечения АСУ является: -увеличение относительной стоимости математического обеспечения по сравнению с комплексом технических средств (КТС) АСУ; -разумная типизация (унификация) прикладного программного обеспечения; -широкое применение ППП, стандартных оболочек и др.


Математическое обеспечения АСУ Математическое обеспечение (МО) можно разделить на три части: МО ЭВМ (или внутреннее); специальное математическое обеспечение (или внешнее); программные средства телеобработки данных Внутреннее МО включает операционные системы (MS DOS), системы программирования и тесты (программы проверки исправности работы устройств ЭВМ),



Математическое обеспечения АСУ Операционная система (ОС) - набор программ, управляющих процессом решения задач. Оптимальная загрузка всех узлов ЭВМ и внешних устройств является основной задачей ОС. В состав ОС входит ряд программ, из которых основными являются: диспетчер, супервизор, служебные программы. Диспетчер - программа, обеспечивающая определенный режим работы ЭВМ. Супервизор - программа, обеспечивающая работу, задаваемую машине человеком-оператором в рамках установленного для нее режима. К служебным - относятся программы ввода исходных данных; программы редактирования и выдачи результатов; программы общения ОС с человеком-оператором и др. ОС различают по целевому назначению на: общие для решение широкого круга задач и проблемные. В зависимости от организации решения задач на ЭВМ различают следующие режимы работы ОС: индивидуальный, пакетный, мультипрограммирование, разделение времени.


При индивидуальном режиме ЭВМ постоянно или на время решения задачи находится полностью в распоряжении одного потребителя. Пакетная обработка предполагает, что пользователь не имеет непосредственного доступа к ЭВМ. Подготовленные им задачи в виде программ и исходных данных загружаются оператором в ЭВМ и решаются пакетами. Мультипрограммирование предполагает возможность одновременно решать несколько задач по различным программам с учетом приоритета. При этом в каждый момент времени решается одна задача. Если при решении задачи появилась необходимость решения другой с более высоким приоритетом, то решение задачи прерывается, решается вторая задача, после ее решения продолжается решаться первая с того места, где произошла остановка и т.д. Режим разделения времени предполагает одновременное решение нескольких задач.


Математическое обеспечение АСУ. Основными целями ОС являются: увеличение производительности вычислительных систем (ВС) путем обработки непрерывного входного потока заданий и совместного использования ресурсов ВС одновременно выполняющимися в ОП задачами (эффект мультипрограммирования); планирования ВС в соответствии с приоритетами отдельных заданий, ведение учета и контроля использования ресурсов; обеспечение программистов средствами разработки и отладки программ; обеспечение оператора средствами управления ВС.


Математическое обеспечение АСУ Система программирования предназначена для автоматизации процесса программирования задач, она содержит трансляторы алгоритмических языков различных уровней и типов и обслуживающие программы. Система служебных программ (тестов) предназначена для контроля правильности функционирования ВС, обнаружения неисправностей и анализа видов и причин сбоев. Специальное (внешнее) МО включает ППП, программы конкретных задач АСУП, системную диспетчерскую программу. ППП - функционально законченные комплексы программных средств, ориентированные на решение определенного класса задач.


Математическое обеспечение АСУ Программы конкретных задач АСУП можно условно разделить на 3 класса: программы общие для всех отраслей (промышленности, транспорта, торговли и др); программы общие для предприятий авиационной отрасли; программы специфические для каждого предприятия (АРЗ, авиационного производственного объединения и др.). К 1 классу задач относятся задачи: (расчет заработной платы, учет кадров, учет материальных ценностей и т.д.). Ко второму - задачи диспетчерского управления (расчет режимов работы оборудования, расчет выпуска АТ и др.). К третьему - специфические задачи ремонта АТ(выпуск запасных частей при ремонте, подготовка АТ к вылетам и др.). Большое количество различных по целям и значению программ требует их организации в масштабах всей системы и это выполняется с помощью системной диспетчерской программы.


МО строится на основе типизации алгоритмов по классам задач и унификации методов решения родственных задач. Такой подход позволяет удешевить МО, а также создать единые модели для решения различного класса задач. К первому классу задач относятся задачи первичного учета (массовые) (повторяемость расчетов с абонентами - миллионы в год, расчетов по заработной плате - сотни тысяч в год и т.п.). Примеры задач первичного учета: суточный, декадный, месячный и годовой учет поступления и расхода ГСМ по авиакомпаниям, отрядам и др.; суточный и недельный, месячный налет ВС; учет и анализ отказов авиационного оборудования; учет движения и запасов материальных средств и др.


Первичный учет позволяет накопить попутно большое количество информации, последующее обобщение которой позволит получить полноценные статистические данные, необходимые для принятия решений. Эти задачи образуют класс учетно-статистических задач, к которым примыкают и задачи нормативного планирования. Математической характеристикой этих задач является большое количество логических операций при небольшом объеме простых математических операций. В числе задач этого класса можно отметить: составление всех форм статистической и бухгалтерской отчетности; расчет себестоимости продукции; расчеты потребностей в ГСМ и т.д. Обширную группу среди перечисленных составляют бухгалтерские задачи, характеризующиеся большим числом операций сложения, вычитания, логических операций (сортировка, группировка, сравнение) и формированием таблиц заданной формы. Математическое обеспечения АСУ


Математическое моделирование широко применяется в значительной в трех принципиально разных классах задач:в сложных не экстремальных расчетах, прогнозировании и оптимизации. В АСУ за человеком остаются функции принятия решений на основе данных выданных АСУ, непосредственное наблюдение за управляемым процессом (объектом) (контроль), разработка и установление решающих правил (критериев, нормативов, предельных уровней контролируемых величин), совершенствование управления и его формы, анализ результатов работы ЭВМ и подготовка мероприятий по совершенствованию работы системы.


6.3 Языки программирования для описания задач в АСУП языки высокого уровня (т.е. немашинные языки), которые стали своеобразным связующим мостом между человеком и машинным языком компьютера. Языки высокого уровня работают через трансляционные программы, которые вводят "исходный код" (гибрид английских слов и математических выражений, который считывает машина), и в конечном итоге заставляет компьютер выполнять соответствующие команды, которые даются на машинном языке. Существует два основных вида трансляторов: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно Интерпретаторы Одно, часто упоминаемое преимущество интерпретатор ной реализации состоит в том, что она допускает "непосредственный режим". Непосредственный режим позволяет вам задавать компьютеру задачу вроде PRINT *3/2.1 и возвращает вам ответ, как только вы нажмете клавишу ENTER (это позволяет использовать компьютер стоимостью 3000 долларов в качестве калькулятора стоимостью 10 долларов). Кроме того, интерпретаторы имеют специальные атрибуты, которые упрощают отладку. Можно, например, прервать обработку интерпретатор ной программы, отобразить содержимое определенных переменных, бегло просмотреть программу, а затем продолжить исполнение Компиляторы Компилятор-это транслятор текста на машинный язык, который считывает исходный текст. Он оценивает его в соответствии с синтаксической конструкцией языка и переводит на машинный язык. Другими словами, компилятор не исполняет программы, он их строит. Интерпретаторы невозможно отделить от программ, которые ими прогоняются, компиляторы делают свое дело и уходят со сцены. При работе с компилирующим языком, таким как Турбо-Бейсик, вы придете к необходимости мыслить о ваших программах в признаках двух главных фаз их жизни: периода компилирования и периода прогона.


2. КЛАССИФИКАЦИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ 2.1. Машинно – ориентированные языки Машинно – ориентированные языки – это языки, наборы операторов и изобразительные средства которых существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.). Машинно –ориентированные языки позволяют использовать все возможности и особенности Машинно – зависимых языков: - высокое качество создаваемых программ (компактность и скорость выполнения); - возможность использования конкретных аппаратных ресурсов; - предсказуемость объектного кода и заказов памяти; - для составления эффективных программ необходимо знать систему команд и особенности функционирования данной ЭВМ; - трудоемкость процесса составления программ (особенно на машинных языках и ЯСК), плохо защищенного от появления ошибок; - низкая скорость программирования; - невозможность непосредственного использования программ, составленных на этих языках, на ЭВМ других типов.


Машинно-ориентированные языки по степени автоматического программирования подразделяются на классы: Машинный язык компьютер имеет свой определенный Машинный язык (далее МЯ), ему предписывают выполнение указываемых операций над определяемыми ими операндами, поэтому МЯ является командным. Однако, некоторые семейства ЭВМ (например, ЕС ЭВМ, IBM/370/ и др.) имеют единый МЯ для ЭВМ разной мощности. В команде любого из них сообщается информация о местонахождении операндов и типе выполняемой операции Языки Символического Кодирования Языки Символического Кодирования (далее ЯСК), так же, как и МЯ, являются командными. Однако коды операций и адреса в машинных командах, представляющие собой последовательность двоичных (во внутреннем коде) или восьмеричных (часто используемых при написании программ) цифр, в ЯСК заменены на символы (идентификаторы), форма написания которых помогает программисту легче запоминать смысловое содержание операции. Это обеспечивает существенное уменьшение числа ошибок при составлении программ Автокоды Есть также языки, включающие в себя все возможности ЯСК, посредством расширенного введения макрокоманд - они называются Автокоды. Развитые автокоды получили название Ассемблеры. Сервисные программы и пр., как правило, составлены на языках типа Ассемблер Макрос Язык, являющийся средством для замены последовательности символов описывающих выполнение требуемых действий ЭВМ на более сжатую форму - называется Макрос (средство замены). В основном, Макрос предназначен для того, чтобы сократить запись исходной программы. Компонент программного обеспечения, обеспечивающий функционирование макросов, называется макропроцессором.


2.2. Машинно – независимые языки Машинно – независимые языки – это средство описания алгоритмов решения задач и информации, подлежащей обработке. Они удобны в использовании для широкого круга пользователей и не требуют от них знания особенностей организации функционирования ЭВМ и ВС. Подобные языки получили название высокоуровневых языков программирования. Программы, составляемые на таких языках, представляют собой последовательности операторов, структурированные согласно правилам рассматривания языка(задачи, сегменты, блоки и т.д.). Операторы языка описывают действия, которые должна выполнять система после трансляции программы на МЯ. Программист получил возможность не расписывать в деталях вычислительный процесс на уровне машинных команд, а сосредоточиться на основных особенностях алгоритма Проблемно – ориентированные языки С расширением областей применения вычислительной техники возникла необходимость формализовать представление постановки и решение новых классов задач. Необходимо было создать такие языки программирования, которые, используя в данной области обозначения и терминологию, позволили бы описывать требуемые алгоритмы решения для поставленных задач, ими стали проблемно – ориентированные языки. Эти языки, языки ориентированные на решение определенных проблем, должны обеспечить программиста средствами, позволяющими коротко и четко формулировать задачу и получать результаты в требуемой форме.Проблемных языков очень много, например:Фортран, Алгол – языки, созданные для решения математических задач; Simula, Слэнг - для моделирования; Лисп, Снобол – для работы со списочными структурами.


Универсальные языки Универсальные языки были созданы для широкого круга задач: коммерческих, научных, моделирования и т.д. Первый универсальный язык был разработан фирмой IBM, ставший в последовательности языков Пл/1. Второй по мощности универсальный язык называется Алгол-68. Он позволяет работать с символами, разрядами, числами с фиксированной и плавающей запятой. Пл/1 имеет развитую систему операторов для управления форматами, для работы с полями переменной длины, с данными организованными в сложные структуры, и для эффективного использования каналов связи. Язык учитывает включенные во многие машины возможности прерывания и имеет соответствующие операторы. Предусмотрена возможность параллельного выполнение участков программ. Программы в Пл/1 компилируются с помощью автоматических процедур. Язык использует многие свойства Фортрана, Алгола, Кобола. Однако он допускает не только динамическое, но и управляемое и статистическое распределения памяти Диалоговые языки Появление новых технических возможностей поставило задачу перед системными программистами – создать программные средства, обеспечивающие оперативное взаимодействие человека с ЭВМ их назвали диалоговыми языками. Эти работы велись в двух направлениях. Создавались специальные управляющие языки для обеспечения оперативного воздействия на прохождение задач, которые составлялись на любых раннее неразработанных (не диалоговых) языках. Разрабатывались также языки, которые кроме целей управления обеспечивали бы описание алгоритмов решения задач.


Необходимость обеспечения оперативного взаимодействия с пользователем потребовала сохранения в памяти ЭВМ копии исходной программы даже после получения объектной программы в машинных кодах. При внесении изменений в программу с использованием диалогового языка система программирования с помощью специальных таблиц устанавливает взаимосвязь структур исходной и объектной программ. Это позволяет осуществить требуемые редакционные изменения в объектной программе. Одним из примеров диалоговых языков является Бэйсик. Бэйсик использует обозначения подобные обычным математическим выражениям. Многие операторы являются упрощенными вариантами операторов языка Фортран. Поэтому этот язык позволяет решать достаточно широкий круг задач Непроцедурные языки составляют группу языков, описывающих организацию данных, обрабатываемых по фиксированным алгоритмам (табличные языки и генераторы отчетов), и языков связи с операционными системами. Позволяя четко описывать как задачу, так и необходимые для её решения действия, таблицы решений дают возможность в наглядной форме определить, какие условия должны быть выполнены прежде чем переходить к какому-либо действию. Одна таблица решений, описывающая некоторую ситуацию, содержит все возможные блок-схемы реализаций алгоритмов решения. Табличные методы легко осваиваются специалистами любых профессий. Программы, составленные на табличном языке, удобно описывают сложные ситуации, возникающие при системном анализе.

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

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

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

Другой классический пример, вызывающий замечание математика – выражение , знакомое любому школьнику:

всегда равное единице; а в компьютере либо будет предпринята попытка вычислить это выражение (с неизбежными ошибками округления), либо будет выдано сообщение о неопределенности аргумента Х и всякие дальнейшие действия будут прекращены.

На этом первый этап завершился...

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

Их принято называть преобразованиями в символьном виде или аналитическими преобразованиями, а результат получать не как раньше – в виде одного числа, а в виде формулы.

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

Это привело к созданию компьютерных систем символьной математики, рассчитанных на широкие круги пользователей – непрофессионалов в математике. Так началась с середины 60-х годов ХХ века эра систем компьютерной математики (СКМ), по -английски CAS – Сomputer algebra system .

В конце 60-х годов в России на отечественных ЭВМ серии "Мир", разработанных под руководством академика В. Глушкова, была реализована СКМ на языке программирования " Аналитик ", обладающая всеми возможностями символьных вычислений, впрочем, с весьма скромными, по нынешним понятиям, характеристиками.

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

Данные об особенностях существующих СКМ приведены в табл. 12.1 .

Таблица 12.1. Современные СКМ и их возможности
Система Назначение и возможности Недостатки
Mathcad 13, Mathcad 14 Система универсального назначения в основном для непрофессиональных математиков и целей образования всех ступеней. Продуманный интерфейс представления данных в традиционной математической форме и изумительная графика на всех этапах работы, включая ввод. Ввод с помощью выбора из панелей инструментов или из меню практически без использования клавиатуры. Мощный и исчерпывающий набор операторов и функций. Множество примеров, электронных книг и библиотек, готовых решений практических задач. Ядро символьных вычислений импортировано из СКМ Maple . Предоставление серверных услуг профессионального пакета. Легкость переноса документа в другие приложения Достаточно примитивные средства программирования. Дороговизна электронных книг и библиотек, отсутствие русифицированных версий самого пакета и дополнительных библиотек (книг). Затруднена символьная обработка дифференциальных уравнений. Не создается итоговый исполняемый *.exe-файл; для запуска документа необходимо наличие пакета СКМ Mathcad . Затруднения при выполнении тригонометрических преобразований
Maple V R4/R5/R6 Университетское высшее образование и научные расчеты. Мощное ядро символьных вычислений – возможности аналогичны СКМ Mathcad , содержащее до 3000 функций. Мощнейшая графика. Удобная справочная система. Средства форматирования документов Повышенные требования к аппаратным ресурсам. Отсутствие синтеза звуков. Ориентация на опытных пользователей и специалистов по математике. Все недостатки аналитических действий аналогичны СКМ Mathcad
Mathematica 5/7 Высшее образование и научные расчеты. Наиболее развитая система символьной математики. Единственная СКМ, обеспечивающая символьное решение дифференциальных уравнений. Совместимость с разными компьютерными платформами. Уникальная трехмерная графика. Поддержка синтеза звука. Развитые средства форматирования документов. Программный синтез звуков. Высокие требования к аппаратным ресурсам. Чрезмерная защита от копирования. Слабая защита от некорректных задач. Ориентация на опытных пользователей. Ввод задач на уникальном языке функционального программирования. Непривычная индикация функций запуска вычислений.
MATLAB 7.* Образование (в том числе техническое), научные расчеты, численное моделирование, и расчеты, ориентированные на применение матричных методов, при этом скаляр рассматривается как матрица 1х1. Уникальные матричные средства, обилие численных методов, описательная (дескрипторная) графика, высокая скорость вычислений, легкость адаптации к задачам пользователя благодаря множеству пакетов расширения системы. Развитый язык программирования с возможностями объектно-ориентированного программирования (ООП), совместимость с алгоритмическим языком Java Очень высокие требования к аппаратным ресурсам. Практически отсутствует возможность символьных вычислений. Относительно высокая стоимость. Ввод задач на уникальном языке программирования

Рассмотрим внутреннюю архитектуру СКМ на примере наиболее мощной, по мнению ряда авторитетных специалистов , СКМ Mathematica, обладающей наиболее развитой системой символьной математики. На рис.12.1 представлена ее программная архитектура .


Рис. 12.1.

Центральная часть – ядро ( Kernel ) системы СКМ реализует алгоритм функционирования СКМ, обеспечивает совместное функционирование всех ее частей, организует прием и интеллектуальную обработку запроса пользователя, а затем – вызов нужной процедуры решения. В ядре помещается большое количество встроенных функций и операторов системы. Их количество в современных СКМ может достигать многих тысяч. Например, ядро системы Mathematica 4 содержит данные более чем 5000 одних только интегралов, хотя для интегрирования используются только несколько встроенных функций.

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

Кардинальное расширение возможностей СКМ и их приспособленность к нуждам конкретных пользователей для углубленного решения определенного круга задач (например, задач теоретической и прикладной статистики, векторного анализа) достигается за счет установки внешних пакетов расширения. Эти пакеты, приобретаемые отдельно, делают возможности СКМ практически безграничными.

Все эти библиотеки, пакеты расширений и справочная система современных СКМ (назовем их инструментами СКМ) содержат не только и не просто знания в области математики, накопленные за много веков ее развития (этим никого не удивишь: именно такие возможности характерны для широко распространенного класса ИПО – информационно-поисковых систем). Но восхищает, что эти инструменты удивительным образом автоматически и творчески используют такие знания для решения задач, где нужно выбрать и уметь применить один, единственный из многих десятков, неочевидный метод решения . Например, СКМ могут мгновенно найти неопределенный интеграл либо сразу же сообщить о невозможности его представления элементарными функциями – задача непростая, даже для профессионального математика . Не менее впечатляет и то, что если после получения искомой формулы перейти к началу документа и задать входящим в эту формулу параметрам конкретные числовые значения, мгновенно будет получен ее численный результат. В состав любой СКМ входит набор редакторов (на рис.12.1 они названы редакторами по направлениям): текстовый, формульный, графический редакторы, средства поддержки работы в сети и HTML ( XML )-средства, пакеты анимации и аудиосредства.

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

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

12.2. Интегрированная Среда СКМ MathCad

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

По сей день они остаются единственными математическими системами, в которых описание решения математических задач дается с помощью привычных математических формул и знакомых символов. Такой же вид имеют и результаты вычислений. СКМ MathCad не очень подходит для серьезной профессиональной научной деятельности математиков, она больше предназначена для решения не слишком изощренных математических задач, выполнения технических расчетов любой сложности, а главное – не имеет конкурентов в области образования. Благодаря высоким характеристикам, СКМ MathCad полностью оправдывает термин " CAD " в своем названии ( Computer Aided Design), подтверждающий принадлежность к классу наиболее сложных и совершенных систем автоматического проектирования – САПР . Система MathCad является типичной интегрированной системой, то есть объединяющей в своем составе несколько обособленных программных средств для решения определенного круга самостоятельных задач.. Первоначально она была предназначена для сугубо численных вычислений и ориентирована под MS-DOS , но, начиная с версии 3.0 (1990 г.), работает под ОС Windows и имеет достаточно широкий набор средств для символьных и графических вычислений.

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

На рис.12.2 приведена архитектура СКМ MathCad . Центральным блоком являются два ядра: собственно ядро СКМ и ядро символьных вычислений, аналогичное СКМ Maple , приобретенное у разработчика – фирмы Waterloo Maple .

Встроенные в среду MathCad электронные книги (e-Books) содержат примеры, справки и типовые расчеты из различных областей науки, техники, экономики. Любой фрагмент из этих книг можно скопировать на рабочий лист документа и выполнить.

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

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

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

Интерфейс интеллектуален – конечно, здесь далеко до интеллекта Visual Studio-2010, но во многих случаях он не допустит ошибочных действий пользователя.

Упомянутый входной язык ввода является интерпретирующим, то есть промежуточные результаты появляются по мере ввода очередной формулы. Сама же СКМ MathCad написана на одном из самых мощных языков – С++. По мере того, как пользователь набирает на рабочем листе текст алгоритма вычислений, среда сама составляет скрытую программу на промежуточном языке связи, которая затем сохраняется в виде файла с расширением.mcd. К сожалению, исполняемого файла с расширением.ехе пакет MathCad не формирует – для работы с импортированным документом необходимо наличие установленного приложения MathCad . А вот вставить образ документа либо отдельный его фрагмент в текстовый редактор , например, MS WORD , через системный буфер никакого труда не представляет. Именно так и вставлялись все иллюстрации в этой главе. Рекомендую после такой вставки фрагмента вызвать на нем контекстное меню – пункт "Формат рисунка…/Размер" и установить в окне "Масштаб по высоте" 128% – для шрифта 12-го кегля наиболее подходящий.

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

Контент (содержание) этой СКМ можно рассматривать в качестве исключительно мощного справочного средства по математике. Кроме того, в СКМ MathCad интегрированы формульный, текстовый и графический редакторы, позволяющие упростить ввод многоэтажных сложнейших формул и получить итоговый документ. Промежуточные действия в ходе символьных преобразований в СКМ MathCad скрыты от пользователя, но не следует забывать, что для получения конечного результата используются сложнейшие рекурсивные алгоритмы, мало знакомые широкому пользователю и зачастую не оптимальные на взгляд математика . При этом никто не запрещает пользователю пошаговое выполнение и индикацию знакомых из литературы алгоритмов, что значительно упрощает решение при известном конечном результате. В СКМ MathCad не создается итоговый исполняемый *.exe файл , значит, для просмотра готового (например, импортированного) документа требуется наличие установленного пакета СКМ MathCad .

Перечислим основные возможности Среды MathCad .

Общие возможности

  1. Разработка и редактирование документов, содержащих как математические формулы любой сложности, так и все встроенные инструменты Среды MathCad . Подготовка этих документов к изданию или передаче по сети Internet.
  2. Использование общепринятого расширяемого языка разметки XML как универсального способа организации обмена данными с другими приложениями. Это позволяет преобразовывать файлы MathCad в HTML-страницы и в формат PDF.
  3. Возможность вставки в документ широкого спектра объектов (см. рис.12.3 .)
  4. Разработка веб-документов и сетевые возможности по их пересылке, получению обновлений и поддержки.
  5. Получение документов
  6. Выполнение вычислений любой сложности – использование среды MathCad в качестве сверхмощного научного интеллектуального калькулятора с применением богатой библиотеки встроенных функций (более 680; для сравнения, в MS Excel их около 200), с точностью до 17 значащих цифр (а при использовании специальных операторов – и до 250) и с неограниченными возможностями запоминания промежуточных результатов. При этом имеется возможность вычислений как по введенной в документ формуле целиком, так и по отдельному, выделенному фрагменту формулы.
  7. Использование графического редактора для построения двумерных и трехмерных графиков любой сложности, наглядных диаграмм и не только для простого построения, но и для связи графика с формулой, при которой изменение параметра сразу отражается на кривой графика. Имеется также возможность создание объектов движущейся анимации и просмотра импортированных файлов, например, видеофильмов в формате AVI при помощи встроенного в среду MathCad проигрывателя Playback .
  8. Действия с размерностями.

Численные методы вычислений

  • Решение уравнений и систем уравнений, как линейных, так и нелинейных. Нахождение корней многочлена.
  • Решение неравенств.
  • Вычисление определенного интеграла.
  • Вычисление несобственных интегралов.
  • Вычисление кратных интегралов.
  • Численные методы дифференцирования.
  • Численное решение обыкновенных дифференциальных уравнений – задача Коши.
  • Численное решение обыкновенных дифференциальных уравнений – решение краевой задачи.
  • Решение дифференциальных уравнений в частных производных.
  • Вычисление определителя, размерности, ранга и следа матрицы, скалярное и векторное умножение векторов, вычисление якобиана, например, для перехода к другим системам координат в тройном интеграле. Вычисление собственных значений и собственных векторов , поиск максимального и минимального элемента матрицы.
  • Матричные преобразования: скалярное и векторное умножение векторов, поиск обратной матрицы и решение системы алгебраических линейных уравнений, всевозможные разложения матрицы на произведение матриц специального вида: двух треугольных – верхней и нижней (LU-преобразование), треугольной и ее же транспонированной (разложение Холецкого), ортогональной и верхней треугольной (QR-разложение), сингулярное разложение.
  • Интегрирование среды MathCad с матричной математической системой MATLAB и возможность использования ее аппарата открывает удивительные возможности эффективного решения матричных задач неограниченной сложности.
  • Решение дифференциальных уравнений

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

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

    Комплексные числа
  1. Представление комплексных чисел в традиционной форме, возможность выполнения основных арифметических действия с ними.
  2. Возможность автоматического получения результатов многих вычислений в виде комплексного числа (например, всех корней многочлена).
  3. Возможность задания комплексного аргумента для многих библиотечных функций и получение математически корректного результата.

Обработка данных и финансовые расчеты

Теория вероятностей и математическая статистика

Математическое моделирование

Специальные возможности по прикладным инженерным и научным расчетам

  1. Обработка электрических сигналов и расчет электронных устройств.
  2. Виртуальная генерация электрических сигналов и их обработка.
Системы компьютерной математики (СКА) творят чудеса. Развитие математических пакетов достигло того уровня, когда невольно закрадывается мысль - а зачем нам теперь нужны классические методики преподавания математики (или физики, или механики) в школе или вузе, если большую часть «грязной» работы по преобразованию выражений можно переложить на плечи машины. А если нельзя, или трудно получить аналитическое решение задачи, то почему бы не «прощелкать» её численно в одном из популярных пакетов. Так что, давайте ограничим уровень понимания учеников составлением исходной системы уравнений, а решать учить не будем - всё легко и непринужденно сделает за них компьютер.

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

1. Система тригонометрических уравнений

Когда, в не слишком далеком 2003 году я начал работать над кандидатской диссертацией, я столкнулся с необходимостью решать систему тригонометрических уравнений вида

Параметры a, b, A, B - положительны. На корни уравнения накладываются условия

Где мы сталкиваемся с такими системами? При расчете кинематики замкнутых четырехзвенников, например. Такой замкнутый четырехзвенник был в моей работе, почти такой же попался мне около года назад, когда я взялся сделать «шабашку» (помог одному профессору в его работе).

Тогда, в 2003-м я только познакомился с системой Maple и был в восторге от её возможностей, естественно я поручил эту систему ей. И меня ждал «облом»… Посмотрим, какое решение дают Maple 18 и Mathematica 10 для этой задачи сегодня.

2. Решение задачи в СКА «в лоб»

В моем любимом Maple задаем систему уравнений

Restart; eq01:= a*cos(x) + b*cos(y) = A; eq02:= a*sin(x) - b*sin(y) = B;

И пробуем решить

Solv:= solve({eq01, eq02}, {x, y});

И получаем…

Эта бяка не влезла в онлайн-LaTeX, поэтому пришлось привести скриншот. Такой результат получается из-за того, что постановка задачи слишком общая. Необходимо указать системе, какое решение нас интересует, воспользовавшись условием (3)

Solv:= solve({eq1, eq2, x > 0 and x < Pi, y > 0 and y < Pi}, {x, y});

В этом случае результат выглядит получше

Ещё раз попрошу прощения у читателя за корявый скриншот и замечу, что мы получили два решения системы (1) - (3) и нам теперь ещё предстоит разобраться, какой ответ соответствует механическому смыслу задачи (он там есть, да), а учитывая, что за a, b, A и B могут таится довольно значительные выражения (не зависящие, естественно, от x и y) нам должно стать довольно грустно в этот момент.

У системы Mathematica 10 с этими уравнениями лучше дела обстоят в том смысле, что она получает конечную форму общего решения, часть которого на скрине

Если систему дополнить условием (3), то Вольфрам говорит нам, что Solve[...] не имеет метода решения для такого случая (был бы признателен читателю за подсказку по этому вопросу, ибо считаю что сам я вопрос изучил не полностью, а пока продолжу повествование).

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

Когда мой покойный ныне «шеф» увидел эти решения в 2003 году, он задумался и изрек, что «эти крокодилы надо причесать», чем заставил меня погрузится в дальнейшие раздумья. И я снова вооружился листком бумаги и карандашом…

3. СКА + головной мозг

Чтобы получить достаточно компактное решение, надо преобразовать систему (1) - (3) к линейной относительно неизвестных. Для этого надо воспользоваться школьными знаниями по тригонометрии.

Итак, возведем уравнения (1) и (2) в квадрат и сложим, перенеся всё, что не зависит от x и y в правую часть уравнения

Left1:= lhs(eq01): left2:= lhs(eq02): right1:= rhs(eq01): right2:= rhs(eq02): eq03:= simplify(left1^2 + left2^2)= right1^2 + right2^2; eq03:= eq03 - (a^2 + b^2); left3:= combine(lhs(eq03)); eq03_1:= left3 = rhs(eq03);

Используя формулу «косинус суммы», получим новое уравнение

Теперь, разрешая его относительно суммы неизвестных приходим к линейному уравнению

Линейное уравнение оно и в Африке линейное - найдя одну неизвестную, получим и другую. Займемся другой неизвестной, исключив x из одного их уравнений. Так как у нас есть условие (3), то очевидно, что

А это дает нам возможность воспользоваться основным тригонометрическим тождеством без неоднозначности «плюс-минус»

Косинус икса берем из первого уравнения

Получая, таким образом для синуса икс

Чтобы не пыхтеть над бумагой, поручим всё это Maple

Eq01_1:= subs(cos(x) = u, eq01); slv:= solve(eq01_1, u); eq02_1:= subs(sin(x) = sqrt(1-slv^2), eq02); eq02_1:= eq02_1 + b*sin(y);

Имея на выходе уравнение

Уравнение (7) надо возвести в квадрат и провести некоторые преобразования

Left:= expand(lhs(eq02_1)^2): right:= expand(rhs(eq02_1)^2): eq02_2:= collect(simplify(right - left), b); eq02_3:= subs(coeff(eq02_2, b) = tmp, eq02_2); slv2:= solve(eq02_3, tmp); eq02_4:= -2*A*cos(y) + 2*B*sin(y) = slv2; eq02_5:= eq02_4/(-2);

А теперь выполним, известный многим, «финт ушами»

Left2:= lhs(eq02_5); left3:= subs(A = O2A*cos(xi), B = O2A*sin(xi), left2); left4:= subs(O2A = sqrt(A^2 + B^2), combine(left3));

То есть, делим обе части уравнения на и сворачиваем левую часть по формуле косинуса суммы, справедливо полагая что

Получаем новое уравнение,

Которое успешно решаем относительно y

Eq02_6:= left4 = rhs(eq02_5); slv3:= subs(xi = arccos(A/sqrt(A^2 + B^2)), solve(eq02_6, y)):

Как видим, игрек вышел довольно компактным. Возвращаемся к уравнению (5) и находим икс

Итак, что же такое операционная система на компьютере? ОС — это самое важное программное обеспечение, которое работает на компьютере. Он управляет памятью, процессами, и всем программным и аппаратным обеспечением. Можно сказать, что ОС — это мост между компьютером и человеком. Потому что без операционной системы, компьютер бесполезен.

Apple Mac OS X

Mac OS представляет собой линейку операционных систем, созданных компанией Apple. Она поставляется предустановленной на всех новых компьютерах Macintosh или Mac. Последние версии этой операционной системы известны как OS X . А именно Yosetime (выпущенный в 2014 году), Mavericks (2013), Mountine Lion (2012), Lion (2011), и Show Leopard (2009). Также есть Mac OS X Server , который предназначен для работы на серверах.

По данным общей статистики StatCounter Global Stats, процент пользователей Mac OS X составляет 9,5% рынка операционных систем, по состоянию на сентябрь 2014 года. Это намного ниже чем процент пользователей Windows (почти 90% ). Одной из причин этого является то что компьютеры Apple очень дорогие.

Linux

Linux — семейка операционных систем с открытым исходным кодом. Это значит, они могут модифицироваться (изменяться) и распространятся любым человеком по всему миру. Это очень отличает эту ОС от других, таких как Windows, которая может изменяться и распространяться только самим владельцем (Microsoft). Преимущества Линукса в том, что он бесплатный, и есть много различных версий на выбор. Каждая версия имеет свой внешний вид, и самые популярные из них это Ubuntu , Mint и Fedora .

Linux назван в честь Линуса Торвальдса, который заложил основу в Linux в 1991 году.

По данным общей статистики StatCounter Global Stats, процент пользователей Linux составляет менее 2% рынка операционных систем, по состоянию на сентябрь 2014 года. Однако, из-за гибкости и легкости в настройках большинство серверов работают на Linux.

Операционные системы для мобильных устройств

Все операционные системы, о которых мы говорили выше разработаны для настольных и портативных компьютеров, таких как ноутбук. Есть операционные системы, которые разработаны специально для мобильных устройств, таких как телефоны, и MP3-плееры, например, Apple, IOS, Windows Phone и Google Android. На рисунке ниже вы можете увидеть Apple, IOS работающий на IPad.

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

На этом все. Оставьте в комментариях какой операционной системой пользуетесь вы и почему она вам нравиться

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

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

Спрос на универсальные и специализированные программные пакеты для решения различных прикладных задач вызвал появление на рынке программных продуктов систем компьютерной математики, которые быстро стали популярными. На рынке современных математических систем в настоящее время присутствует целый ряд крупных фирм: Macsyma, Inc., Waterloo Maple Software, Inc., Wolfram Research, Inc., MathWorks, Inc., MathSoft, Inc., SciFace GmbH и др. К разработке каждой такой математической системы привлекаются сотни профессионалов из известных университетов и крупных научных центров, а также высококвалифицированные программисты и эксперты в области проектирования сложных программных систем. В результате мы имеем весьма совершенные, гибкие и одновременно универсальные продукты, включающие существенные математические понятия и обладающие богатым набором методов для решения общих математических и научно-технических задач. Именно обзору и краткому анализу таких программных продуктов и посвящена данная статья.

MATLAB

MATLAB - продукт компании MathWorks, Inc.(http://www.mathwork.com/), представляющий собой язык высокого уровня для научно-технических вычислений. Среди основных областей применения MATLAB - математические расчеты, разработка алгоритмов, моделирование, анализ данных и визуализация, научная и инженерная графика, разработка приложений, включая графический интерфейс пользователя. MATLAB решает множество компьютерных задач - от сбора и анализа данных до разработки готовых приложений. Среда MATLAB соединяет в себе математические вычисления, визуализацию и мощный технический язык. Встроенные универсальные интерфейсы позволяют легко работать с внешними информационными источниками, а также осуществлять интеграцию с процедурами, написанными на языках высокого уровня (C, C++, Java и др.). Мультиплатформенность MATLAB сделала его одним из самых распространенных продуктов - он фактически стал принятым во всем мире стандартом технических вычислений. MATLAB имеет широкий спектр применений, в том числе цифровую обработку сигналов и изображений, проектирование систем управления, естественные науки, финансы, экономику, приборостроение и т.п. Цена - 2940 долл.

Maple

Данный продукт компании Waterloo Maple Software, Inc. (http://www.maplesoft.com/) часто называют системой символьных вычислений или системой компьютерной алгебры. Maple позволяет выполнять как численные, так и аналитические расчеты с возможностью редактирования текста и формул на рабочем листе. Благодаря представлению формул в полиграфическом формате, великолепной двух- и трехмерной графике и анимации Maple является одновременно и мощным научным графическим редактором. Простой и эффективный язык-интерпретатор, открытая архитектура, возможность преобразования кодов Maple в коды C делает его очень эффективным средством создания новых алгоритмов. Обладающий интуитивно понятным интерфейсом, простыми правилами работы и широким функционалом, этот продукт уже завоевал популярность у российских математиков и инженеров. Цена Maple 7 - 1695 долл.

Mathematica

Система Mathematica - компании Wolfram Research, Inc. (http://www.wolfram.com/) имеет чрезвычайно широкий набор средств, переводящих сложные математические алгоритмы в программы. По сути дела, все алгоритмы, содержащиеся в курсе высшей математики технического вуза, заложены в память компьютерной системы Mathematica. В некоторых странах (например, в США) система высшего образования тесно связана с этим продуктом. Огромное преимущество системы Mathematica состоит в том, что ее операторы и способы записи алгоритмов просты и естественны. Mathematica имеет мощный графический пакет, с помощью которого можно строить графики очень сложных функций одной и двух переменных. Главное преимущество Mathmatica, делающее ее бесспорным лидером среди других систем высокого уровня, состоит в том, что эта система получила сегодня очень широкое распространение во всем мире, охватив огромные области применения в научных и инженерных исследованиях, а также в сфере образования. Цена - 1460 долл.

Macsyma

Macsyma от компании Macsyma, Inc. (http://www.macsyma.com/) - это одна из первых математических программ, оперирующих символьной математикой. Сильные стороны Macsyma - развитой аппарат линейной алгебры и дифференциальных уравнений. Система ориентирована на прикладные расчеты и не предназначена для теоретических исследований в области математики. В связи с этим в программе отсутствуют или сокращены разделы, связанные с теоретическими методами (теория чисел, теория групп, и др.). Пожалуй, главным преимуществом Macsyma перед другими универсальными математическими пакетами является то, что пользователь может аналитически и численно решать большое количество различных типов уравнений в частных производных. Macsyma имеет очень удобный интерфейс. Рабочим документом программы является научная тетрадь, в которой содержатся доступные для редактирования поля текста, команд, формул и графиков. Отличительной особенностью пакета является совместимость с текстовым редактором Microsoft Word. Почти все команды Macsyma в библиотечных файлах загружаются автоматически; очень удобно и окно просмотра (браузер) математических функций. Macsyma генерирует коды FORTRANа и C, включая управляющие операторы. Система работает на платформе Intel под управлением OS Windows.

MuPAD

В сравнении с другими математическими пакетами MuPAD - продукт компании SciFace GmbH (http://www.sciface.com/) - является относительно молодым продуктом, однако это не мешает ему уверенно конкурировать с ними. MuPAD является программным пакетом компьютерной алгебры, предназначенным для решения математических задач различного уровня сложности. Основные качественные отличия MuPAD - невысокие требования к ресурсам PC, наличие собственного ядра символьной математики, способность к развитию самим пользователем и мощные средства визуализации решения математических задач. Пакет поддерживает большой набор математических объектов и алгоритмов для самого широкого круга задач. Работа пользователя проходит в окне блокнота, позволяющего перемежать текст с математическими формулами, форматированным текстом и выводом решений, включая двух- и трехмерную графику. Для разработки собственных алгоритмов и функций на базе библиотеки функций MuPAD в системе предусмотрены специальный паскалеподобный язык программирования и интерактивный пошаговый отладчик. Созданные пользователем алгоритмы могут объединяться в отдельные библиотеки. Цена MuPAD 2.0 - 700 долл.

S-PLUS

S-PLUS - продукт компании Insightful Corporation (http://www.insightful.com/), ранее известной как подразделение MathSoft, а теперь являющейся одним из мировых лидеров в области статистического анализа данных, визуализации и прогнозирования. S-PLUS представляет собой интерактивную компьютерную среду, обеспечивающую полнофункциональный графический анализ данных и включающую оригинальный объектно-ориентированный язык. Гибкая система S-PLUS может использоваться для исследовательского анализа данных, статистического анализа и математических вычислений, а также для удобного графического представления анализируемых данных. К основным достоинствам S-PLUS относятся непревзойденная функциональность, возможность интерактивного визуального анализа данных, интуитивно понятные интерфейс пользователя и методы подготовки анализируемых данных, простота использования самых современных статистических методов, мощные вычислительные возможности, расширяемый набор статистических методов, гибкий интерфейс пользователя. Цена - 2865 долл.

КомпьютерПресс 12"2001