реферат, рефераты скачать
 

Система Mathematica 4


Следующие примеры показывают применение функции D для вычисления

производной в аналитическом виде:

Производная тригонометрической функции:

D[x*Sin[x],x]

xCos[x] + Sin[x]

Производная логарифмической функции:

D[Log[3*x/4],x]

1/x

Производная степенного многочлена:

D[а*х^2+b*х+с,х]

b+ 2ах

Пятая производная от хn:

D[х^n,{х,5}]

(-4 + n) (-3+n) (-2+n) (-1+n)nх-5+n

Вычисление интегралов

Одна из важнейших операций — вычисление первообразных и определенных

интегралов в символьном виде. Первообразная — это функция F(x),

удовлетворяющая уравнению

f(x)dx = F(x) + C,

где С — постоянная интегрирования. А вычисление определенного интеграла с

пределами — верхним b и нижним а — производится по формуле

f(X)dX = F(b)-F(a)

Заметим, что определенный интеграл может быть представлен как

аналитическим, так « численным значением. Для вычисления численных значений

определенных интегралов разработан ряд приближенных методов — от простых

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

характеру изменения подынтегральной функции f(x).

Для интегрирования в системе Mathematica используются следующие

функции:

Integrate [f, x] — возвращает первообразную (неопределенный интеграл)

подынтегральной функции f по переменной х;

Integrate [f, {x, xmin, xmax}] — возвращает значение определенного

интеграла с пределами от xmin до xmax;

Integrate [f, {x, xmin, xmax}, {у, ymin, ymax},...] —возвращает значение

кратного интеграла с пределами от xmin до xmax по переменной х, от ymin до

ymax по переменной у и т. д. (кратность реально не ограничена).

Обычно функция Integrate применяется в простейшей форме, но она имеет

три характерные опции:

Options[Integrate]

{Assumptions -> {}, GenerateConditions->Automatic,

PrincipalValue > False)

Для обозначения бесконечных пределов используется константа Infinity.

Эта константа означает положительную бесконечность, для задания

отрицательной бесконечности она используется со знаком «минус». Пределы

могут задаваться как константами, так и функциями.

10. Двумерная графика

Графическая функция Plot

Концептуально графики в системе Mathematica являются графическими

объектами, которые создаются (возвращаются) соответствующими графическими

функциями. Их немного, около десятка, и они охватывают построение

практически всех типов математических графиков. Как уже отмечалось,

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

Поскольку графики являются объектами, то они могут быть значениями

переменных. Поэтому Mathematica допускает следующие конструкции:

. Plot[Sin[x],{x,0,20}] — построение графика синусоиды;

. g:=Plot [Sin [x], {х, 0, 20} ] — задание объекта — графика синусоиды —

с отложенным выводом;

. g=Plot [Sin [x], {х, 0, 20} ] — задание объекта — графика синусоиды —

с немедленным выводом.

Начнем рассмотрение графических возможностей системы с построения

простейших графиков функций одной переменной вида у =f(x) или просто f(x).

График таких функций строится на плоскости, то есть в двумерном

пространстве. При этом используется прямоугольная (декартова) система

координат. График представляет собой геометрическое положение точек (х, у)

при изменении независимой переменной (абсциссы) в заданных пределах,

например от минимального значения xmin до максимального хтах с шагом dx. По

умолчанию строятся и линии координатной системы.

Для построения двумерных графиков функций вида f(x) используется встроенная

в ядро функция Plot:

. Plot [f, {x, xmin, xmax}] — возвращает объект, представляющий собой

график функции f аргумента х в интервале от xmin до xmax;

. Plot[{f1, f2,...}, {x, xmin, xmax}]— возвращает объект в виде графиков

ряда функций fi.

Функция Plot используется для построения одной или нескольких линий,

дающих графическое представление для указанных функций f, f1, f2 и т. д. На

рис. 4 показано построение графика функции sin(x)/x без использования каких-

либо опций (точнее, с набором опций по умолчанию).

[pic]

[pic]

[pic]

Рис. 4 Построение двумерного графика

Тут виден как раз тот случай, когда масштаб графика по вертикали

выбран системой неудачно — часть графика сверху просто отсекается. В

большинстве же случаев применение функции Plot позволяет получить вполне

«удобоваримый» график.

Опции функции Plot

