Символьная, или, как еще говорят, компьютерная, математика либо компьютерная алгебра, — большой раздел математического моделирования. В принципе, программы такого рода можно отнести к инженерным программам автоматизированного проектирования. В области инженерного проектирования выделяют три основных раздела:
Символьная, или, как еще говорят, компьютерная, математика либо компьютерная алгебра, — большой раздел математического моделирования. В принципе, программы такого рода можно отнести к инженерным программам автоматизированного проектирования. В области инженерного проектирования выделяют три основных раздела:
Сегодня серьезное конструирование, градостроительство и архитектура, электротехника и масса смежных с ними отраслей, а также учебные заведения технической направленности уже не могут обойтись без систем автоматизированного проектирования (САПР), производства и расчетов. Всего каких-нибудь 10 лет назад эти системы считались сугубо профессиональными, но середина 90-х годов стала переломным моментом для мирового рынка CAD/CAM/CAE-систем массового применения. Тогда, впервые за долгое время, пакеты для параметрического моделирования с промышленными возможностями стали доступны пользователям персональных компьютеров. Создатели подобных систем учли требования широкого круга пользователей и таким образом дали возможность десяткам тысяч инженеров и математиков использовать на своих персональных рабочих местах новейшие достижения науки в области технологий CAD/CAM/CAE-систем.
В такой традиционной сфере применения ПК, как математические расчеты, в последние годы наметился огромный прогресс. Появилось большое число интегрированных математических систем как для численных, так и для аналитических (символьных) вычислений. Символьные операции – это как раз то, что кардинально отличает системы символьной математики (или компьютерной алгебры) от систем для выполнения численных расчетов. В последние годы получили развитие специальные программные средства – интегрированные системы символьной математики MathCAD ("MathSoft Inc.", http://www.mathsoft.com), MatLAB ("MathWorks", http://www.mathworks.com), Maple V (“Waterloo Maple Software”, http://www.maplesoft.com), Mathematica (“Wolfram Research Inc.”, http://www.wolfram.com), Axiom (“Numerical Algorithms Group Inc.”, http://www.nag.com) и др.
Mathematica
Wolfram Mathematica — система компьютерной алгебры, используемая во многих научных, инженерных, математических и компьютерных областях. Изначально система была придумана Стивеном Вольфрамом, в настоящее время разрабатывается компанией Wolfram Research.
Минимальные требования к системе:
процессор Pentium II или выше;
128 Мбайт оперативной памяти (рекомендуется 256 Мбайт или больше);
400-550 Мбайт дискового пространства;
операционные системы: Windows 98/Me/ NT 4.0/2000/2003 Server/2003x64/XP/XP x64.
Компания Wolfram Reseach, Inc., разработавшая систему компьютерной математики Mathematica, по праву считается старейшим и наиболее солидным игроком в этой области. Пакет Mathematica повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде. Можно даже сказать, что Mathematica обладает значительной функциональной избыточностью (там, в частности, есть даже возможность для синтеза звука).
Рисунок -Графические возможности Mathematica
Mathematica — это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемно-ориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой — интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Таким образом, Mathematica как система программирования имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения появляется возможность подстраиваться под запросы любого пользователя.
К недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования Wolfram Language, обращение к которому, впрочем, облегчает подробная система помощи.
Сферы применения:
Программирование, основанное на алгоритмах.
Вычисления с использованием данных из реального мира.
Программирование с акцентом на аналитику и визуализации.
Работа с интернетом вещей.
Программирование в обучении.
Исследования и разработка в программировании.
Разработка сразу под несколько платформ.
Ключевые идеи:
Максимальное количество встроенных знаний. В отличие от других языков программирования, философия Wolfram Language подразумевает встроить в язык максимальное количество знаний – алгоритмы и фактическую информацию о мире. В язык встроена самая большая база алгоритмов и пригодных для вычислений знаний. Это данные из тысяч различных сфер, которые курируются компанией Wolfram Researh.
Максимальная автоматизация. У программиста должна быть возможность сосредоточиться на том, что он хочет получить, а язык должен автоматически объяснять, как этого достичь. Язык содержит тысячи уникальных метаалгоритмов для автоматического выбора исполняемых алгоритмов, автоматизации процессов программирования, презентаций, работы с интерфейсами.
Максимальная единообразность дизайна. Элегантная и единообразная структура языка должна обеспечивать совместимость между различными областями языка, предоставлять максимальную гибкость программных конструкций и повышать читабельность, понятность и предсказуемость кода.
Представление чего бы то ни было в виде символьных выражений. Представление данных, формул, кода, графики, документов, интерфейсов и прочего в символьном виде, что даёт большую гибкость в написании кода, а инкрементный подход подразумевает, что любой фрагмент кода может быть запущен. Подобный подход подразумевает возможность включить в код любой из перечисленных выше объектов.
Содержание встроенной обширной модели мира. Единицы измерения, даты, локации, данные из различных областей представляются с помощью расширемого символьного фреймворка.
Использование естественного языка для программирования. Использование технологий, отработанных в Wolfram\|Alpha, позволяют переводить обычную речь на естественном языке в вычисляемый код, что даёт возможность программировать без знания языка.
Развёртывание языка где угодно. На локальном компьютере, в облаке, на мобильных устройствах, возможность быть встроенным; язык позволяет создать web API в любой программе, а также встроить язык в программную или аппаратную систему.
Вычисляемые документы как часть языка. Использование документов-ноутбуков в CDF формате позволяют сочетать в одном документе исполняемый код, примеры, документации, интерактивные элементы и медиа контент; в базе Wolfram Demonstrations Project можно найти более 10 тысяч примеров.
Удобные интерфейсы. Символьные выражения позволяют стандартизировать взаимодействия с внешними данными и программами; также язык поддерживает работу с устройствами реального времени и создание связей через собственное облако Wolfram Cloud.
Интегрированный процесс написания и исполнения кода позволяет сразу же тестировать написанные участки кода, визуализировать результаты и проводить аналитику, что позволяет реализовать инкрементное и исследовательское программирование.
Создание программ любого размера. Программы на Wolfram Language могут содержать как всего несколько строк, так и несколько миллионов, и их могут разрабатывать как один человек, так и большой коллектив, что обеспечивается заточенной под масштабное программирование средой. К примеру, Mathematica, почти полностью написана на Wolfram Language (лишь небольшая часть кода написана на Си).
Максимальная выразительность языка обеспечивается его символьным характером, что позволяет использовать как привычные парадигмы, так и недавно появившиеся.
Максимально долгая обратная совместимость. Программы, написанные 25 лет назад, могут быть запущены и в современных версиях системы.
Рисунок -Эмблема программы Maxima
Maxima
Maxima — система для работы с символьными и численными выражениями, включающая дифференцирование, интегрирование, разложение в ряд, преобразование Лапласа, обыкновенные дифференциальные уравнения, системы линейных уравнений, многочлены, множества, списки, векторы, матрицы и тензоры. Maxima производит численные расчеты высокой точности, используя точные дроби, целые числа и числа с плавающей точкой произвольной точности. Система позволяет строить графики функций и статистических данных в двух и трех измерениях.
Исходный код Maxima может компилироваться на многих системах, включая Windows, Linux и MacOS X. На SourceForge доступны исходные коды и исполняемые файлы для Windows и Linux.
Maxima — потомок Macsyma, легендарой системы компьютерной алгебры, разработанной в начале 60-х в MIT . Это единственная основанная на Macsyma система, все еще публично доступная и имеющая активное сообщество пользователей благодаря своей открытости. Macsyma произвела в свое время переворот в компьютерной алгебре и оказала влияние на многие другие системы, в числе которых Maple и Mathematica.
Работу над Maxima вел Уильям Шелтер с 1982 года и до своей кончины в 2001 году. В 1998 году он получил разрешение на публикацию исходного кода под лицензией GPL. Выживание Maxima стало возможным только благодаря его усилиям и способностям, мы очень благодарны ему за уделенные проекту время и знания эксперта, которые поддерживали код DOE Macsyma актуальным и качественным. После его кончины была сформирована группа пользователей и разработчиков, ставящая своей целью донести Maxima до широкой аудитории.
Рисунок 5-Эмблема программы Maple
Maple
Минимальные требования к системе:
процессор Pentium III 650 МГц;
128 Мбайт оперативной памяти (рекомендуется 256 Мбайт);
400 Мбайт дискового пространства;
операционные системы: Windows NT 4 (SP5)/98/ME/2000/2003 Server/XP Pro/XP Home.
Программа Maple— своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде. Отметим, что символьный анализатор программы Maple является наиболее сильной частью этого ПО, поэтому именно он был позаимствован и включен в ряд других CAE-пакетов, таких как MathCad и MatLab.
Maple предоставляет удобную среду для компьютерных экспериментов, в ходе которых пробуются различные подходы к задаче, анализируются частные решения, а при необходимости программирования отбираются требующие особой скорости фрагменты. Пакет позволяет создавать интегрированные среды с участием других систем и универсальных языков программирования высокого уровня. Когда расчеты произведены и требуется оформить результаты, то можно использовать средства этого пакета для визуализации данных и подготовки иллюстраций для публикации. Для завершения работы остается подготовить печатный материал (отчет, статью, книгу) прямо в среде Maple, а затем можно приступать к очередному исследованию. Работа проходит интерактивно — пользователь вводит команды и тут же видит на экране результат их выполнения. При этом пакет Maple совсем не похож на традиционную среду программирования, где требуется жесткая формализация всех переменных и действий с ними. Здесь же автоматически обеспечивается выбор подходящих типов переменных и проверяется корректность выполнения операций, так что в общем случае не требуется описания переменных и строгой формализации записи. Интерфейс Maple основан на концепции рабочего поля или документа, содержащего строки ввода-вывода и текст, а также графику.
Maplesoft продаёт как студенческую, так и академическую и профессиональную версии Maple, с существенной разницей в цене ($124, $1555 и $2845, соответственно). Также доступна версия для персонального использования по цене $299, лицензионное соглашение которой не подразумевает применения системы в коммерческих, научных и учебных целях. Недавние студенческие версии (начиная с шестой) не имели вычислительных ограничений, но поставлялись с меньшим объёмом печатной документации. Так же различаются студенческая и профессиональная версии пакета Mathematica.
MatLab
MATLAB (сокращение от англ. «Matrix Laboratory», в русском языке произносится как Матла́б) — пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux,Mac OS, и Microsoft Windows.
Минимальные требования к системе:
процессор Pentium III, 4, Xeon, Pentium M; AMD
Athlon, Athlon XP, Athlon MP;
256 Мбайт оперативной памяти;
400 Мбайт дискового пространства
(только для самой системы MatLab и ее Help);
операционная система Microsoft Windows 2000 (SP3)/XP.
Система MatLab относится к среднему уровню продуктов, предназначенных для символьной математики, но рассчитана на широкое применение в сфере CAE (то есть сильна и в других областях). MatLab — одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций.
В системе MatLab также существуют широкие возможности для программирования. Ее библиотека C Math (компилятор MatLab) является объектной и содержит свыше 300 процедур обработки данных.
Язык MATLAB является высокоуровневым интерпретируемым языком программирования, включающим основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования. Программы, написанные на MATLAB, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции сохраняются в виде текстовых файлов и компилируются в машинный код динамически. Существует также возможность сохранять так называемые pre-parsedпрограммы — функции и скрипты, обработанные в вид, удобный для машинного исполнения. В общем случае такие программы выполняются быстрее обычных, особенно если функция содержит команды построения графиков.
Библиотека C Math позволяет пользоваться следующими категориями функций:
операции с матрицами;
сравнение матриц;
решение линейных уравнений;
разложение операторов и поиск собственных значений;
нахождение обратной матрицы;
поиск определителя;
вычисление матричного экспоненциала;
элементарная математика;
функции beta, gamma, erf и эллиптические функции;
основы статистики и анализа данных;
поиск корней полиномов;
фильтрация, свертка;
быстрое преобразование Фурье (FFT);
интерполяция;
операции со строками;
операции ввода-вывода файлов и т.д.
Таким образом, систему MatLab можно использовать для обработки изображений, программу MatLab можно использовать для восстановления испорченных изображений, шаблонного распознавания объектов на изображениях или же для разработки каких-либо собственных оригинальных алгоритмов обработки изображений, для создания математических моделей динамических систем, основанных на наблюдаемых входных/выходных данных. А что касается математических вычислений, то MatLab предоставляет доступ к огромному количеству подпрограмм, содержащихся в библиотеке NAG Foundation Library компании Numerical Algorithms Group Ltd (инструментарий имеет сотни функций из различных областей математики, и многие из этих программ были разработаны широко известными в мире специалистами). Это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Таким образом, MatLab вобрала и опыт, и правила, и методы математических вычислений, накопленные за тысячи лет развития математики. Одну только прилагаемую к системе обширную документацию вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению.
Из недостатков системы MatLab можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (а между тем объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MatLab-программ. Сегодня система MatLab широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.
Рисунок 7-Эмблема программы Mathcad
MathCad
Mathcad — система компьютерной алгебры из класса систем автоматизированного проектирования, ориентированная на подготовку интерактивных документов с вычислениями и визуальным сопровождением, отличается лёгкостью использования и применения для коллективной работы.
Минимальные требования к системе:
Процессор: 32-битный или 64-битный (x86-64, EM64T) с тактовой частотой 400 МГц или выше (рекомендуется 700 МГц).
256 МБ оперативной памяти (рекомендуется 512 Мб).
1,75 Гб свободного дискового пространства (350 Мб для Mathcad, 1,4 Гб для временных файлов во время установки).
Привод CD-ROM или DVD (только для установки с диска).
Графическая карта SVGA или выше.
Монитор XGA с разрешением 1024×768 (или выше) c 24-битными (или больше) цветами.
Мышь или другое совместимое указывающее устройство.
В отличие от мощного и ориентированного на высокоэффективные вычисления при анализе данных пакета MatLab, программа MathCad— это, скорее, простой, но продвинутый редактор математических текстов с широкими возможностями символьных вычислений и прекрасным интерфейсом. MathCad не имеет языка программирования как такового, а движок символьных вычислений заимствован из пакета Maple. Зато интерфейс программы MathCad очень простой, а возможности визуализации богатые. Все вычисления здесь осуществляются на уровне визуальной записи выражений в общеупотребительной математической форме. Пакет имеет хорошие подсказки, подробную документацию, функцию обучения использованию, целый ряд дополнительных модулей и приличную техническую поддержку производителя. Однако пока математические возможности MathCad в области компьютерной алгебры намного уступают системам Maple, Mathematica, MatLab. Однако по программе MathCad выпущено много книг и обучающих курсов, в том числе у нас в России. Для небольшого объема вычислений MathCad идеален — здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде. Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft Excel прямо внутри MathCad-документа.
В общем, MathCad — это очень простая и удобная программа, которую можно рекомендовать широкому кругу пользователей, в том числе не очень сведущих в математике, а особенно тем, кто только постигает ее азы.
Заключение
Когда-то системы символьной математики были ориентированы исключительно на узкий круг профессионалов и работали на больших компьютерах (мэйнфреймах). Но с появлением ПК эти системы были переработаны под них и доведены до уровня массовых серийных программных систем. Сейчас на рынке сосуществуют системы символьной математики самого разного калибра — от рассчитанной на широкий круг потребителей системы MathCad до компьютерных монстров Mathematica, MatLab и Maple, имеющих тысячи встроенных и библиотечных функций, широкие возможности графической визуализации вычислений и развитые средства для подготовки документации.
Отметим, что практически все эти системы работают не только на персональных компьютерах, оснащенных популярными операционными системами Windows, но и под управлением операционных системы Linux, UNIX, Mac OS, а также на КПК. Они давно знакомы пользователям и широко распространены на всех платформах — от наладонника до суперкомпьютера.
В настоящее время научное программирование претерпевает серьезную трансформацию: развиваются интегрированные среды, основанные на алгоритмических языках, и растет применение универсальных математических систем (Maple, Mathematica, MATLAB, MatCad и др.). Эти системы имеют дружественный интерфейс, реализуют множество стандартных и специальных математических операций, снабжены мощными графическими средствами и обладают собственными языками программирования. Все это предоставляет широкие возможности для эффективной работы специалистов разных профилей, о чем говорит активное применение математических пакетов в научных исследованиях и в преподавании. С помощью этих пакетов проще готовить и выполнять задания, устраивать демонстрации и гораздо быстрее решать исследовательские и инженерные задачи.
Конечным продуктом исследования выступают публикации, подготовка, распространение и использование которых в настоящее время требует квалифицированного применения компьютера. Это касается редактирования текста, изготовления графических материалов, ведения библиографии, размещения электронных версий в Интернет, поиска статей и их просмотра. Де-факто сейчас стандартными системами подготовки научно-технических публикаций являются различные реализации пакета TeX и текстовый редактор Word. Кроме того, необходимы минимальные знания о стандартных форматах файлов, конверторах, программах и утилитах, используемых при подготовке публикаций.
Математические пакеты Maple и MATLAB — интеллектуальные лидеры в своих классах и образцы, определяющие развитие компьютерной математики. Компьютерная алгебра Maple вошла составной частью в ряд современных пакетов, численный анализ от MATLAB и наборы инструментов (Toolboxes) уникальны. Сами пакеты постоянно совершенствуются, развивая аппарат и пополняя ресурсы. Пакет Maple и вычислительная среда MATLAB — мощные и хорошо организованные системы, надежные и простые в работе. Освоение даже части их возможностей даст несомненный эффект, а по мере накопления опыта придет настоящая эффективность от взаимодействия с ними.
В заключение, отметим, что пользователь пакетов компьютерной математики должен иметь представление об основных численных методах. Вообще говоря, появление современных вычислительных систем значительно облегчает доступ к компьютеру непрофессионалам в области программирования, и поддерживает постоянное стремление к их усовершенствованию и освоению новых компьютерных технологий.
Список использованных источников
Википедия [Электронный ресурс]: свободная энциклопедия, которую может редактировать каждый. Издается с 15 января 2001 года. - Режим доступа: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0— Загл. с экрана.
Картинки Google [Электронный ресурс]: бесплатные картинки по разным темам. - Режим доступа: www.google.com/imghp?hl=ru — Загл. с экрана.
КомпьютерПресс [Электронный ресурс]: первый в России ежемесячный компьютерный журнал «КомпьютерПресс» издавался с 1989 по 2013 год. - Режим доступа: http://compress.ru/article.aspx?id=16152 .