Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М

.pdf
Скачиваний:
1
Добавлен:
19.11.2023
Размер:
33.75 Mб
Скачать

ими, и библиотеку функций для выполнения необходимых базовых алгебраических' операций. Значительно раньше, еще в XIX столетии, Ж. Адамаром была осознана важность так называемых некорректно поставленных задач, для которых оказалось, что арифметика, реализованная традиционным способом, не обладает точностью, дос­ таточной для реализации численных алгоритмов их решения. Поэтому уже в начале 60-х годов прошлого столетия велись интенсивные научные исследования алгоритмов выполнения арифметических операций над числами произвольной длины и произ­ вольного диапазона (так называемая арифметика произвольной разрядности). Уже в середине 60-х годов появились малые ЭВМ, на которых арифметический операции были реализованы не традиционным аппаратным способом, а микропрограммно. В 1965 году в Киеве была создана одна из наиболее уникальных таких ЭВМ — МИР-1. Занимая совсем немного места (стол и тумбочка с пишущей машинкой) и обладая весьма скромной, даже по тем временам, памятью — всего 4 Кбайт, она обладала уникальными возможностями в проведении различных инженерных и научных расче­ тов. Так как эта машина практически полностью была спроектирована математиками, в ней отсутствовали дорогие технические решения. Зато она обладала входным язы­ ком высокого уровня (ассемблер отсутствовал, программа на входном языке высокого уровня интерпретировалась) и возможностью выполнения арифметических операций с произвольной (заданной в начале программы) разрядностью. Конечно, о миллионах цифр не приходилось даже и мечтать, так как программа и все данные должны были уместиться в памяти объемом 4 Кбайт. Чтобы скрыть недостаток финансирования (точнее, его следствие — малый объем памяти), по умолчанию разрядность равнялась 6 (десятичным разрядам). Однако многие задачи решались при разрядности 9, 10, 12, а то и 18-20 разрядов. Отдельные задачи решались при разрядности 100. Простота входного языка и арифметика произвольной разрядности обеспечили необычно ма­ ленькой (по тем временам) и дешевой машине больший успех, чем был у флагмана советской вычислительной техники — БЭСМ-6. Вместе с тем попытки решить новые и все более сложные задачи обнаружили ее основной недостаток — отсутствие воз­ можности выполнять аналитические выкладки. И уже через три года после появления МИР-1, в 1968 году была создана МИР-2, входной язык которой, хотя и являлся расширением входного языка машины МИР-1, имел недвусмысленное название — Аналитик. Это был первый, реализованный в СССР полноценный язык программи­ рования с возможностью выполнять “алгебраические” вычисления. И долгое время, вплоть до появления его очередной версии, он был лучшим.

Успех “алгебраических” вычислений был весьма ощутим, и уже в первой поло­ вине 70-х годов прошлого столетия появилось несколько систем компьютерной ал­ гебры; упомяну лишь CLAM (1972 г., машина CDC-6500, 20 000 слов, Ориентирова­ на на решение задач общей теории относительности), Reduce-2 (1973 г., машины CDC-6500, 65 000 слов, и IBM-360 (и ЕС-1040), 300 Кбайт, универсальная система), Авто-Аналитик (1973 г., машина БЭСМ-6, 30 000 слов, ориентирована на решение за­ дач математической физики) и Аналитик-74 (машина МИР-3). Если не считать Reduce-2 и Аналитик-74, у которых появились новые версии (знаменитый Reduce-З и Аналитик-79), все они довольно быстро доказали свою практическую непригодность. Ни в одной из упомянутых систем, за исключением Аналитика, например, нельзя было взять интеграл. (Интегрирование само по себе, правда, было предусмотрено в Авто-Аналитике, но фактически интеграл брался только в самых тривиальных слу­ чаях3*5.)