По мере усложнения задач, решаемых пользователем, его рано или поздно

перестанут устраивать графики, получаемые при автоматическом выборе их

стиля и иных параметров. Для точной настройки графиков Mathematica

использует специальные опции графических функций Для вывода их списка надо

использовать команду Options [Plot]. Полный список опций дан в приложении.

Опции внутри.графических функций задаются своим именем name и значением

value в виде

name -> value

Наиболее распространённые символьные значения опций:

Automatic — используется автоматический выбор;

None — опция не используется;

All — используется в любом случае;

True — используется;

False — не используется.

Многие опции могут иметь числовые значения. В сомнительных случаях

рекомендуется уточнять форму записи опций и их значений по оперативной

справочной системе. Рассмотрим примеры применения опций двумерной графики.

С помощью опции Axes со значением None можно убрать с графика

отображение осей.

Часто возникает необходимость построения на одном рисунке нескольких

графиков одной и той же функции, но при разных значениях какого-либо

параметра — например, порядка специальных математических функций. В этом

случае они могут быть заданы в табличной форме..

Применение других опций позволяет задавать массу свойств графиков, например

цвет линий и фона, вывод различных надписей и т. д. Помимо представленных

примеров, полезно просмотреть и множество примеров построения двумерных

графиков, приведенных в справочной системе Mathematica.

Директивы двумерной графики

Еще одним важным средством настройки графиков являются графические

директивы. Синтаксис их подобен синтаксису функций. Однако директивы не

возвращают объектов, а лишь влияют на их характеристики. Используются

следующие основные директивы двумерной графики:

AbsoluteDashing [ {dl, d2,...}]— задает построение последующих линией

пунктиром со смежными (последовательными) сегментами, имеющими абсолютные

длины dl, d2, ... (повторяемые циклически). Значения длины di задаются в

пикселях;

AbsolutePointSize [d] — задает построение последующих точек графика в виде

кружков с диаметром d (в пикселях);

AbsoluteThickness [d] — задает абсолютное значение толщины (в пикселях) для

последующих рисуемых линий;

Dashing [{rl, r2,...}] — задает построение последующих линий пунктиром с

последовательными сегментами длиной rl, г2, ..., повторяемыми циклически,

причем ri задается как доля полной ширины графика;

PointSize [d] — задает вывод последующих точек графика в виде кружков с

относительным диаметром d, заданным как доля общей ширины графика;

Thickness [r] — устанавливает для всех последующих линий толщину г,

заданную как доля полной ширины графика.

Применение графических директив совместно с опциями позволяет создавать

графики самого различного вида, вполне удовлетворяющие как строгим

требованиям, так и различным «извращениям» в их оформлении.

Построение графика по точкам — функция List Plot

Часто возникает необходимость построения графика по точкам. Это

обеспечивает встроенная в ядро графическая функция ListPlot:

ListPlot [ {yl, у2,...}]— выводит график списка величин. Координаты х

принимают значения 1, 2, ...;

ListPlot [{{x1, y1}, {х2, у2 },...}]—выводит график списка величин с

указанными х- иy-координатами.

В простейшем случае эта функция сама задает значения координаты х= 0, 1,

2, 3, ... и строит на графике точки с координатами (х, у), выбирая у

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

[pic]

[pic]

[pic]

Рис. 5 Построение графика по точкам

Можно заметить характерный недостаток построений — точки (особенно при

небольшом размере) имеют вид, заметно отличающийся от идеального круга.

Функция ListPlot, особенно в ее второй форме (с заданными координатами х и

г/), удобна для вывода на график экспериментальных точек.

11. Трехмерная графика

Трехмерная графика, называемая также ЗD-графикой, представляет в

аксонометрической проекции объемное изображение поверхностей или фигур,

которые описываются либо функциями двух переменных, либо параметрически

заданными координатами объектов. В данном разделе описаны многие способы

построения трехмерных графиков, начиная от простых контурных графиков и

кончая графиками поверхностей и фигур с функциональной окраской.

Построение контурных графиков

Контурные графики, или графики линий равных высот, используются для

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

экстремумов функций в пределах области графика. Такие графики являются

линиями пересечения поверхности с секущими горизонтальными плоскостями,

расположенными параллельно друг под другом. Они часто используются в

картографии.

