Android Linux Windows

Высшая математика командной строки — GNU Octave. Математические пакеты Основные этапы моделирования

Подбор программного обеспечения для успешного решения студенческих и научно-исследовательских задач в области математических и естественнонаучных дисциплин является очень важным вопросом. В настоящее время существуют мощные коммерческие математические программы с закрытыми исходными кодами: Matlab, Maple, Mathcad, Mathematica . Однако, существует большое количество свободно распространяемых программ, как с открытым, так и закрытом кодом. К свободно распространяем, относятся программы, которые выходят под лицензией GNU GPL и её различными модификациями. Данное открытое лицензионное соглашение разрешает запуск программы, её модификацию, свободное распространение копий исходного и исполняемого кода.

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

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

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

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

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

Таким образом, Mathematica– это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемноориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой - интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Кроме того,Mathematica, как система программирования, имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств. Здесь с помощью пакетов расширения (Add-ons ) появляется возможность подстраиваться под запросы любого пользователя, (хотя рядовому пользователю эти средства программирования могут и не понадобитьсяон вполне обойдется встроенными математическими функциями системы, поражающими своим обилием и многообразием даже опытных математиков).

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

В качестве более простых, но идеологически близких альтернатив программы Mathematica можно назвать такие пакеты, какMaxima .

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

Кроме того, сейчас у системы Maxima есть еще более мощный, эффективный и дружественный кроссплатформенный графический интерфейс, который называетсяWxmaxima.

СКМ Maple это своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде.

Пакет Maple это совместная разработка Университета Ватерлоо (шт. Онтарио, Канада) и Высшей технической школы (ETHZ, Цюрих, Швейцария)..

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

Пакет Maple состоит из ядра (процедур, написанных на языкеС и хорошо оптимизированных), библиотеки, написанной наMaple -языке, и развитого внешнего интерфейса. Ядро выполняет большинство базовых операций, а библиотека содержит множество командпроцедур, выполняемых в режиме интерпретации.

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

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

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

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

Система Maple предлагает различные способы представления, сокращения и преобразования выражений, например такие операции, как упрощение и разложение на множители алгебраических выражений и приведение их к различному виду. Таким образом, Maple можно использовать для решения уравнений и систем..Программу можно использовать для решения задач дифференциального и интегрального исчисления, вычисления пределов, разложений в ряды, суммирования рядов, умножения, интегральных преобразований (таких как преобразование Лапласа, Z-преобразование, преобразование Меллина или Фурье), а также для исследования непрерывных или кусочно-непрерывных функций.

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

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

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

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

Maple является первым универсальным математическим пакетом, который предлагает полную поддержку стандарта MathML 2.0, управляющего как внешним видом, так и смыслом математики в Интернете. Эта эксклюзивная функция делает текущую версию MathML основным средством Интернет-математики, а также устанавливает новый уровень совместимости многопользовательской среды. TCP/IP-протокол обеспечивает динамический доступ к информации из других Интернет-ресурсов, например к данным для финансового анализа в реальном времени или к данным о погоде.

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

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

К недостаткам системы Maple можно отнести лишь ее некоторую «задумчивость», причем не всегда обоснованную, а также очень высокую стоимость этой программы

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

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

Другая маленькая коммерческая математическая система Derive (текущая версия 6.1) существует уже довольно давно, но, конечно, не может рассматриваться как полноценная альтернатива Maple, хотя она и по сей день привлекательна своей нетребовательностью к аппаратным ресурсам ПК. Более того, при решении задач умеренной сложности она демонстрирует даже более высокое быстродействие и большую надежность решения, чем первые версии систем Maple и Mathematica. Впрочем, системе Derive трудно всерьез конкурировать с этими системами - как по обилию функций и правил аналитических преобразований, так и по возможностям машинной графики и по удобству пользовательского интерфейса. Пока чтоDerive является больше учебной системой компьютерной алгебры начального уровня.

И хотя новейшая версия Derive 6 под Windows уже имеет современный удобный интерфейс, он во многом уступает изысканному интерфейсу маститых конкурентов. А в плане возможности графической визуализации результатов вычислений Derive и вообще далеко отстает от конкурентов.

СКМ MatLab относится к среднему уровню продуктов, предназначенных для символьной математики, но рассчитана на широкое применение в сфере CAE (то есть сильна и в других областях).MatLab - это одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение и в самом названии системы -MATrix LABoratory , то есть матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что данная ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.

Несмотря на то, что изначально MatLab предназначалась исключительно для вычислений, в процессе эволюции (а сейчас выпущена уже версия 12), в дополнение к прекрасным вычислительным средствам, у фирмы Waterloo Maple для MatLab было приобретено ядро символьных преобразований, а также появились библиотеки, которые обеспечивают в MatLab уникальные для математических пакетов функции.

В системе MatLab также существуют широкие возможности для программирования. Ее библиотека C Math (компилятор MatLab) являетсяобъектной и содержит свыше 300 процедур обработки данных на языке C. Внутри пакета можно использовать как процедуры самой MatLab, так и стандартные процедуры языка C, что делает этот инструмент мощнейшим подспорьем при разработке приложений (используя компилятор C Math, можно встраивать любые процедуры MatLab в готовые приложения).

Библиотека C Math позволяет пользоваться следующими категориями функций:

    операции с матрицами;

    сравнение матриц;

    решение линейных уравнений;

    разложение операторов и поиск собственных значений;

    нахождение обратной матрицы;

    поиск определителя;

    вычисление матричного экспоненциала;

    элементарная математика;

    функции beta, gamma, erf и эллиптические функции;

    основы статистики и анализа данных;

    поиск корней полиномов;

    фильтрация, свертка;

    быстрое преобразование Фурье (FFT);

    интерполяция;

    операции со строками;

    операции ввода-вывода файлов и т.д.

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