3 Аналитик и Авто-Аналитик, несмотря на сходство названий, представляют собой совер­ шенно разные языки. Кроме них, в СССР разрабатывались и другие системы компьютерной алгебры, например Сириус для машин М-20 и М-222, Амс для БЭСМ-6, а также несколько систем на основе языка Рефал. Но кто их помнит сейчас?

Исторический обзор и первое знакомство

23

Успех (или провал) систем первой половины 70-х годов прошлого столетия обу­ словил появление новых систем во второй половине этого же десятилетия. Для ре­ шения задач квантовой теории поля, в 1977 году в США на ассемблере машины CDC-6500 был реализован специальный язык программирования SCHOONCH1P. Но даже дифференцирование и матричная алгебра в нем предусмотрены не были. За­ то в том же 1977 году появилась знаменитая система MACSYMA, на долгие годы ставшая флагманом компьютерной алгебры.

В 80-х годах прошлого столетия вышло большое число новых систем (muMath, CoCoa, AlPi и др.). Тогда же успешно развивалась SCRATCHPAD-2 и активно попол­ нялись библиотеки Reduce. Одновременно MACSYMA переносилась на новые типы компьютеров и успешно завоевывала сердца и умы все более широких кругов пользо­ вателей. Однако уже в 1988 году появилась система Mathematica, почти сразу же (менее чем за год) занявшая ведущие позиции в области применений компьютерной алгебры...

В настоящее время есть множество таких систем, но широко используются, пожа­ луй, лишь Mathematica, Maple, MuPAD и Derive. Впрочем, в 90-е годы прошлого века широко использовалась также система Axiom, разработанная фирмой IBM. Все упо­ мянутые выше системы, так же как и большинство неупомянутых, являются весьма дружественными по отношению к пользователю. Конечно же, их языки отличаются, количество доступных функций в библиотеках варьируется от нескольких сотен до тысяч, внутренние структуры и даже используемые алгоритмы значительно отличают­ ся друг от друга, но все лидирующие системы имеют много общего.

Разработка, развитие и даже использование этих систем постепенно выделились в автономную научную дисциплину, относящуюся, очевидно, к информатике. Цель данной дисциплины — область искусственного интеллекта, несмотря на то что ее ме­ тоды все более и более удаляются от этой области. Кроме того, в алгоритмах компью­ терной алгебры используются все более тонкие математические средства и совсем не­ давно доказанные теоремы. Таким образом, этот раздел информатики лежит на стыке нескольких областей, что одновременно обогащает его и делает более трудным в ис­ следовательском плане.

Этот раздел информатики называется “Calcul former во французкой литературе и “Computer algebra” — в английской. В русской литературе используются термины “компьютерная алгебра”, “символьные и алгебраические вычисления”, “аналитические вычисления” и др.

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

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

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

24

.Гпава 1

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

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

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

Как начать

Каждый человек интуитивно вырабатывает свой стиль работы с системами иСкуственного интеллекта. Можно, например, рассматривать систему компьютерной алгеб­ ры просто как достаточно удобный графический калькулятор (инструмент). Чтобы научиться использовать систему Mathematica таким образом, прочтите соответствую­ щую главу из данной книги. Затем можно рассматривать систему Mathematica как по­ мощника в решении небольших и несложных примеров и задач из учебников. Для этого придется прочитать уже не одну, а несколько глав. Переходя к более сложным зада­ чам, необходимо осваивать теорию их решения и одновременно читать книги вроде этой. Однако, приступая к решению настоящих исследовательских задач, будьте гото­ вы столкнуться с рядом проблем: то компьютер слишком долго считает, то не хватает памяти, то получается формула на 5-10 страниц, а то машина выдает непредвиден­ ный ответ. Можете рассматривать данную книгу как упорядоченный набор примеров, правил, советов и комментариев, которые позволят обойти некоторые ямы и ловушки на этом пути.

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

Mathematica — лучшая современная интегрированная система компьютерной алгебры

Что такое система Mathematica