Основными функциями и директивами для построения контурных графиков

являются следующие:

ContourPlot[f,{x, xmin, xmax}, {у, ymin, ymax}] — порождает контурный

график f как функции от х и у;

ContourGraphics [array] — представляет контурный график массива array;

ListContourPlot[array] — формирует контурный график из массива величин

высот.

Этих функций достаточно для построения практически любых монохромных

графиков такого типа.

Для управления возможностями графической функции ContourPlot используются

опции, полный список которых выводит команда Options [ContourGraphics ].

Помимо уже рассмотренных ранее опций используются следующие:

ColorFunction — задает окраску областей между линиями;

Contours — задает число контурных линий;

ContourLines — задает прорисовку явных (explicit) контурных линий;

ContourShading — задает затенение областей между контурными линиями;

ContourSmoothing — задает сглаживание контурных линий;

ContourStyle — задает стиль рисуемых линий для контурных графиков;

MeshRange — задает области изменения х- и y-координат.

Рисунок 6 показывает построение контурного графика с окраской

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

ColorFunction-> Hue. Опция ContourSmoothing->True задает сглаживание

контурных линий.

[pic]

[pic]

[pic]

Рис. 6. Контурный график поверхности sin(x у) с закраской областей между

линиями

равного уровня оттенками серого цвета

Иногда график оказывается более наглядным, если убрать построение

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

графика более предпочтителен, если нужно наблюдать качественную картину.

Для построения такого графика надо использовать опцию ContourLine->False

(рис. 7).

[pic]

[pic]

[pic]

Рис. 7. Контурный график без линий равного уровня

В данном случае используется вариант монохромной окраски областей

между линиями (PostScript). Он может оказаться предпочтителен, например,

если предполагается печать графика монохромным принтером.

Построение графиков поверхностей — функция Plot 3D

Функция двух переменных z = f(x, у) образует в пространстве некоторую

трехмерную поверхность или фигуру. Для их построения приходится

использовать координатную систему с тремя осями координат: х, у и z.

Поскольку экран дисплея плоский, то на самом деле объемность фигур лишь

имитируется — используется хорошо известный способ наглядного представления

трехмерных фигур с помощью аксонометрической проекции.

Вместо построения всех точек фигуры обычно строится ее каркасная

модель, содержащая линии разреза фигуры по взаимно перпендикулярным

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

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

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

функциональная закраска четырехугольников с целью имитации бокового

освещения фигуры.

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

графическая функция Plot 3D:

. Plot3D[f, {x, xmin, xmax), {у, ymin, ymax}] — строит трехмерный график

функции f переменных х и у;

. Plot3D[{f, s}, {x, xmin, xmax}, {y, ymin, ymax}] — строит трехмерный

график, в котором высоту поверхности определяет параметр f, а

затенение — параметр s.

На рис. 8 показан пример построения поверхности, описываемой функцией

двух переменных cos(x у) при х и у, меняющихся от -3 до 3. Поверхность

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

функциональной окраски. Все опции заданы по умолчанию.

[pic]

[pic]

[pic]

Рис. 8. Пример построения поверхности cos(xy) функцией Plot3D с опциями по

умолчанию

Э тот график будем считать исходным для демонстрации его модификаций,

получаемых путем изменения опций.

Графическая функция ListPlot3D

Часто трехмерная поверхность задается массивом своих высот (аппликат).

Для построения графика в этом случае используется графическая функция

ListPlotSD:

ListPlot3D [array] — строит трехмерный график поверхности, представленной

массивом значений высот;

ListPlot3D [array, shades] — строит график так, что каждый элемент

поверхности штрихуется (затеняется) согласно спецификации shades.

Plot Joined — дополнительная опция для ListPlot, указывающая, следует ли

соединять линией точки, нанесенные на график.

Пример применения функции ListPlotSD показан на рис. 9. График

построен по данным таблицы tS, формирующей значения аппликат поверхности,

которая описывается функцией cos(xy).

[pic]

[pic]

[pic]

Рис. 9. Пример применения функции ListPlotSD

12. Методы программирования

Такие мощные системы, как Mathematica, предназначены, в основном, для

решения математических задач без их программирования большинством

пользователей. Однако это вовсе не означает, что Mathematica не является

языком (или системой) программирования и не позволяет при необходимости

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