Для визуализации моделирования система MatLab имеет библиотекуImage Processing Toolbox , которая обеспечивает широкий спектр функций, поддерживающих визуализацию проводимых вычислений непосредственно из среды MatLab, увеличение и анализ, а также возможность построения алгоритмов обработки изображений. Усовершенствованные методы графической библиотеки в соединении с языком программированияMatLab обеспечивают открытую расширяемую систему, которая может быть использована для создания специальных приложений, пригодных для обработки графики.

Основные средства библиотеки Image Processing Tollbox:

    построение фильтров, фильтрация и восстановление изображений;

    увеличение изображений;

    анализ и статистическая обработка изображений;

    выделение областей интересов, геометрические и морфологические операции;

    манипуляции с цветом;

    двумерные преобразования;

    блок обработки;

    средство визуализации;

    запись/чтение графических файлов.

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

Программу MatLab можно использовать для восстановления испорченных изображений, шаблонного распознавания объектов на изображениях или же для разработки каких-либо собственных оригинальных алгоритмов обработки изображений. Библиотека Image Processing Tollbox упрощает разработку высокоточных алгоритмов, поскольку каждая из функций, включенных в эту библиотеку, оптимизирована для максимального быстродействия, эффективности и достоверности вычислений. Кроме того, библиотека обеспечивает разработчика многочисленным инструментарием для создания собственных решений и для реализаций сложных приложений обработки графики. А при анализе изображений использование мгновенного доступа к мощным средствам визуализации помогает моментально увидеть эффекты увеличения, восстановления и фильтрации.

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

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

А что касается математических вычислений, то MatLab предоставляет доступ к огромному количеству подпрограмм, содержащихся в библиотеке NAG Foundation Library компании Numerical Algorithms Group Ltd (инструментарий имеет сотни функций из различных областей математики, и многие из этих программ были разработаны широко известными в мире специалистами). Это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Таким образом, MatLab вобрала и опыт, и правила, и методы математических вычислений, накопленные за тысячи лет развития математики. Одну только прилагаемую к системе обширную документацию вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению.