Система Mathematica — это полностью интегрированная система компьютерной ал­ гебры. Ее появление в 1988 году оказало очень большое влияние на использование компьютеров в науке и технике. Часто говорят, что именно появление системы Mathematica открыло эру применения компьютерной алгебры в научных и техниче­ ских вычислениях.

Исторический обзор и первое знакомство

25

Концепция системы Mathematica

Специализированные пакеты для решения численных, алгебраических, графиче­ ских и других задач появились еше в 60-х годах прошлого столетия. Но система Mathematica отличается от них концептуально: система Mathematica универсальна, так как она предназначена для любых научных и технических вычислений. Для этого в ней предусмотрен язык компьютерной алгебры, который позволяет описать широкий круг объектов, которые могут потребоваться в научных и технических вычислениях, причем в самом языке используется очень малое число первичных объектов.

Применение системы Mathematica

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

Кто использует систему Mathematica

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

Развитие системы Mathematica

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

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

Расширение системы Mathematica

Mathematica — это расширяемая система. Кроме внутренних команд ядра системы Mathematica, можно использовать дополнительные команды, которые содержатся в за­ гружаемых пакетах. Некоторые пакеты системы (по алгебре, анализу и т.д.) поставля­ ются вместе с самой программой и являются стандартными. Другие пакеты можно

26

Гпава 1

переписать с сервера компании Wolfram Research (www.wolfram.com/products/ applications, library.wolfram.com) или приобрести отдельно.

Чтобы выполнить команду из пакета Mathematica, надо сначала загрузить нужный пакет с помощью команды « d i r spackage' или « d i r '

Последняя команда инициализирует все пакеты из папки dir. Вот как, например, можно инициализировать все алгебраические пакеты: «Algebra'

Описание некоторых стандартных пакетов Mathematica

Ниже описаны важнейшие функции наиболее часто используемых пакетов систе­ мы Mathematica.

Алгебра — Algebra

Algebra 'Relm' Этот пакет содержит дополнительные тождества и функции для работы с комплексными числами и функциями.

Анализ — Calculus

Calculus'FourierTransform' В этом пакете содержится набор функций для численного преобразования Фурье. (Аналитические преобразования Фурье выполняет ядро.)

Calculus 'Limit' Здесь имеется усовершенствованная функция Limit для нахо­ ждения пределов выражений, содержащих широкий класс элементарных и специаль­ ных функций.

Calculus 'VariationalMethods' Этот пакет содержит набор функций, относя­ щихся к вариационному исчислению (вычисление вариаций и решение уравнений Эйлера-Лагранжа).

Calculus 'VectorAnalysis' В этом пакете содержится обширный набор функ­ ций векторного анализа для вычислений в различных трехмерных координатных сис­ темах.

Дискретная математика — DiscreteMath

DiscreteMath'Combinatorica' Этот пакет расширяет систему Mathematica бо­ лее чем на 450 функций, относящихся к комбинаторике и теории графов. Включает функции построения графов и других комбинаторных объектов, подсчета инвариантов этих объектов и вывода их на экран.

DiscreteMath'Permutations' Данный пакет предназначен для работы с пере­ становками. Все функции этого пакета в версии 5 содержатся в пакете

DiscreteMath'Combinatorica'

DiscreteMath'RSolve' Этот пакет используется при работе с последовательно­ стями, включая разностные уравнения, производящие функции последовательностей и т.д.

Геометрия — Geometry

Geometry' Polytopes' При использовании этого пакета можно работать с пра­ вильными многоугольниками и многогранниками.

Geometry 'Rotations' В этом пакете определены функции для вращения векто­ ров в двух- и трехмерном пространстве.

Исторический обзор и первое знакомство

27

Графика — Graphics

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

Graphics'Arrow' Этот пакет вводит графический примитив (линию со стрелкой), который полезен для вывода графиков.

