Современные математические пакеты
Использование системы компьютерной алгебры в научных, инженерных, математических и компьютерных областях. Математика как современная система программирования на базе одного из самых мощных проблемно-ориентированных языков функционального программирования.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 22.03.2019 |
Размер файла | 799,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Современные математические пакеты
Дудницкая А.А.
Научный руководитель Кобрунов А.И.
Ухта, Ухтинский государственный технический университет
Символьная, или, как еще говорят, компьютерная, математика либо компьютерная алгебра, -- большой раздел математического моделирования. В принципе, программы такого рода можно отнести к инженерным программам автоматизированного проектирования. В области инженерного проектирования выделяют три основных раздела:
CAD -- Computer Aided Design (система автоматизированного проектирования);
CAM -- Computer Aided Manufacturing (автоматизированное проектирование и производство);
CAE -- Computer Aided Engeneering (системы автоматизации инженерных расчётов).
Сегодня масса отраслей, а также учебные заведения технической направленности уже не могут обойтись без систем автоматизированного проектирования (САПР), производства и расчетов. Всего каких-нибудь 10 лет назад эти системы считались сугубо профессиональными, но середина 90-х годов стала переломным моментом для мирового рынка CAD/CAM/CAEсистем массового применения. Тогда, впервые за долгое время, пакеты для параметрического моделирования с промышленными возможностями стали доступны пользователям персональных компьютеров. Создатели подобных систем учли требования широкого круга пользователей и таким образом дали возможность десяткам тысяч инженеров и математиков использовать на своих персональных рабочих местах новейшие достижения науки в области технологий CAD/CAM/CAE-систем.
Wolfram Mathematica -- система компьютерной алгебры, используемая во многих научных, инженерных, математических и компьютерных областях. Изначально система была придумана Стивеном Вольфрамом, в настоящее время разрабатывается компанией Wolfram Research.
Компания Wolfram Reseach, Inc., разработавшая систему компьютерной математики Mathematica, по праву считается старейшим и наиболее солидным игроком в этой области. Пакет Mathematica повсеместно применяется при расчетах в современных научных исследованиях и получил широкую известность в научной и образовательной среде. Можно даже сказать, что Mathematica обладает значительной функциональной избыточностью (там, в частности, есть даже возможность для синтеза звука).
Рисунок 1 - Графические возможности Mathematica
Mathematica -- это, с одной стороны, типичная система программирования на базе одного из самых мощных проблемно-ориентированных языков функционального программирования высокого уровня, предназначенная для решения различных задач (в том числе и математических), а с другой -- интерактивная система для решения большинства математических задач в диалоговом режиме без традиционного программирования. Таким образом, Mathematica как система программирования имеет все возможности для разработки и создания практически любых управляющих структур, организации ввода-вывода, работы с системными функциями и обслуживания любых периферийных устройств, а с помощью пакетов расширения появляется возможность подстраиваться под запросы любого пользователя. В системе Mathematica были добавлены новые обширные сферы применения--ещё более расширяя не имеющую себе равных базу алгоритмических, информационных возможностей и возможностей пользовательского интерфейса системы Mathematica.
Ключевые идеи:
• максимальное количество встроенных знаний. В отличие от других языков программирования, философия Wolfram Language подразумевает встроить в язык максимальное количество знаний - алгоритмы и фактическую информацию о мире. В язык встроена самая большая база алгоритмов и пригодных для вычислений знаний. Это данные из тысяч различных сфер, которые курируются компанией Wolfram Researh;
• максимальная автоматизация. У программиста должна быть возможность сосредоточиться на том, что он хочет получить, а язык должен автоматически объяснять, как этого достичь. Язык содержит тысячи уникальных метаалгоритмов для автоматического выбора исполняемых алгоритмов, автоматизации процессов программирования, презентаций, работы с интерфейсами;
• максимальная единообразность дизайна. Элегантная и единообразная структура языка должна обеспечивать совместимость между различными областями языка, предоставлять максимальную гибкость программных конструкций и повышать читабельность, понятность и предсказуемость кода;
• представление чего бы то ни было в виде символьных выражений. Представление данных, формул, кода, графики, документов, интерфейсов и прочего в символьном виде, что даёт большую гибкость в написании кода, а инкрементный подход подразумевает, что любой фрагмент кода может быть запущен. Подобный подход подразумевает возможность включить в код любой из перечисленных выше объектов;
• содержание встроенной обширной модели мира. Единицы измерения, даты, локации, данные из различных областей представляются с помощью расширемого символьного фреймворка;
• развёртывание языка где угодно. На локальном компьютере, в облаке, на мобильных устройствах, возможность быть встроенным; язык позволяет создать web API в любой программе, а также встроить язык в программную или аппаратную систему;
• удобные интерфейсы. Символьные выражения позволяют стандартизировать взаимодействия с внешними данными и программами; также язык поддерживает работу с устройствами реального времени и создание связей через собственное облако Wolfram Cloud;
• интегрированный процесс написания и исполнения кода позволяет сразу же тестировать написанные участки кода, визуализировать результаты и проводить аналитику, что позволяет реализовать инкрементное и исследовательское программирование;
• создание программ любого размера. Программы на Wolfram Language могут содержать как всего несколько строк, так и несколько миллионов, и их могут разрабатывать как один человек, так и большой коллектив, что обеспечивается заточенной под масштабное программирование средой. К примеру, Mathematica, почти полностью написана на Wolfram Language (лишь небольшая часть кода написана на Си).
• максимальная выразительность языка обеспечивается его символьным характером, что позволяет использовать как привычные парадигмы, так и недавно появившиеся;
• максимально долгая обратная совместимость. Программы, написанные 25 лет назад, могут быть запущены и в современных версиях системы. Практическая часть
1) График функции двух переменных и изображение списка функции двух переменных
Рисунок 2. 3D изображение функции двух переменных
()()
Рисунок 3. Восстановление сигнала с помощью преобразования Фурье
MATLAB (сокращение от англ. «Matrix Laboratory) -- пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете. MATLAB используют более 1000000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая Linux, Mac OS, и Microsoft Windows.
Система MatLab -- одна из старейших, тщательно проработанных и проверенных временем систем автоматизации математических расчетов, построенная на расширенном представлении и применении матричных операций.
В системе MatLab также существуют широкие возможности для программирования. Ее библиотека C Math (компилятор MatLab) является объектной и содержит свыше 300 процедур обработки данных.
Язык MATLAB является высокоуровневым интерпретируемым языком программирования, включающим основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-ориентированные возможности и интерфейсы к программам, написанным на других языках программирования. Программы, написанные на MATLAB, бывают двух типов -- функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции сохраняются в виде текстовых файлов и компилируются в машинный код динамически. Существует также возможность сохранять так называемые preparsed программы -- функции и скрипты, обработанные в вид, удобный для машинного исполнения. В общем случае такие программы выполняются быстрее обычных, особенно если функция содержит команды построения графиков.
В состав MatLab входит среда GUIDE для создания приложений с графическим интерфейсом пользователя. Работа в этой среде достаточно проста - элементы управления (кнопки, раскрывающиеся списки и т.д.) размещаются при помощи мыши, а затем программируются события, которые возникают при обращении пользователя к данным элементам управления.
Приложение может состоять как из одного основного окна, так и нескольких окон и осуществлять вывод графической и текстовой информации, в основное окно приложения и в отдельные окна. Ряд функций MatLab предназначен для создания стандартных диалоговых окон открытия и сохранения файла, печати, выбора шрифта, окна для ввода данных и др., которыми можно пользоваться в собственных приложениях.
Таким образом, систему MatLab можно использовать для обработки изображений, программу MatLab можно использовать для восстановления испорченных изображений, шаблонного распознавания объектов на изображениях или же для разработки каких-либо собственных оригинальных алгоритмов обработки изображений, для создания математических моделей динамических систем, основанных на наблюдаемых входных/выходных данных. А что касается математических вычислений, то MatLab предоставляет доступ к огромному количеству подпрограмм, содержащихся в библиотеке NAG Foundation Library компании Numerical Algorithms Group Ltd (инструментарий имеет сотни функций из различных областей математики, и многие из этих программ были разработаны широко известными в мире специалистами). Это уникальная коллекция реализаций современных численных методов компьютерной математики, созданных за последние три десятка лет. Таким образом, MatLab вобрала и опыт, и правила, и методы математических вычислений, накопленные за тысячи лет развития математики. Одну только прилагаемую к системе обширную документацию вполне можно рассматривать как фундаментальный многотомный электронный справочник по математическому обеспечению.
Из недостатков системы MatLab можно отметить невысокую интегрированность среды (очень много окон, с которыми лучше работать на двух мониторах), не очень внятную справочную систему (а между тем объем фирменной документации достигает почти 5 тыс. страниц, что делает ее трудно обозримой) и специфический редактор кода MatLab-программ. Сегодня система MatLab широко используется в технике, науке и образовании, но все-таки она больше подходит для анализа данных и организации вычислений, нежели для чисто математических выкладок.
Практическая часть
В программном пакет MATLAB была написана программа для решения задачи электроразведки в однородной среде.
Рассмотрим плоское электромагнитное поле, распространяющееся в направлении оси z.
clear; % очистка рабочей области clc; % очистка экрана
s=0.01; % удельная электропроводность m=4*pi*10^(-7); % проницаемость
d=(1/(36*pi))*10^(-9); % диэлектрическая проницаемость w=2*pi*10.^[-1:0.1:7]; % частота
k=sqrt(i*w*m*s-(w.^2)*m*d); % волновое число figure(1); clf; semilogx (w,real(k)); grid; figure(2); clf; semilogx (w,imag(k)); grid;
Z=[0:1:1000]; % глубина
W=w(50)
K=sqrt(i*W*m*s-(W.^2)*m*d)
Ex=exp(-K*Z);
figure(3); clf; plot(Z,real(Ex)); grid; figure(4); clf; plot(Z,imag(Ex)); grid;
Рисунок 13 - Действительная часть (Re) от волнового числа.
Рисунок 14 - Мнимая часть от волнового числа.
Рисунок 15 - Действительная часть напряженности электрического поля.
Рисунок 16 - Мнимая часть напряженности электрического поля.
Вывод: данная программа позволяет решать задачи электроразведки в однородной среде.
MATHCAD -- система компьютерной алгебры из класса систем автоматизированного проектирования, ориентированная на подготовку интерактивных документов с вычислениями и визуальным сопровождением, отличается лёгкостью использования и применения для коллективной работы.
В отличие от мощного и ориентированного на высокоэффективные вычисления при анализе данных пакета MatLab, программа MathCad-- это, скорее, простой, но продвинутый редактор математических текстов с широкими возможностями символьных вычислений и прекрасным интерфейсом. MathCad не имеет языка программирования как такового, а движок символьных вычислений заимствован из пакета Maple. Зато интерфейс программы MathCad очень простой, а возможности визуализации богатые. Все вычисления здесь осуществляются на уровне визуальной записи выражений в общеупотребительной математической форме. Пакет имеет хорошие подсказки, подробную документацию, функцию обучения использованию, целый ряд дополнительных модулей и приличную техническую поддержку производителя. Однако пока математические возможности MathCad в области компьютерной алгебры намного уступают системам Maple, Mathematica, MatLab. Однако по программе MathCad выпущено много книг и обучающих курсов, в том числе у нас в России. Для небольшого объема вычислений MathCad идеален -- здесь все можно проделать очень быстро и эффективно, а затем оформить работу в привычном виде. Пакет имеет удобные возможности импорта/экспорта данных. Например, можно работать с электронными таблицами Microsoft Excel прямо внутри MathCad-документа.
В общем, MathCad -- это очень простая и удобная программа, которую можно рекомендовать широкому кругу пользователей, в том числе не очень сведущих в математике, а особенно тем, кто только постигает ее азы.
В настоящее время научное программирование претерпевает серьезную трансформацию: развиваются интегрированные среды, основанные на алгоритмических языках, и растет применение универсальных математических систем (Maple, Mathematica, MATLAB, MatCad и др.). Эти системы имеют дружественный интерфейс, реализуют множество стандартных и специальных математических операций, снабжены мощными графическими средствами и обладают собственными языками программирования. [6] Все это предоставляет широкие возможности для эффективной работы специалистов разных профилей, о чем говорит активное применение математических пакетов в научных исследованиях и в преподавании. С помощью этих пакетов проще готовить и выполнять задания, устраивать демонстрации и гораздо быстрее решать исследовательские и инженерные задачи.
В заключение, отметим, что пользователь пакетов компьютерной математики должен иметь представление об основных численных методах. Вообще говоря, появление современных вычислительных систем значительно облегчает доступ к компьютеру непрофессионалам в области программирования, и поддерживает постоянное стремление к их усовершенствованию и освоению новых компьютерных технологий.
алгебра математика программирование компьютерный
Библиографический список
1. Таранчук В.Б. Основные функции систем компьютерной алгебры. -- Минск: БГУ, 2013.
2. Говорухин, В. Компьютер в математическом исследовании: Maple, MATLAB, LaTeX / В. Говорухин, В. Цибулин. - Спб.: Питер, 2001. - 624 с.
3. Дьяконов В.П. Системы символьной математики Mathematica 2 и Mathematica
4. Справочное издание. М.: СК ПРЕСС. - 1998.- 328 c.
5. В.Ф. Очков. MATLAB 7 Pro для студентов и инженеров. М: КомпьютерПресс, 1998. -384 с.
Размещено на Allbest.ru
...Подобные документы
Основные этапы развития языков программирования. Характеристика машинно-ориентированной, проблемно-ориентированной и процедурно-ориентированной систем программирования. Ознакомление с системами программирования Delphi, Visual Basic и Visual C++.
курсовая работа [102,4 K], добавлен 21.07.2012Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014Языки программирования низкого и высокого уровней и среды реализации. Особенности процедурных, логических, объектно-ориентированных языков. Состав системы программирования: трансляторы, библиотеки и отладчик программ, компоновщик, средства редактирования.
презентация [11,9 K], добавлен 23.10.2013Этапы развития языков программирования. Способы решения системы линейных алгебраических уравнений методом Крамера, рассмотрение особенностей. Анализ языка программирования С++. С # как прямой потомок двух самых успешных в мире компьютерных языков.
курсовая работа [770,2 K], добавлен 27.01.2013Сущность и функции языков программирования, их эволюция и оценка популярности различных видов. Особенности компьютерных программ, разработанных на компилируемом, интерпретируемом или смешанном языке. Основные классы и иерархия языков программирования.
презентация [873,4 K], добавлен 23.01.2013Популярная система компьютерной математики, предназначенная для автоматизации решения массовых математических задач в самых различных областях науки, техники и образования. Основные возможности Mathcad, назначение и интерфейс, графика и развитие.
презентация [3,5 M], добавлен 01.04.2014Описание современных языков программирования (Паскаль, Ассемблер, С++, Бейсик, Лого, Форт, Пролог, Рефал и Лекс). Понятие, назначение и составные элементы систем программирования (машинно-ориентированных и машинно-независимых систем программирования).
курсовая работа [96,3 K], добавлен 18.08.2010Классификация языков программирования. Использование циклических конструкций и выполнение итерационных процессов. Алгоритмические структуры циклов языков C, C++, Java, C#. Особенности современных языков программирования высокого уровня и их применение.
курсовая работа [345,6 K], добавлен 13.11.2009Характеристика языков программирования: краткая история, хронология. Основные виды языков программирования: ассемблер; бейсик. Создание и использование формул в Excel. Применение операторов в формулах. Использование функций в Excel. Сайт дома отдыха.
отчет по практике [139,1 K], добавлен 03.06.2011История развития и классификация высокоуровневых языков логического программирования. Определение понятий графического интерфейса, сетевых протоколов и моделей баз данных. Современные системы программирования компании Borland/Inprise и фирмы Microsoft.
курсовая работа [72,3 K], добавлен 11.07.2011Классификация систем автоматического программирования по различным критериям, представление о направлениях развития автоматизации программирования, функциональная структура САП Техтран. Проблемно-ориентированный язык программирования оборудования с ЧПУ.
книга [1,4 M], добавлен 14.03.2010Оценка современного этапа развития компьютерных технологий. История развития, классификации, сведения и уровни языков программирования. Обзор современных языков программирования: Си, его разовидности, Паскаль, Фортран, Бейсик - тенденция их развития.
курсовая работа [46,5 K], добавлен 22.12.2010Рассмотрение общих сведений и уровней языков программирования. Ознакомление с историей развития, использования языков программирования. Обзор достоинств и недостатков таких языков как Ассемблер, Паскаль, Си, Си++, Фортран, Кобол, Бейсик, SQL, HTML, Java.
курсовая работа [759,5 K], добавлен 04.11.2014Использование объектно-ориентированного программирования - хорошее решение при разработке крупных программных проектов. Объект и класс как основа объектно-ориентированного языка. Понятие объектно-ориентированных языков. Языки и программное окружение.
контрольная работа [60,1 K], добавлен 17.01.2011Сущность универсальных математических пакетов MathCad, MathLab, Mathematica, Maple. Описание интерфейса программ, вычислительные способности, построение графиков. Языки программирования. Электронные книги - приложения к ним. Основные достоинства MathCad.
презентация [8,2 K], добавлен 06.01.2014Основные концепции языков программирования, механизмы типизации данных. Описание языков программирования и методов трансляции. Конечные автоматы и преобразователи. Общие методы синтаксического анализа. Формальные методы описания языкового перевода.
курс лекций [5,5 M], добавлен 04.12.2013Функции и основные компоненты систем программирования. Средства создания программ. Трансляторы языков программирования. Принципы и фазы работы компилятора, трансформация языка программирования в машинный код. Механизм преобразования интерпретатора.
презентация [3,3 M], добавлен 07.02.2012Ознакомление с понятием компьютерных игр и их основными жанрами. Выбор сюжета игры и среды программирования. Отрисовка графики; проведение функционального и интерфейсного тестирования программы. Анализ условий труда в данной компьютерной лаборатории.
дипломная работа [3,2 M], добавлен 13.07.2014Построение компилятора с языка высокого уровня как одного из элементов системы программирования. Разработка компилятора ассемблера, модификация базы данных исходного макета. Загрузчик, эмулятор, отладчик. Использование Flex и Bison для программирования.
курсовая работа [599,0 K], добавлен 04.11.2014Понятия языка программирования, разновидности и характеристика языков. Исторический обзор их создания и применения. Классификация, примеры использования. Характеристики языков программирования с точки зрения элементов объектной модели, их популярность.
реферат [463,6 K], добавлен 07.09.2009