встроенных функций и даже пакетов расширений оказывается недостаточно или

которые требуют для реализации своих алгоритмов применения типовых

программных средств, присущих обычным языкам программирования. Все обстоит

совсем иначе.

Фактически, основой системы Mathematica является проблемно-

ориентированный на математические расчеты язык программирования

сверхвысокого уровня. По своим возможностям этот язык намного превосходит

обычные универсальные языки программирования, такие как Фортран, Бейсик,

Паскаль или С.

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

системы Mathematica, а не о языке реализации самой системы. Языком

реализации является универсальный язык программирования C++, показавший

свою высокую эффективность в качестве языка системного программирования.

Как и всякий язык программирования, входной язык системы Mathematica

содержит операторы, функции и управляющие стриктуры. Основные операторы и

функции этого языка и относящиеся к ним опции мы фактически уже

рассмотрели. Набор описанных ранее типовых операторов и функций характерен

для большинства современных языков программирования. Мощь системы

Mathematica как средства программирования решения математических задач

обусловлена необычно большим (в сравнении с обычными языками

программирования) набором функций, среди которых немало таких, которые

реализуют сложные и практически полезные математические преобразования и

современные вычислительные методы (как численные, так и аналитические).

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

Среди них такие операции, как символьное и численное дифференцирование и

интегрирование, вычисление пределов функций, вычисление специальных

математических функций и т. д. — словом, реализации именно тех средств, для

создания которых на обычных языках программирования приходится составлять

отдельные, подчас довольно сложные программы. Почти столько же новых

функций (или модернизированных старых) содержат пакеты расширения (Add-on

Packages).

Язык программирования системы Mathematica трудно отнести к какому-либо

конкретному типу. Можно разве что сказать, что он является типичным

интерпретатором и не предназначен для создания исполняемых файлов. Впрочем,

для отдельных выражений этот язык может осуществлять компиляцию с помощью

функции Compile, что полезно при необходимости увеличения скорости счета.

Это язык вобрал в себя лучшие средства ряда поколений языков

программирования, таких как Бейсик, Фортран, Паскаль и С. Благодаря этому

он позволяет легко реализовывать все известные типы (концепции)

программирования: функциональное, структурное, объектно-ориентированное,

математическое, логическое, рекурсивное и т. д. К примеру, вычисление таких

функций, как факториал, в Mathematica можно запрограммировать в виде

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

f[n_] =n!

f[n_] =Gamma[n-l]

f [n_] =n*f [n-1] ;f [0]=l;f [1]=1;

f[n_] =Product[i/i,n]

f [n_] =Module[t=l,Do[t=t*i,i,n] ;t]

f [n_] =Module [ { t=l } , For [ i=l , i<=n , i++ , t*=i ] ; t]

f[n_] =Fold [Times,1, Range [n] ]

Все их можно проверить с помощью следующего теста:

{f[0],f[1],f[5],f[10]}

{1, 1, 120, 3628800}

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

применении полных форм выражений, представленных функциями. И вообще,

функциям в системе Mathematica принадлежит решающая роль. Таким образом,

Mathematica. фактически, изначально реализует функциональный метод

программирования — один из самых эффективных и надежных. А обилие

логических операторов и функций позволяет полноценно реализовать и

логический метод программирования. Множество операций преобразования

выражений и функций позволяют осуществлять программирование на основе

правил преобразования.

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

отдельные модули (блоки) и хранить эти модули в тексте документа или на

диске Возможно создание полностью самостоятельных блоков — именованных

процедур и функций с локальными переменными. Все это наряду с типовыми

управляющими структурами позволяет реализовать структурное и модульное

программирование.

Столь же естественно язык системы реализует объектно-ориентированное

программирование. Оно базируется прежде всего на обобщенном понятии объекта

и возможности создания множества связанных друг с другом объектов. В

системе Mathematica каждая ячейка документа является объектом и порождается

другими, предшествующими объектами. При этом содержанием объектов могут

быть математические выражения, входные и выходные данные, графики и

рисунки, звуки и т. д.

С понятием объекта тесно связаны три основных свойства, перечисленные

ниже:

инкапсуляция — объединение в одном объекте как данных, так и методов их

обработки;

наследование — означает, что каждый объект, производный от других объектов,

наследует их свойства;