Graphics'Colors' С помощью этого пакета вводятся дополнительные системы определения цвета; кроме того, здесь содержатся спецификации многих цветов.

Graphics' FilledPlot' Этот пакет содержит функции для рисования двухмерных графиков с закрашиванием некоторых областей различными цветами.

Graphics'Graphics' С помощью этого пакета можно рисовать двухмерные гра­ фики в различных системах координат с различными шкалами, а также выводить двухмерные диаграммы.

Graphics'Graphics3D' Этот пакет предназначен для рисования графиков по­ верхностей, линий и диаграмм со специальными эффектами.

Graphics' implicitPlot' Можно рисовать графики неявных функций, т.е. функций, заданных неявно (как решения уравнений).

Graphics'MultipleListPlot' Этот пакет содержит функцию для вывода значе­ ний нескольких списков на одном графике.

Graphics'PlotField' Здесь имеются функции рисования двухмерного вектор­ ного поля и поля градиента по заданному потенциалу.

Graphics'PlotField3D' Этот пакет предназначен для рисования трехмерных векторных полей.

Graphics 'Polyhedra' С помощью этого пакета можно нарисовать некоторые из­ вестные многогранники.

Graphics'Shapes' Этот пакет позволяет нарисовать некоторые трехмерные объ­ екты, такие как цилиндр, конус, тор, лента Мебиуса и т.д.

Graphics'Spline' В этом пакете определен графический примитив (сплайн) и связанные с ним функции.

Линейная алгебра — LinearAlgebra

LinearAlgebra' Cholesky' Этот пакет ранее использовался для вычисления раз­ ложения Холесского симметричной положительно определенной матрицы. В версии 5 необходимая функция определена в системе и загрузка пакета не нужна.

LinearAlgebra 'MatrixManipulation' Данный пакет включает функции для разложения матриц (на столбцы, строки и подматрицы) и составления новых матриц из блоков уже имеющихся матриц, а также для других манипуляций с матрицами.

LinearAlgebra' Orthogonalization' Этот пакет предназначен для нахождения ортонормированного базиса (проектирование, нормализация, мерод Грама-Шмидта).

Теория чисел — NumberTheory

NumberTheory' ContinuedFractions' Это пакет для работы с непрерывными (цепными) дробями.

NumberTheory' NumberTheoryFunctions ' В этом пакете определены многочис­ ленные теоретико-числовые функции.

28

Гпава 1

Численные методы — NumericalMath

NumericalMath'BesselZeros' Этот пакет предназначен для нахождения нулей различных функций Бесселя.

NumericalMath'CauchyPrincipalValue4 В этом пакете содержится функция для подсчета главного значения Коши для интеграла с особенностями.

NumericalMath'Listlntegrate4 Этот пакет позволяет вычислить интеграл таб­ лично заданной функции.

NumericalMath'NLimit' Здесь содержатся функции для нахождения численными методами производных, сумм, пределов.

NumericalMath'PolynomialFit' Этот пакет применить метод наименьших квад­ ратов для приближения функции полиномом заданной степени.

NumericalMath4SplineFit4. Данный пакет реализует интерполяцию сплайнами.

Статистика — Statistics

Statistics' Confidencelntervals' Здесь содержатся функции для расчета до­ верительных интервалов различных параметров статистического распределения.

Statistics'ContinuousDistributions' В этом пакете содержатся определения основных непрерывных статистических распределений.

Statistics' DescriptiveStatistics' Здесь имеются определения характери­ стик распределений, таких как среднее, дисперсия, мода, медиана и др. Эти характе­ ристики можно вычислять как для данных, заданных списками, так и для различных известных распределений, используя пакеты Statistics'DescriptiveStatistics',

Statistics'DiscreteDistributions'

Statistics' DiscreteDistributions' В этом пакете определены основные дис­ кретные статистические распределения.