Из недостатков системы MatLab можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (а между тем объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MatLab-программ. Сегодня система MatLab широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.

Для проведения аналитических преобразований в MatLab используется ядро символьных преобразований Maple, а из Maple для численных расчетов можно обращаться к MatLab. Ведь недаром символьная математика Maple вошла составной частью в целый ряд современных пакетов, а численный анализ от MatLab и наборы инструментов (Toolboxes) уникальны. Математические пакеты Maple и MatLab - это интеллектуальные лидеры в своих классах, это образцы, определяющие развитие компьютерной математики.

В качестве более простых, но идеологически близких альтернатив программе MatLab можно отметить такие пакеты, как Octave ,KOctave иGenius .

Octave - это программа числовых вычислений, хорошо совместимая с MatLab. Интерфейс системы Octave, конечно, беднее, и у нее нет таких уникальных библиотек, как у MatLab, зато это очень простая в освоении программа, нетребовательная к системным ресурсам. Распространяется Octave на условиях открытой лицензии с исходным кодом (OpenSource) и может стать хорошим подспорьем для учебных заведений.

Программа KOctave по сути представляет собой более продвинутый графический интерфейс для системы Octave. В результате использования KOctave система Octave становится полностью похожей на MatLab.

Простенькая математическая программа Genius , естественно, не может поспорить по мощности с именитыми конкурентами, но идеология математических преобразований у нее сходна с MatLab и Maple. Распространяется Genius тоже на условиях открытой лицензии с исходным кодом (OpenSource). Она имеет собственный язык GEL, развитый инструментарий Genius Math Tool и хорошую систему подготовки документов для публикации (с использованием таких языков оформления, как LaTeX, Troff (eqn) и MathML). Очень хороший графический интерфейс программы Genius сделает работу с ней простой и удобной.

СКМ MathCad в отличие от мощного и ориентированного на высокоэффективные вычисления при анализе данных пакетаMatLab , программаMathCad (текущая версия 14-15) - это, скорее, простой, но продвинутый редактор математических текстов с широкими возможностями символьных вычислений и прекрасным интерфейсом.MathCad не имеет языка программирования как такового, а движок символьных вычислений заимствован из пакетаMaple . Зато интерфейс программыMathCad очень простой, а возможности визуализации богатые. Все вычисления здесь осуществляются на уровне визуальной записи выражений в общепринятой математической форме. Пакет имеет хорошие подсказки, подробную документацию, функцию обучения использованию, целый ряд дополнительных модулей и приличную техническую поддержку. Пока математические возможностиMathCad в области компьютерной алгебры намного уступают системамMaple ,Mathematica , MatLab и даже малютке Derive. Однако по программеMathCad выпущено много книг и обучающих курсов, в том числе у нас в России. Сегодня эта система стала буквально международным стандартом для студентов.

Для небольшого объема вычислений пакет MathCad просто идеален. Здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде (MathCad предоставляет широкие возможности для оформления результатов, вплоть до публикации в Интернете). Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft Excel прямо внутриMathCad -документа.

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

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

ПрограммаMaxima является потомком DOE Macsyma, которая начала свое существование в конце 1960 годав MIT (англ. Massachusetts Institute of Technology _Массачусетсский технологический институт).Maxima первая создала систему компьютерной алгебры, она проложила путь для таких программ,какMaple иMathematica. Главный вариантMaxim a разрабатывался Вильямом Шелтером с 1982 по2001 год. В 1998 году он получил разрешение на реализацию открытого кода на GPL. Благодаря егоумению Maxima сумела выжить и сохранить свой оригинальный код в рабочем состоянии. ВскореВильям передал Maxima группе пользователей и разработчиков, которые обеспечили ее поддержкуи развитие. На сегодняшний день пакет достаточно активно развивается и во многих отношенияхне уступает таким развитым системам компьютерной математики, как Maple или Matematica.

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

К программам численного моделирования и инженерных расчетов относится программа Scilab , развиваемая под лицензией CeCILL. Приложение является кроссплатформенным и может быть установлено в Linux, Windows, Mac OS. Все данные имеют матричное представление, при этом собственный язык программирования и синтаксисScilab полностью аналогичен коммерческому пакетуMatlab , что позволяет обучать студентов без затрат на покупку дорогостоящих программ. В дальнейшем, специалист может быстро и в полной мере освоить коммерческий продуктMatla b, если этого потребуют обстоятельства.

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

Математический пакет GNU Octave выпускается под лицензией GNU GPL. Приложение может работать с различными операционными системами. Переменные и данные представляются в виде матриц. Синтаксис языка программирования и формат команд аналогичен Scilab, Matlab . Помимо встроенных математических функций существует мощный инструментарий для создания пользовательских функций. УGNU Octav e существуют различные графические интерфейсы. Как иScilab данный пакет может быть заменой коммерческого пакетаMatlab в обучении.

Свободно распространяемым пакетом аналитических вычислений является пакет maxima . Программа ориентирована на проведение вычислений и преобразования символьных и численных выражений, начиная от упрощения алгебраических выражений до дифференцирования, интегрирования, разложения в ряд, преобразования Лапласа, решения дифференциальных уравнений, задач тензорной и линейной алгебры. Разработка данного пакета, как одного из направлений системы Macsyma, велась Уильмом Шелтером с 1982 года. После его смерти в 2001 году проект продолжил свое развитие. В настоящее время выполняется перевод документации maxima на русский язык. Программа работает в режиме командной строки, однако, существуют несколько графических оболочек: TeXmacs,wxMaxima, imaxima . Данный пакет по свой функциональности может использовать с замен коммерческих пакетовMaple, Mathematica .

Использование офисных пакет для построения научных и математических графиков наталкивается на значительную ограниченность возможностей точной настройки и визуализации функций, экспериментальных данных. Одним из пакет построения высококачественных графиков является пакет gnuplot, который интегрирован в большинство математических пакет как подсистема визуализации. Gnuplot - мобильный, графический пакет, запускаемый из командной строки, в различных операционных системах Linux, OS/2, MS Windows, и многих других. Исходные коды программы защищены авторскими правами, однако, распространяются бесплатно. Gnuplot разрабатывается специально для студенческих и научных задач с 1986 года. Пакет поддерживает разнообразные 2d, 3d графики в виде линий, точек, линий уровней, векторных полей, поверхностей и пользовательского текста на графиках. К отличительной особенности gnuplot можно отнести разнообразные возможности вывода готовых изображений: интерактивный экранный терминал, прямой вывод на графический плоттер или принтера, а так же в графические файлы eps, fig, jpeg, LaTeX, metafont, pbm, pdf, png, postscript, svg. Поэтому, gnuplot должен являться частью набора программ для построения графиков в студенческих и исследовательских работах.

Наиболее широкораспространённой системой верстки математических и технических текстов является издательская система LaTeX , созданная как пакет макрорасширений издательской системыTeX , автором которой является Дональд Кнут. В отличии от систем верстки текстов, где пользователь сразу видит расположение объектов и текста на макете страницы, в LaTeX автор не задумывается об оформлении текста. За дизайн страницы, размер шрифтов, отступов и т.п. отвечает стилевой файл, который и оформляет текст документа. Де факто, данная система верстки является стандартным форматом написания научных статей во всем мире. Помимо, предустановленных макрорасширений пользователь имеет возможность создавать свои макрокоманды для автоматизации набора текста. Унификация стандарта верстки сложных математических и научных статей позволяет автоматически создавать как статьи, так и презентационные слайды на основе одного и того текста, простой заменой стиля оформления документа. В обучении студентов математических специальностейLaTeX необходимо использовать для курсового и дипломного проектирования.

Обобщая вышесказанное, следует отметь, что использование математических программ открывают поистине безграничные возможности! Это связано с тем, что, CAE-системы охватывают практически все области математики и инженерных расчетов.

Когда-то системы символьной математики были ориентированы исключительно на узкий круг профессионалов и работали на больших компьютерах (мэйнфреймах). Но с появлением ПК эти системы были переработаны под них и доведены до уровня массовых серийных программных систем. В настоящее время на рынке сосуществуют системы символьной математики самого разного калибра: от системы, рассчитанной на широкий круг потребителей (системы MathCad), до компьютерных монстров (Mathematica, MatLab и Maple.

Практически все эти системы работают не только на персональных компьютерах, оснащенных популярными операционными системами Windows, но и под управлением операционных системы Linux, UNIX, Mac OS, а также на КПК. Они давно знакомы пользователям и широко распространены на всех платформах - от наладонника до суперкомпьютера.

С точки зрения распространения и использования программного обеспечения, программное обеспечение делят на закрытое/несвободное, открытое и свободное:

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

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

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

Впервые явно принципы свободного ПО были сформулированы в 70-х годах прошлого века Ричардом Мэттью Столлманом. В соответствие этим причинам, авторы свободных программ передают любому пользователю следующие права и свободы:

    «Нулевая свобода ». Программу можно свободно использовать с любой целью

    «Первая свобода ». Можно изучать, как программа работает, и адаптировать её для своих целей. Условием этого является доступность исходного кода программы.

    «Вторая свобода ». Можно свободно распространять копии программы.

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

Перечисленные принципы легли в основу первой лицензии свободного программного обеспечения GNU General Public License (GPL), созданной Фондом Свободного Программного Обеспечения (англ. Free Software Foundation, сокращённо FSF), который и был основан Столлманом. Одной из задач этого фонда является контроль за соблюдением условий лицензий, а так же отстаивание прав разработчиков и пользователей программного обеспечения разработанного под GPL.

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

На сегодняшний день, последней версией GPL является версия 3. После ее появления некоторые разработчики предпочли сохранить условия использования своих программ в рамках версии GPL 2.1, другие приняли новую, более строгую лицензию.

ПО с открытыми исходными кодами (Free Software/Open Source) - это ПО, которое дает вам права на свободу использования, копирования, распространения, обучения, улучшения и изменения программного обеспечения.

Эти "свободолюбивые правила", в течении последних лет дали большой толчок для создания сообществ разработчиков. GNU/Linux является одним из самых успешных примеров разработки, среди проектов сообществ Free Software/Open Source.

Свободное ПО ( FreeSostware ) программы для ПК, которые распространяются на условиях, предоставляющих пользователям четыре ключевые свободы (права):

    Свободное использование программного обеспечения в любых целях.

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

    Свободное распространение программного обеспечения (за деньги или безвозмездно).

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

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

Важнейшим следствием прав (2) и (4) является распространение свободной программы только при открытом доступе к её исходному коду.

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

Почему существует так много свободных лицензий? Чем они друг от друга отличаются?

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

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

Несмотря на то, что свободных лицензий насчитывается несколько десятков, их гораздо меньше, чем лицензий на несвободные программы. Каждый поставщик проприетарного ПО, как правило, имеет по одной или несколько различных лицензий для разных программ, в связи с чем, попытки систематизации и сопоставления условий лицензий на проприетарное ПО крайне затруднительны. В то же время в среде свободного ПО наиболее распространены пять-шесть лицензий, под которыми выходит большинство программ. К ним относятся:

Лицензия GNUGeneralPublicLicense - самая популярная на сегодняшний день свободная лицензия, текущая версия которой (3.0) опубликована Фондом свободного программного обеспечения 29 июня 2007 г. Текст лицензии отличает достаточно свободная форма изложения и в то же время юридическая точность.

GPL - одна из официальных лицензий проекта GNU, стоящего у истоков движения свободного ПО. На условиях GPL и ее специальной версии LGPL, допускающей в отдельных случаях сочетание с программами, распространяемыми на условиях иных лицензий, опубликованы такие принципиально важные разработки, как ядро операционной системыLinux , среда разработкиEmacs , набор компиляторовGCC и другие программы, которые входят в арсенал разработчиков ПО. Кроме того, GPL - первая лицензия, в которой оговорено условие копилефта (механизм сохранения свободы программы). Авторитет Фонда свободного программного обеспечения, последовательность позиций и продуманная юридическая техника принесли GPL заслуженную популярность среди разработчиков.

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

Рассказывать о программах математического моделирования и возможных областях их применения можно очень долго, но мы ограничимся лишь кратким обзором ведущих программ, укажем их общие черты и различия. В настоящее время практически все современные CAE-программы (Computer Aided Engineering, пакеты математического моделирования) имеют встроенные функции символьных вычислений.

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

Проведение математических исследований, требующих вычислений и аналитических выкладок;

Разработка и анализ алгоритмов;

Математическое моделирование и компьютерный эксперимент;

Анализ и обработка данных;

Визуализация, научная и инженерная графика;

Разработка графических и расчетных приложений.

Наиболее известными и приспособленными для математических символьных вычислений считаются следующие математические пакеты:

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

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

Рисунок 1. Mathematica

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

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

Программа Maple -- своего рода патриарх в семействе систем символьной математики и до сих пор является одним из лидеров среди универсальных систем символьных вычислений. Она предоставляет пользователю удобную интеллектуальную среду для математических исследований любого уровня и пользуется особой популярностью в научной среде. Отметим, что символьный анализатор программы Maple является наиболее сильной частью этого ПО, поэтому именно он был позаимствован и включен в ряд других CAE-пакетов, таких как MathCad и MATLAB, а также в состав пакетов для подготовки научных публикаций Scientific WorkPlace и Math Office for Word .

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

Рисунок 2. Maple

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

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

Система MATLAB, представленная на рисунке 3, относится к среднему уровню продуктов, предназначенных для символьной математики, но рассчитана на широкое применение в сфере CAE.

MATLAB -- одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций. Это нашло отражение и в самом названии системы -- MATrix LABoratory, то есть матричная лаборатория. Однако синтаксис языка программирования системы продуман настолько тщательно, что данная ориентация почти не ощущается теми пользователями, которых не интересуют непосредственно матричные вычисления.

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

Рисунок 3. MATLAB

Из недостатков системы MATLAB можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MATLAB-программ (рисунок 4). Сегодня система MATLAB широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.

В отличие от мощного и ориентированного на высокоэффективные вычисления при анализе данных пакета MATLAB, программа MathCad -- это, скорее, простой, но продвинутый редактор математических текстов с широкими возможностями символьных вычислений и прекрасным интерфейсом. MathCad не имеет языка программирования как такового, а движок символьных вычислений заимствован из пакета Maple. Зато интерфейс программы MathCad очень простой, а возможности визуализации богатые. Все вычисления здесь осуществляются на уровне визуальной записи выражений в общеупотребительной математической форме. Пакет имеет хорошие подсказки, подробную документацию, функцию обучения использованию, целый ряд дополнительных модулей и приличную техническую поддержку производителя. Однако пока математические возможности MathCad в области компьютерной алгебры намного уступают системам Maple, Mathematica, MATLAB. Однако по программе MathCad выпущено много книг и обучающих курсов. Сегодня эта система стала международным стандартом для технических вычислений, и даже многие школьники осваивают и используют MathCad.

Рисунок 4. MathCad

Для небольшого объема вычислений MathCad идеален -- здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде (MathCad предоставляет широкие возможности для оформления результатов, вплоть до публикации в Интернете). Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft MS Excel прямо внутри MathCad-документа .

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

В качестве более дешевых, простых, можно отметить такие пакеты, как UMS, Microsoft MS Excel.

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

Отметим, что практически все эти системы работают не только на персональных компьютерах, оснащенных популярными операционными системами Windows, но и под управлением операционных системы Linux, UNIX, Mac OS, а также на КПК .

Перейдем к пакетам наиболее часто используемых в школах при проведении уроков математики в старших классах. К ним относятся: Universal Math Solver (UMS), Microsoft MS Excel.

Программа UMS - "Универсальный математический решатель" позволяет решать задания из многих разделов алгебры и анализа. Знания "Универсального решателя" охватывают почти весь курс по алгебре и анализу средней школы и первых курсов вузов .

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

Если смотреть на практическую ценность Universal Math Solver шире, то приложение с успехом сослужит службу родителям, привыкшим контролировать выполнение домашних заданий ребёнком, и учителям математики. Последние могут использовать интерактивные возможности программы в учебном процессе, возлагая объяснение решений задач на "плечи" электронного педагога.

Universal Math Solver поставляется в двух редакциях - стационарной и сетевой. Стоимость годичной лицензии за одну инсталляцию первой версии составляет 3000 тенге, цена сетевой редакции - в три раза выше .

Рисунок 5. Universal Math Solve

К сожалению, в школьной практике нет возможности использовать такие мощные математические пакеты, как Mathematica, Mathcad, MathLab, Maple из-за дороговизны их лицензионных копий. Однако офисные приложения MS Office есть в каждой школе. Применение математической оболочки офисного табличного процессора MS Excel позволяет решать математические задачи высокой сложности.

  • Tutorial

# wget https://dl.fedoraproject.org/pub/epel/7/x86_64/ # yum localinstall epel-release-6-7.noarch.rpm

И только после этого yum install octave сработает.
Наконец, все готово и программа установлена.


# octave GNU Octave, version 3.8.2 Copyright (C) 2014 John W. Eaton and others. This is free software; see the source code for copying conditions. There is ABSOLUTELY NO WARRANTY; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, type "warranty". Octave was configured for "x86_64-redhat-linux-gnu". Additional information about Octave is available at http://www.octave.org. Please contribute if you find this software useful. For more information, visit http://www.octave.org/get-involved.html Read http://www.octave.org/bugs.html to learn how to submit bug reports. For information about changes from previous versions, type "news". octave:1>

Операции с матрицами

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


Сперва простое транспонирование матрицы:


octave:1> A= A = 1 3 5 2 4 6 octave:2> A" ans = 1 2 3 4 5 6

Попробуем решить систему линейных уравнений:


x + y + z = 9 2x + 4y - 3z = 1 3x + 6y - 5z = 0

Вбиваем матрицу A , вектор b и решаем уравнение Ax = b в матричном виде


octave:1> A= A = 1 1 1 2 4 -3 3 6 -5 octave:2> b= b = 9 1 0 octave:3> x=A\b x = 7.00000 -1.00000 3.00000

Находим детерминант и собственные значения матрицы.


octave:4> det (A) ans = -1.00000 octave:5> eig (A) ans = -2.88897 2.76372 0.12525

Комплексные числа тоже поддерживаются в вычислениях.


octave:6> A=[-3 0 2; 1 -1 0; -2 -1 0] A = -3 0 2 1 -1 0 -2 -1 0 octave:7> x=det (A) x = -6 octave:8> y=eig(A) y = -1.00000 + 1.41421i -1.00000 - 1.41421i -2.00000 + 0.00000i

Функции и переменные

В Octave переменные и функции создавать гораздо проще, чем, к примеру, в Java или C. На примере матриц, мы уже видели как объявлять переменные. Создания новой функции имеет следующий синтаксис


function = имя_функции (arg1, arg2, ..., argN) тело функции endfunction
Как правило, новую функцию создают либо в отдельном файле, либо в скрипт-файле Octave
до первого ее вызова. Если предполагается использовать пользовательскую функцию в разных скрипт-файлах, то, конечно, предпочтительно создать ее в отдельном файле. В GNU Octave файлы с функциями имеют расширение.m и загружаются автоматически. Имя файла должно строго совпадать с именем функции.

Напишем функцию для решения квадратичного уравнения ax² + bx + c = 0


octave:9> function = quadr(a, b, c) > D = sqrt(b^2-4*a*c); > x1 = (-b-D)/(2*a); > x2 = (-b+D)/(2*a); > endfunction octave:10> =quadr(a, b, c) y1 = 2 y2 = 3

Графический интерфейс

Вообще-то, мы тут за математику командной строки гутарим, но пока непонятно как вывести на экран график функции. Впрочем, никакого секрета тут нет - для этих целей используется Gnuplot . можно изобразить Аттрактор Лоренца , установив дополнительный пакет odepkg .


function = froessler (vt, vx) vyd = [- (vx(2) + vx(3)); vx(1) + 0.2 * vx(2); 0.2 + vx(1) * vx(3) - 5.7 * vx(3)]; endfunction A = odeset ("MaxStep", 1e-1); = ode78 (@froessler, , , A); subplot (2, 2, 1); grid ("on"); plot (t, y(:,1), "-b;f_x(t);", t, y(:,2), "-g;f_y(t);", \ t, y(:,3), "-r;f_z(t);"); subplot (2, 2, 2); grid ("on"); plot (y(:,1), y(:,2), "-b;f_{xyz}(x, y);"); subplot (2, 2, 3); grid ("on"); plot (y(:,2), y(:,3), "-b;f_{xyz}(y, z);"); subplot (2, 2, 4); grid ("on"); plot3 (y(:,1), y(:,2), y(:,3), "-b;f_{xyz}(x, y, z);");


Наиболее удобной графической оболочкой для работы с Octave является программа QtOctave . Последняя уже стабилизировалась и включена в состав пакета с момента выхода Octave 4.0 .

Что-же дальше?

Может возникнуть вопрос: а зачем вообще нужны открытые математические пакеты? Офисные приложения нужны всем, но ведь далеко не каждому необходимо сидя дома решать уравнения Пуассона, с помощью преобразования Лапласа. Для ВУЗ-ов MATLAB стоит значительно дешевле, нежели для физических лиц и коммерческих организаций. Коммерческие организации, если будет нужно, найдут денежные средства, а обычные люди пусть занимаются математикой в университетах или считают столбиком.


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

Прикладные программные пакеты

Прикладные библиотеки

Вспомогательное ПО

Компиляторы

MPI

Средства анализа эффективности

Библиотеки

Использование GUI на кластере

Пакет AmberTools

AmberTools представляет собой набор программ для биомолекулярного моделирования и анализа. Пакет коммерческий. Доступная версия AmberTools12.

Программа установлена на суперкомпьютере "Ломоносов"

Пакет FireFly (PC-GAMESS)

Для работы с пакетом НЕОБХОДИМА лицензия. Даже если у вас она уже есть, обратитесь к автору программы (А.Грановскому) и запросите разрешение работать на суперкомпьютере. После получения разрешения, вам будет открыт доступ к программе.

Пакет FlowVision

Программа установлена на суперкомпьютере "Ломоносов".

Пакет Gmsh

Gmsh - это бесплатный трехмерный генератор конечноэлементных сеток со встроенными пре- и постпроцессорным.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Текущая версия ПО

на Ломоносов - 3.0.5,

на Ломоносов-2 - 3.0.6, 3.0.7

Путь в файловой системе, куда установлен пакет

Ломоносов 2

Путь в файловой системе, куда установлен пакет

Суперкомпьютер "Ломоносов-2" (Версия 2015.1.29)

Результаты тестирования производительности пакета NAMD на суперкомпьютере "Ломоносов" и сравнение с Cray XE6 доступно по ссылке

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Пакет netCFD 4.1.3

NetCDF (network Common Data Form) - набор интерфейсов для доступа к массивам научных данных и свободно распространяемыые библиотеки для С, Фортран, С++, Java и других языков. Библиотеки netCDF поддерживают машинно-независимое представление данных. Сайт проекта: https://www.unidata.ucar.edu/software/netcdf/

Настроить окружение для работы с пакетом можно следующими командами:
module load intel; module load impi

Программа установлена на суперкомпьютере "Ломоносов".

Пакет Octave

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

Программа установлена на суперкомпьютере "Ломоносов".

Путь в файловой системе, куда установлен пакет

/opt/software/octave-4.0.1/

Пакет OpenFOAM

На СК "Ломоносов" пакет собран в нескольких вариантах, но мы рекомендуем последнюю версию, установленную в каталог /opt/software/OpenFOAM-2.3.1 . Предварительно необходимо загрузить модуль openfoam/2.3.1. Перед использованием пакеты необходимо выполнить команду source /opt/software/OpenFOAM-2.3.1/etc/bashrc .

Пакет собран с IntelMPI, поэтому при запуске используйте скрипт-обёртку impi .

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Путь в файловой системе, куда установлен пакет

Программа установлена на суперкомпьютере "Ломоносов".

Пакет Schrodinger

Программный пакет Schrodinger - это программное обеспечение для молекулярного моделирования и проектирования, использующее как лигандные, так и структурные методы.

Программа установлена на суперкомпьютере "Ломоносов-2".

Название и версия ПО

Schrödinger’s Release 2018-1, Schrödinger’s Release 2017-4

Пакет коммерческий есть триальная версия

Контакты для технической поддержки (производителя ПО)

Связаться с технической поддержкой можно через форму на сайте , так же на это странице есть “база знаний в которой можно попробывать найти ответ на свой вопрос”

Путь в файловой системе, куда установлен пакет

/opt/software/schrodinger2018-1

/opt/software/schrodinger2017-4

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

  1. Распаковать скаченный дистрибутив:

tar -xvf Schrodinger_Internet_Download.tar

  1. Перейти в распакованный каталог:

cd Schrodinger_Internet_Download

  1. Запустить установочный скрипт:
  1. Ввести информацию запрашиваемую установочным скриптом

Описание процедуры тестирования пакета

В данном пакете предусмотрена процедура диагностики, для диагностики запустите утилиту diagnostics котороая запускает проверки и сообщает результаты

/opt/software/schrodinger2018-1/installation_check

/opt/software/schrodinger2017-4/diagnostics

Пакет SPILADY

SPILADY - это компьютерная программа, написанная на Culham Center for Fusion Energy, Управление по атомной энергии Соединенного Королевства, Oxfordshire OX14 3DB, Великобритания, с марта 2014 по июль 2015. Это код динамики спин-решетки, предназначенный для ввода в качестве вводного компьютерного инструмента моделирования для студентов, ученых, исследователей, и другие, знакомых с молекулярной динамикой.

Описание процедуры установки .

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Пакет Turbomole

Пакет для решения задач квантовой химии ab initio. - домашняя страница пакета. Информация по работе с пакетом на кластере "Ломоносов" - .

Программа установлена на суперкомпьютере "Ломоносов".

Для использования пакета загрузите модуль vasp.

Пример запуска: sbatch -p test -N 3 --ntasks-per-node 8 impi vasp_std

Путь установки программы на

Пакет WRF

WRF - Weather Research & Forecasting Model - м одель метеорологических исследований и прогнозирования представляет собой мезомасштабную численную систему прогнозирования погоды следующего поколения, предназначенную как для атмосферных исследований, так и для оперативного прогнозирования.

Программа установлена на суперкомпьютере "Ломоносов".

Установлен в директории пользователя

Контакты для технической поддержки (производителя ПО) .

Anaconda

Пакет Anaconda2 позволяет скачать и установить разные версии Python и разнообразные API для Python, причем все API уже преднастроены и проверены, что значительно упрощает задачи по разработке и обучению нейронных сетей и других научных проектов.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Для того, чтобы воспользоваться пакетом Anaconda 2 в ssh сессии на Лом-2 нужно выполнить команду:

module load anaconda2/2.5.0

Эта команда подгружает в окружение вашей сессии окружение Python 2.7 anaconda, так же это окружение имеет ряд предустановленных API Python, ознакомиться со списком API можно командой:

Данное окружение может редактировать только администратор кластера.

Jupyter Notebook

Jupyter Notebook - это веб-приложение с открытым исходным кодом, которое позволяет хранить вместе код, изображения, комментарии, формулы и графики. Включает в себя: очистку и преобразование данных, численное моделирование, статистическое моделирование, визуализацию данных, машинное обучение и многое другое.

Для использования на Ломоносов-2 нужно настроить проброс X

Caffe

Среда для глубинного обучения, разработанная Янцином Цзя (Yangqing Jia) в процессе подготовки своей диссертации в университете Беркли. Caffe является открытым программным обеспечением, распространяемым под лицензией BSD license. Написано на языке C++, и поддерживает интерфейс на языке Python. Доступная версия caffe version 1.0.0

/opt/ccoe/caffe

Технические и другие вопросы можно задать

Программа установлена на суперкомпьютере "Ломоносов-2".

Keras

Keras - это высокоуровневый API нейронных сетей, написанный на Python и способный работать поверх TensorFlow, CNTK или Theano. Он был разработан с упором на возможность быстрого экспериментирования.

Keras позволяет:

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

Программа установлена на суперкомпьютере "Ломоносов-2".

MATLAB_Runtime

MATLAB Runtime - это автономный набор общих библиотек, который позволяет выполнять скомпилированные приложения или компоненты MATLAB. Пакет распространяется под лицензией MATLAB RUNTIME LICENSE если вы запускаете с помощью данного пакета скомпилированные приложения Matlab.

Текущая версия ПО

Путь в файловой системе, куда установлен пакет

Программа установлена на суперкомпьютере "Ломоносов".

Программа установлена на суперкомпьютере "Ломоносов-2".

Torchvision

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

Программа установлена на суперкомпьютере "Ломоносов-2".

Компиляторы GNU

набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL и GNU LGPL и является ключевым компонентом GNU toolchain. Он используется как стандартный компилятор для свободных UNIX-подобных операционных систем.

Программа установлена на суперкомпьютере "Ломоносов".

Компиляторы Intel (языки C/C++, Fortran77/Fortran90)

поддерживают и различные уровни оптимизации для 32-х и 64-х разрядных приложений в одном пакете, и технологию параллельного программирования OpenMP, что позволяет создавать эффективные программы для современных многоядерных процессоров. С компиляторами поставляется символьный отладчик Intel Debugger, который может работать в режимах совместимости с gdb или dbx и интегрируется с такими графическими оболочками для отладки, как ddd, Eclipse, Allinea. Отладчиком поддерживаются как многонитевые приложения OpenMP, так и написанные с использованием интерфейса native threads. Порожденные нити автоматически попадают под контроль отладчика, причем большинство его команд можно применять либо к одной, либо ко всем нитям одновременно.

Текущая версия: 12.0.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Intel VTune Amplifier XE 2011

новейший профилировщик производительности Inte VTune™ Amplifier XE создан на базе популярного анализатора производительности Intel. Он включает все функции Intel Parallel Amplifier, а также ряд дополнительных функциональных возможностей, специально предназначенных для разработчиков, которым нужен более комплексный подход.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Библиотека ACML

AMD Core Math Library (Основная математическая библиотека AMD) — библиотека, выпущенная компанией AMD . Эта библиотека реализует поддержку полезных математических функций, оптимизированных под процессоры производства AMD, но хорошо работает и для процессоров Intel.

Программа установлена на суперкомпьютере "Ломоносов".

Intel Composer XE

Инструменты для программирования кластеров объединены в пакет Intel Composer XE . Сюда входит библиотека Intel MPI, оптимизированная параллельная математическая библиотека Intel Cluster MKL и специальный инструмент Intel Trace Analyzer & Collector , предназначенный для создания эффективных масштабируемых параллельных программ.

Программа установлена на суперкомпьютере "Ломоносов".

Текущая версия: 2015.0.090.
Сайт: https://software.intel.com/en-us/intel-devtools-by-os/linux

Intel MPI Library

Библиотека Intel® MPI Library повышает производительность приложений в кластерах на базе архитектуры Intel®, реализуя высокопроизводительную спецификацию MPI-2 в нескольких инфраструктурах. Благодаря использованию данной библиотеки обеспечивается максимальная производительность конечного пользователя даже при изменении или обновлении межкомпонентных соединений. При этом значительные модификации программного обеспечения или операционной среды не требуются. Воспользуйтесь этой высокопроизводительной библиотекой интерфейса прохождения сообщений для разработки программ, которые могут работать в нескольких кластерных коммуникационных соединениях, выбранных пользователем в процессе выполнения приложения. Корпорация Intel также предоставляет бесплатный комплект рабочей среды для продуктов, разработанных при помощи библиотеки Intel MPI. Обеспечьте себе наилучшую в своем классе эффективность работы высокопроизводительных вычислительных систем корпораций, подразделений, отделов и рабочих групп

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

Текущая версия: 5.0.1 ("Ломоносов")
Сайт: https://software.intel.com/en-us/mpi-library/documentation/get-started

PGI compiler

PGI Workstation - комплект компиляторов и инструментов для научных и инженерных целей. PGI Workstation доступен в редакциях для Fortran и C/C++. Включает в себя компиляторы Fortran 2003, FORTRAN 77,HPF для распараллеливания и оптимизации ПО,компиляторы OpenMP C++ и ANSI C. Компилятор C++ следует за ANSI-стандартом и поддерживает cfront версий 2 и 3. Все функции С++ совместимы с функциями Fortran и С. PGI Workstation включает в себя параллельного отладчика PGDBG OpenMP и MPI и компонент оптимизации профиля PGPROF, которые могут удалять баги и профилировать до восьми локальных MPI-процессов.Также содержит предварительно скомпилированную библиотеку передачи сообщений MPICH. Присутствует поддержка CUDA Fortran, ACML, OpenACC, FMA4

Текущая версия ПО

Путь в файловой системе, куда установлен пакет

Текущая версия: 11.2.0 ("Ломоносов")
Сайт: https://software.intel.com/mkl

OpenMPI

Open MPI является наследником LAM/MPI и поддерживается консорциумом партнеров из областей науки, разработчиков и производителей. OpenMPI - открытая бесплатная реализация технологии MPI-2. Она может использоваться для проведения параллельных расчётов на вычислительных кластерах.

  • полная поддержка MPI-2;
  • работа в гетерогенной среде;
  • Поддержжка работы под управлением системы очередей;
  • Работа в 32- и 64-битных средах;
  • Высокая производительность на всех платформах;
  • Высокая переносимость;
  • Хорошая масштабируемость;

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

PathScale Compiler Suite

компилятор для архитектуры с высокой степенью оптимизации. Является развитием компилятора MIPSPro, созданного компанией для микропроцессоров MIPS R10000. Разработан американской компанией PathScale

Программа установлена на суперкомпьютере "Ломоносов".

Python

Python — высокоуровневый язык программирования, ориентированный на повышение производительности разработчика и читаемости кода. Пакет свободный распространяется под лицензией Python Software Foundation License. Для установки нужной версии Python на Ломоносов-2 используется Пакет anaconda он позволяет создать окружение Python и устанавливать API для него.

Программа установлена на суперкомпьютерах "Ломоносов" и "Ломоносов-2".

TotalView

Проприетарный отладчик для языков Си Си++ и Фортран, который работает на UNIX-совместимых ОС и Mac OS X, на нескольких платформах. Он позволяет контролировать нити исполнения (потоки,thread), показывать данные одного или всех потоков, может синхронизировать нити через точки останова. В отладчик также интегрированы средства для нахождения утечек памяти (позже стал доступен также и в виде отдельной программы MemoryScape) и для отладки кучи (heap-based memory allocation). TotalView включает возможность проверки изменений во время отладки. Он поддерживает удаленную отладку, а также параллельные программы, использующие MPI, OpenMP, UPC, GlobalArrays. Установлен на значительном количестве суперкомпьютеров из списка top500. Отлаживает программы, написанные на Си, Си++, Фортран.

Для использования предварительно выполните загрузку модуля:

module load totalview

Программа установлена на суперкомпьютере "Ломоносов".

Allinea DDT

Дебаггер Allinea DDT от компании Allinea Software предназначен специально для параллельных систем петафлопсных массштабов, то есть имеющих сотни тысяч процессорных ядер. Новая версия работает быстрее и более эффективна. Архитектура DDT такова, что время отклика пропорционально логарифму числа процессорных ядер. Тестировался и совершенствовался на реальных гигантских системах. Один из испытательных полигонов - суперкомпьютеры Cray XT5. Среди заказчиков - Министерство энергетики США.

Программа установлена на суперкомпьютере "Ломоносов".

ScaLAPACK

ScaLAPACK (Scalable Linear Algebra PACKage) — библиотека с открытым исходным кодом, включающая в себя подмножество процедур LAPACK, переработанных для использования на MPP-компьютерах, включая: решение систем линейных уравнений, обращение матриц, ортогональные преобразования, поиск собственных значений и др. В настоящее время она написана в стиле Single-Program-Multiple-Data с помощью явной передачи сообщений для межпроцессорного взаимодействия.

ScaLAPACK разработана с использованием PBLAS и BLACS, и предназначена для вычислений на любом компьютере или кластере поддерживающим MPI или PVM. Альтернативой ScaLAPACK является пакет функций PLAPACK.

Версия: 20120718

Программа установлена на суперкомпьютере "Ломоносов".

ATLAS

ATLAS (Automatically Tuned Linear Algebra Software) - библиотека, позволяющая автоматически генерировать и оптимизировать численное программное обеспечение для процессоров с многоуровневой организацией памяти и конвейерными функциональными устройствами. Базируется на BLAS 3 уровня (Level 3). ATLAS требует некоторого времени для изучения основных параметров архитектуры целевого компьютера, а затем на основе этих параметров получает "оптимальный" код.

Библиотека разработана в Argonne National Laboratory/MCS division. Распространяется бесплатно.

Программа установлена на суперкомпьютере "Ломоносов".

BLAS

BLAS (англ. Basic Linear Algebra Subprograms — базовые подпрограммы линейной алгебры) — стандарт де-факто интерфейса программирования приложений для создания библиотек, выполняющих основные операции линейной алгебры, такие как умножение векторов и матриц. Он был впервые опубликован в 1979, и использован для создания бо́льших пакетов, например LAPACK. Интенсивно используемые в высокопроизводительных вычислениях, высокооптимизированные реализации интерфейса BLAS были разработаны производителями аппаратного обеспечения, такими как Intel, а также другими авторами (например, ATLAS — переносимый самооптимизирующийся BLAS). Тест LINPACK Benchmark в своей работе основывается в большой степени на DGEMM, подпрограмме BLAS.

LAPACK

LAPACK (Linear Algebra PACKage) — библиотека с открытым исходным кодом, содержащая решатели основных задач линейной алгебры. Написана на языке Fortran с использованием другой библиотеки BLAS.

Программа установлена на суперкомпьютере "Ломоносов".

FFTW

Библиотека FFTW является набором модулей на языках Си и Фортран для вычисления быстрого преобразования Фурье (БПФ). FFTW позволяет работать как с действительными, так и с комплексными числами, с произвольным размером входных данных, т.е. с длиной данных, не обязательно являющейся числом, кратным 2n. Библиотека также включает модули параллельной обработки БПФ, которые позволяют использовать ее на многопроцессорных машинах с общей и распределенной памятью.

Программа установлена на суперкомпьютере "Ломоносов".

Проброс X

Иногда бывает нужно поработать с GUI утилитами на вычислительном кластере. Для этого понадобиться две программы Putty и Xming. Putty выступает клиентом SSH и передаёт данные xserver черех ssh. Xming это портированный X Window Server для Windows. Смысл в том, что Putty передаёт X-терминальные данные через SSH, а локальный X сервер отрисовывает картинку, в нашем случаи X сервером выступает Xming.