Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СП Мат Проблемы Информатики.doc
Скачиваний:
1
Добавлен:
22.11.2019
Размер:
355.84 Кб
Скачать

МАТЕМАТИЧЕСКИЕ ПРОБЛЕМЫ ИНФОРМАТИКИ

Методы и алгоритмы решения типовых математических задач с применением вычислительной техники носят название численных методов. К типовым задачам относят[2]:

  • Алгебра: решение систем линейных уравнений, обращение матриц, поиск собственных значений и векторов матриц (ограниченная и полная проблема собственных значений), поиск сингулярных значений и векторов матриц, решение нелинейных алгебраических уравнений, решение систем нелинейных алгебраических уравнений;

  • Дифференциальные уравнения: дифференцирование и интегрирование функций одного или нескольких переменных, решение обыкновенных дифференциальных уравнений, решение уравнений с частными производными, решение систем дифференциальных уравнений, решение интегральных уравнений;

  • Оптимизация: изучение минимальных и максимальных значений функционалов на множествах;

  • Исследование операций и теория игр: минимаксные задачи (в частности, для многошаговых игр);

  • математическое программирование: задачи аппроксимации, задачи интерполяции, задачи экстраполяции.

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

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

Символьная, или, как еще говорят, компьютерная, математика либо компьютерная алгебра, — большой раздел математического моделирования. В принципе, программы такого рода можно отнести к инженерным программам автоматизированного проектирования. Таким образом, в области инженерного проектирования выделяют три основных раздела:

  • CAD — Computer Aided Design;

  • CAM — Computer Aided Manufacturing;

  • CAE — Computer Aided Engeneering.

CAD-системы (сomputer-aided design компьютерная поддержка проектирования) предназначены для решения конструкторских задач и оформления конструкторской документации (более привычно они именуются системами автоматизированного проектирования САПР). Как правило, в современные CAD-системы входят модули моделирования трехмерной объемной конструкции (детали) и оформления чертежей и текстовой конструкторской документации (спецификаций, ведомостей и т.д.). Ведущие трехмерные CAD-системы позволяют реализовать идею сквозного цикла подготовки и производства сложных промышленных изделий.

В свою очередь, CAM-системы (computer-aided manufacturing компьютерная поддержка изготовления) предназначены для проектирования обработки изделий на станках с числовым программным управлением (ЧПУ) и выдачи программ для этих станков (фрезерных, сверлильных, эрозионных, пробивных, токарных, шлифовальных и др.). CAM-системы еще называют системами технологической подготовки производства. В настоящее время они являются практически единственным способом для изготовления сложнопрофильных деталей и сокращения цикла их производства. В CAM-системах используется трехмерная модель детали, созданная в CAD-системе.

САЕ-системы (computer-aided engineering поддержка инженерных расчетов) представляют собой обширный класс систем, каждая из которых позволяет решать определенную расчетную задачу (группу задач), начиная от расчетов на прочность, анализа и моделирования тепловых процессов до расчетов гидравлических систем и машин, расчетов процессов литья. В CAЕ-системах также используется трехмерная модель изделия, созданная в CAD-системе. CAE-системы еще называют системами инженерного анализа.

Существует некоммерческая отраслевая организация CAD Society (http://www.cadsociety.org ), занимающаяся вопросами популяризации CAD/CAM/CAE-систем в мире.

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

Всего каких-нибудь 10 лет назад эти системы считались сугубо профессиональными, но середина 90-х годов стала переломным моментом для мирового рынка CAD/CAM/CAE-систем массового применения. Тогда, впервые за долгое время, пакеты для параметрического моделирования с промышленными возможностями стали доступны пользователям персональных компьютеров. Создатели подобных систем учли требования широкого круга пользователей и таким образом дали возможность десяткам тысяч инженеров и математиков использовать на своих персональных рабочих местах новейшие достижения науки в области технологий CAD/CAM/CAE-систем.

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

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

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

Так что же делают эти программы и как они помогают математикам? Основу курса математического анализа в высшей школе составляют такие понятия, как пределы, производные, первообразные функций, интегралы разных видов, ряды и дифференциальные уравнения. Известны десятки правил нахождения пределов, взятия интегралов, нахождения производных и т.д. Если добавить к этому то, что для нахождения большинства интегралов нужно также помнить таблицу основных интегралов, то получается поистине огромный объем информации. И если какое-то время не тренироваться в решений подобных задач, то многое быстро забывается и для нахождения, например, интеграла посложнее придется уже заглядывать в справочники. Но ведь взятие интегралов и нахождение пределов в реальной работе не является главной целью вычислений. Реальная цель заключается в решении каких-либо проблем, а вычисления — всего лишь промежуточный этап на пути к этому решению.

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

Отметим только, что спектр задач, решаемых подобными системами, очень широк:

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

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

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

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

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

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

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

Mathematica (http://www.Wolfram.Com/ )

Минимальные требования к системе:

  • процессор Pentium II или выше;

  • 128 Мбайт оперативной памяти (рекомендуется 256 Мбайт или больше);

  • 400-550 Мбайт дискового пространства;

  • операционные системы: Windows 98/Me/ NT 4.0/2000/2003 Server/2003x64/XP/XP x64.

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

 

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

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

Отметим, что в разработках различных версий системы Mathematica, наряду с головной фирмой Wolfram Research, Inc., принимали участие другие фирмы и сотни специалистов высокой квалификации, в том числе математики и программисты. Система Mathematica является одной из самых крупных программных систем и реализует наиболее эффективные алгоритмы вычислений.

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

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

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

В результате Mathematica быстро заняла ведущие позиции на рынке символьных математических систем.

Центральное место в системах класса Mathematica занимает машинно-независимое ядро математических операций, которое позволяет переносить систему на различные компьютерные платформы. Ядро сделано достаточно компактным для того, чтобы можно было очень быстро вызвать из него любую функцию. Для расширения набора функций служат библиотека (Library) и набор пакетов расширения (Add-on Packages). Пакеты расширений готовятся на собственном языке программирования систем Mathematica и являются главным средством для развития возможностей системы и их адаптации к решению конкретных классов задач пользователя. Кроме того, системы имеют встроенную электронную справочную систему — Help, которая содержит электронные книги с реальными примерами.

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

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

 

В качестве более простых, но идеологически близких альтернатив программы Mathematica можно назвать такие пакеты, как Maxima (http://maxima.sourceforge.net /) и Kalamaris (developer.kde.org/~larrosa/kalamaris.html).

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