Statistics ' NormalDistribution Здесь определены наиболее часто исполь­ зуемые непрерывные распределения, так или иначе связанные с нормальным (гаус­ совым) распределением. Все функции данного пакета имеются в пакете

Statistics'ContinuousDistributions', но данный пакет меньше по размеру и загружается быстрее.

Разное — Miscellaneous

Здесь содержится набор столь разнообразных пакетов, что затруднительно даже классифицировать их.

Miscellaneous'Units' Этот пакет часто используется студентами. Он позволяет преобразовывать единицы измерения различных физических величин.

Новое в версии Mathematica 5

Возможно, ранее вы "уже использовали какую-нибудь более раннюю версию систе­ мы Mathematica, например 2.2, 4.0 или 4.2. Стоит ли удалять старую версию и перехо­ дить на новую? На мой взгляд, стоит, потому что версия Mathematica 5 значительно усовершенствована для различных численных и символьных операций на основе ал­ горитмов нового поколения. Ниже приведен краткий список усовершенствований и расширений в различных областях.

Исторический обзор и первое знакомство

29

Численные расчеты

Давайте рассмотрим усовершенствования, внесенные в версию 5 в области чис­ ленных расчетов.

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

Заново оптимизированы операции линейной алгебры для разреженных матриц.

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

Введена команда LinearSolveFunction для решения линейных систем урав­ нений для векторов матриц.

Усовершенствованы методы линейного программирования.

Введены новые методы и поддержка массивов переменных в командах

FindRoot И FindMinimum.

Введена команда FindFit для нелинейной аппроксимации кривыми.

Введена команда глобальной оптимизации NMinimize.

Команда NDSolve может применяться для решения л-мерных уравнений с ча­ стными производными.

Команда NDSolve может применяться для решения алгебраических дифферен­ циальных уравнений.

В команде NDSolve можно использовать векторы и массивы.

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

Повышена точность и усилен контроль точности приближенных чисел.

Повышена эффективность арифметики больших чисел и включена оптимиза­ ция в зависимости от типа процессора.

Усовершенствованы алгоритмы теоретико-числовых операций, включая GCD и Factorlnteger.

Повышена эффективность основных статистических функций.

Символьные расчеты

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

Команда Reduce позволяет находить решение смешанных систем уравнений и неравенств.

Полностью решаются полиномиальные системы в поле действительных и ком­ плексных чисел.

Расширен класс решаемых диофантовых уравнений.

Введены функции (кванторы) ForAll и Exists и упрощение выражений с кванторами.

Улучшено представление дискретных и непрерывных алгебраических и транс­ цендентных множеств решений.

Введена команда Findlnstance для нахождения примеров решений уравнений и неравенств в различных областях изменения переменных.

Можно находить минимум в областях целых и действительных чисел.

30

Гпаеа 1

Введены функции Assuming и Refine для задания допущений.

Введена функция RSolve для решения рекуррентных уравнений.

Добавлена поддержка нелинейных и разностных уравнений и систем.

Полностью решаются рациональные системы обыкновенных дифференциаль­ ных уравнений.

Добавлена поддержка дифференциальных алгебраических уравнений.

Введена функция CoefficientArrays для конвертирования систем уравнений в массивы (тензоры).

Программирование и системное ядро

Существенно усовершенствованы в версии 5 средства программирования и систем­ ное ядро.

В язык программирования введена поддержка разреженных массивов.

Введены функции Sow и Reap, облегчающие обработку списков.

Введены опции EvaluationMonitor и StepMonitor для управления вычисле­ ниями.

Введено средство измерения времени — функция AbsoluteTiming.

Существенно увеличена производительность MathLink.

Добавлен модуль .NET/Link, позволяющий интегрировать пакет Mathematica с приложениями, использующими платформу Microsoft .NET Framework.

Добавлена возможность оптимизации под 64-разрядные операционные системы и архитектуры.

Поддерживаются вычисления в 64-разрядных адресных пространствах.