полиформизм — свойство, позволяющее передать ряду объектов сообщение,

которое будет обрабатываться каждым объектом в соответствии с его

индивидуальными особенностями.

Приведенный ниже пример объектно-ориентированного программирования

дает три определения, ассоциированные с объектом h:

h/ : h [x_] +h [y_] : =hplus [х , у]

h/:p[h[x_],x]:=hp[x]

h/:f_[h[x_]] :=fh[f,x]

В принципе, язык программирования системы Mathematica специально

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

а также ряда других — например, рекуррентного программирования, при котором

очередной шаг вычислений базируется на данных, полученных на предыдущих

шагах. Наглядным примером этого может служить вычисление факториала

рекуррентным методом. Возможно также создание рекурсивных функций (с

обращением к самим себе) и, соответственно, использование рекурсивного

программирования. Оно, кстати, играет большую роль в осуществлении

символьных преобразований.

Средства языка Mathematica позволяют осуществить и визуально-

ориентированное программирование. Его смысл заключается в автоматической

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

объекта — чаще всего путем щелчка на кнопке. Mathematica позволяет

создавать палитры и панели с различными кнопками, позволяющими управлять

программой или вводить новые программные объекты. Однако визуально-

ориентированное программирование не является основным. В основном оно

ориентировано на создание палитр пользователя с нужными ему функциями.

Поскольку алфавит языка программирования системы и набор операторов и

функций уже были рассмотрены ранее, в этой главе нам остается рассмотреть

лишь специфические средства языка и его управляющие структуры.

III. Заключение

Система Mathematica 4 относится к программным продуктам, которым

крайне трудно найти достойного конкурента. Пожалуй, лишь система

компьютерной математики Maple V R5 способна всерьез претендовать на эту

роль. Эти две системы напоминают двух спортсменов, заметно оторвавшихся от

своих соперников'и попеременно обгоняющих друг друга. Каждая из систем

имеет свое лицо и может решать самые серьезные математические и научно-

технические задачи.

Высочайшая эффективность решения численных задач, превосходная графика

и постоянно совершенствующиеся возможности символьной (аналитической)

математики — это и есть лицо новейшей системы Mathematica 4. Да и одежка -

пользовательский интерфейс под стать «Мисс Мира» — Mathematica.

Оторвавшись от эпитетов, можно сказать, что Mathematica 4 (как и ее

предшественница Mathematica 3, отставшая по скорости вычислений)

действительно представляет собой самую современную систему искусственного

интеллекта, ориентированную на выполнение разнообразных математических

вычислений — от простейших до самых сложных, достойных ума и пера

математиков-аналитиков.

Одновременно эта система является уникальным по своей полноте «живым»

справочником по различным математическим понятиям, алгоритмам и функциям.

Она обеспечивает высочайшую степень визуализации вычислений, начиная от

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

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

предоставление пользователю самых серьезных и, порой, новых знаний в столь

почетной и древней области человеческого интеллекта, как математика.

Более миллиона пользователей системы Mathematica (всех версий) и сотни

опубликованных книг о ней (в том числе множество вышедших уже в 1999 г.,

лишь в середине которого четвертая версия системы появилась) говорят сами

за себя. Mathematica 4 — это продукт широкого потребления, с которым можно

достойно войти в третье тысячелетие новой эры в истории Человечества.

Будучи по своей сути профессиональными инструментами для математиков,

системы Mathematica 3/4 сделали решительный шаг в сторону массового

пользователя. Не случайно на Западе эти системы используются не только в

крупнейших научных центрах и ведущих университетах, но и в обычных вузах и

даже школах. Примечательно, что сейчас Mathematica все чаще применяется

представителями гуманитарных наук, а также специалистами в области

экономики и финансов.

IV. Список использованной литературы

1. Дьяконов В.П. Mathematica 4: учебный курс – СПб: Питер, 2001.

2. Акритас А. Основы компьютерной алгебры/ Пер. с англ. – М.:

Мир, 1994.

3. Капустина Т.В. Компьютерная система Mathematica 3.0 для

пользователей – М.: Солон-Р, 1999.

4. Дьяконов В.П. Mathematica 3/4 с пакетами расширений – М.:

Нолидж, 2000.

Страницы: 1, 2, 3


ИНТЕРЕСНОЕ



© 2009 Все права защищены.