Интерфейс

В версии 5 значительно улучшен интерфейс.

Поддерживаются более 50 форматов экспорта и импорта.

Повышена эффективность экспорта и импорта табличных данных.

Добавлены новые форматы графики и изображений: PNG, SVG и DICOM.

Добавлены средства импорта и экспорта форматов разреженных матриц.

Введен формат MPS для линейного программирования.

Введен формат XHTML для экспорта рабочих документов.

Улучшен браузер подсказки.

Улучшенная поддержка слайд-шоу презентаций.

Улучшенная поддержка инструментов опубликования (AuthorTools).

Стандартные дополнительные пакеты

В программу Mathematica 5, помимо ранее имевшихся приложений, дополнитель­ но включены новые пакеты по статистике (Statistical plots and graphics) и полям алгеб­ раических чисел (Algebraic number fields).

Исторический обзор и первое знакомство

31

Резюме

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

Задачи

Задача 1.1. (Фракталы, размерность Хаусдорфа и самоподобие.) В 1918 году Феликс Хаусдорф ввел понятие размерности, оказавшееся впоследствии чрезвычайно полез­ ным. Фракталом называется любой геометрический объект, имеющий дробную (не­ целую) размерность Хаусдорфа. Фракталы отличны от простых классических (Евкли­ довых) фигур, таких как квадрат, многоугольник, круг, сфера и т.д. С их помощью можно описывать многие объекты “неправильной” формы, такие как береговые ли­ нии и горные цепи. Даже сам термин “фрактал”, введенный Бенуа Мандельбротом* (Benoit В. Mandelbrot), происходит от латинского слова fractus (“фрагментированный”, или “разбитый”).

Хотя ключевые концепции, связанные с фракталами, математиками изучались дли­ тельное время, а многие примеры фракталов (канторово множество, разнообразные кривые-“снежинки”) были давно известны, именно Мандельброт применил фракталы в прикладной математике для моделирования ряда разнообразных явлений — от пове­ дения физических объектов до поведения рынка. Введенная в 1975 году, концепция фрактала породила новую геометрию (фрактальную геометрию), которая существенно облегчила решение задач из таких областей, как физическая химия, физиология и гидроаэромеханика.

Многие фракталы, если не точно, то, по крайней мере, приблизительно, облада­ ют свойством самоподобия. Самоподобным называется объект, части которого по­ добны всему объекту. Иными словами, повторение подробностей строения объекта (т.е. его частей) наблюдается при все большем увеличении. Например, рассматривая мелкомасштабную карту, мы видим изрезанность береговой линии. Но и на более крупномасштабных картах, мы, как правило, увидим подобную картину (изрезан­ ность береговой линии сохраняется), а не прямую линию. В случае абстрактных (математических) объектов, таких как канторово множество, это может продолжаться неограниченно, так что любой элемент каждой части при увеличении будет выглядеть так же (или подобно), как некоторая фиксированная деталь всего объекта. Вот ти­ пичный пример: кривая-снежинка Коха (Helge von Koch), определенная в 1904 году Эта математическая кривая обладает шестикратной симметрией, подобно естествен­ ной снежинке. Она самоподобна в том, что состоит из нескольких идентичных частей, каждая из которых, в свою очередь, состоит из частей, которые являются точными уменьшенными копиями целого. Так что каждая из этих меньших частей тоже состав­ лена из элементов, которые являются уменьшенными копиями целого, и т.д. В при­ роде такое “рекурсивное” явление часто наблюдается в таких объектах, как снежинки4

4 Встречается также написание Мандельбройт. Знаменитый французский математик, дирек­ тор серии "Международные математические монографии" Родился в Варшаве 20 января 1899 года, окончил Парижский университет в 1923 году. Основные труды по теории функции действительного и комплексного переменного, теории чисел и функциональному анализу. Умер

в Париже в 1983 г.

32

Гпава 1