Как решать в программе mathematica

GeekBrains

Первое знакомство с Mathematica

Цель лекции: познакомиться с основными возможностями пакета и базовыми принципами работы в системе компьютерной алгебры Mathematica.

1.0. Введение: Основные возможности системы компьютерной алгебры Mathematica

Пакет Mathematica совершенствуется и развивается уже не одно десятилетие, начиная с конца восьмидесятых годов прошлого века. За эти годы Mathematica из программируемого калькулятора, однако, уже тогда способного на многое в математике, выросла в полноценную систему компьютерной алгебры. Все возможности Mathematica можно разделить на 4 больших категории: численные расчёты, символьные вычисления, визуализация и программирование . Краткую обобщённую классификацию возможностей Mathematica приводят А.Н. Прокопеня и А.В. Чичурин в книге [5, с. 6–7]. В редуцированном виде приведём её в нашем курсе.

  1. Численные расчеты
    • Mathematica позволяет производить вычисления с любой точностью. Это отличает её от обычного калькулятора, для которого точность вычислений фиксирована. Также Mathematica может производить расчеты с использованием специальных функций.
    • Mathematica умеет вычислять интегралы, численно решать алгебраические и дифференциальные уравнения и системы уравнений.
    • Mathematica позволяет производить статистический анализ численных данных, производить Фурье-анализ, интерполяцию и аппроксимацию данных с помощью метода наименьших квадратов.
    • Mathematica прекрасно работает не только с числами, но и с матрицами, обеспечивая выполнение всех операций линейной алгебры.
    • Mathematica позволяет оперировать алгебраическими формулами: разлагать на множители, раскрывать скобки или напротив, производить упрощение многочленов и т.д.
    • Mathematica позволяет находить решения дифференциальных уравнений, находить интегралы и производные в символьном виде.
    • Mathematica может разлагать функцию в ряд, вычислять пределы.
    • Mathematica умеет строить двух- и трехмерные графики аналитических функций, заданных явно или параметрически, а также контурные и плотностные графики. Помимо функциональных зависимостей Mathematica умеет визуализировать дискретные наборы данных.
    • Mathematica обладает значительным набором инструментов, опций, позволяющих контролировать оформление изображений, графиков. Так, например, можно изменять цвет графиков, управлять тенями, освещением и яркостью и т.д.
    • Mathematica позволяет строить изображения, используя элементарные графические объекты, стандартные фигуры. В двумерной графике это — многоугольники, окружности, дуги и т.д., в трёхмерной графике — параллелепипеды, сферы, цилиндры, конусы и т.д. Также Mathematica позволяет добавлять текстовые комментарии в любое место двумерного или трехмерного графического объекта.
    • Mathematica позволяет создавать дополнительные функции под нужды пользователя. Использование именно этой возможности подразумевает функциональный стиль программирования.
    • Mathematica обладает таким инструментом, как правила преобразований, которые позволяют одним символьным выражениям ставить в соответствие другие символьные выражения и численные значения. На этой возможности базируется так называемый стиль программирования, основанный на правилах преобразования.
    • В Mathematica содержится большое количество встроенных функций, позволяющих разветвлять вычисления в зависимости от выполнения определённых условий, многократно выполнять тот или иной алгоритм действий, реализуя тем самым процедурный стиль программирования.
    • Mathematica сама по себе представляет собой язык программирования высокого уровня, на котором можно писать как малые, так и большие программы.

    1.1. Начало работы в Mathematica. Интерфейс программы

    1.1.1.Главное меню программы

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

    Начнём описание интерфейса программы с главного меню.

    Пункты главного меню Mathematica достаточно подробно описаны в книгах А. П. Мостовского [4, с. 6–8] и А. В. Чигарева [6, с. 115–124].

    Пункт меню File предназначен для работы непосредственно с файлами программы. С его помощью можно, например, создавать новые файлы ( New ), выбирать из каталога ранее уже созданные ( Open. ), сохранять файлы ( Save As ), перезаписывать ( Save ) или закрывать их без сохранения ( Close ), управлять параметрами представления данных на экране ( Printing Settings ), печатать документы ( Print. ) и завершать работу всей программы ( Exit ).

    Пункт меню Edit содержит основные операции редактирования данных на экране. Среди них отмена операции ( Undo ), копирование фрагментов документа в буфер обмена с их удалением из текста программы ( Cut ) и без удаления ( Copy ), вставка фрагментов из буфера обмена в заданную область документа ( Paste ), удаление фрагментов документа ( Clear ). Помимо этого, в данном пункте меню содержатся команды для поиска выражений в тексте программы: это Find. для задания шаблона для поиска, а также Find Next и Find Previous для перехода к следующему и предыдущему фрагментам текста, соответственно, совпадающим с шаблоном. Подпункт Preferences. ответственен за управление настройками самого пакета.

    При помощи команд, содержащихся в пункте меню Insert , можно вводить данные в окно редактирования. Например, можно задавать верхние и нижние индексы при помощи содержащихся в подпункте Typesettings команд Superscript и Subscript , обособлять тексты скобками различного вида при помощи команд Matching [], Matching (), Matching <> и т.д. Можно вставлять в текст программы объекты, созданные в других программах, например, графику, формулы и т.д.

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

    Управлять ячейками данных позволяет пункт меню Cell (подробней о ячейках см. пункт 1.1.2 настоящей лекции). С его помощью можно устанавливать формат ячеек ( Cell Properties ), преобразовывать их тип ( Convert To ), группировать ( Grouping ), объединять ( Merge Cells ) и разделять ( Divide Cells ) ячейки и т.д.

    Пункт меню Graphics , что весьма очевидно, отвечает за работу с графическими данными, встречающимися в тексте программы.

    В пункте меню Evaluations собраны команды для непосредственного управления ходом вычислений, работой с ядром программы. С их помощью можно осуществлять вычисления в пределах одной ячейки программы ( Evaluate Cells, Evaluate Initialization Cells ), в пределах всей программы ( Evaluate Notebook ), отключать ядро ( Quit Kernel ) программы и вновь запускать его ( Start Kernel ) и т.д.

    Ввод данных в окно ввода в Mathematica можно осуществлять не только вручную с клавиатуры, но и с использованием так называемых палитр ( Palettes ). Они представляют собой окна, содержащие набор кнопок, за которыми закреплены определённые действия, и выпадающих списков. Управлять палитрами можно, используя команды в пункте меню Palettes . Можно выводить на экран и убирать с экрана те или иные палитры, а также создавать собственные палитры с требуемым набором функций.

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

    Последний пункт меню, Help , содержит команды для работы со справочными данными по пакету Mathematica.

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

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

    1.1.2. Окно ввода

    Все элементы интерфейса Mathematica выводятся независимо друг от друга: отдельно — строка меню, отдельно — окна (в том числе окно редактирования), отдельно палитры инструментов. В одно и то же время на экране могут быть представлены одни элементы, и скрыты другие. Кроме того, можно, перетаскивая мышкой, помещать элементы программы в любое удобное место экрана, изменять их размеры (В. П. Дьяконов [2, с. 35–37]). В окне редактирования имеются полосы прокрутки для скроллинга не помещающихся на экране текстов.

    Все введённые в окно ввода данные в Mathematica содержатся в отдельных, определённым образом выделенных областях экрана, называемых ячейками. Итак, программа запущена, и в центральной части экрана появилась девственно чистая область — окно ввода. Именно в эту область и предстоит вводить данные. Как только будет введён первый символ, в правой части окна ввода появится квадратная скобка: она обозначает вертикальные границы ячейки, содержащей введенный с клавиатуры символ. Исходные данные содержатся во входных ячейках ( Input ), а результат преобразований — в выходных ( Output ). А. П. Мостовской в [4, с. 6] определяет ячейку в Mathematica следующим образом: "Под ячейкой понимается связная часть рабочего поля, содержащая задачу, ответ, текст или другое".

    После того, как на экране появилось окно редактирования (при первом старте Mathematica или после выбора подпункта New в пункте меню File ), вы сразу же можете вводить данные. Например, если вы наберёте N[E,10] и нажмёте Shift+Enter (удерживая Shift , нажмёте Enter ) для начала вычислений, Mathematica выведет на экран приближённое значение экспоненты с точностью до 10-и значащих цифр — см. рис. 1.2.

    Экспонента с точностью до 10-и значащих цифр

    Таким образом, чтобы Mathematica произвела вычисление введённого выражения, необходимо, оставив курсор внутри ячейки с входными данными, нажать сочетание клавиш Shift+Enter . Заметим, что после того, как вы заставили программу произвести вычисления в окне редактирования, Mathematica добавляет к данным на экране подсказки в виде In[1]:= для входных данных, и Out[1]:= для данных на выходе, т.е. результатов вычислений — также см. в качестве примера рис. 1.2. При этом исходное значение оказывается присвоенным объекту In[1] , а результат вычислений — объекту Out[1] (Е. М. Воробьёв [1, с. 8–9]). В нашем примере на рис. 1.2 в текущей сессии работы с программой ввод с клавиатуры In[1] будет эквивалентен вводу выражения N[E,10] , а ввод Out[1] — вводу 2.718281828 .

    Скажем ещё несколько слов о скобке в правой части экрана, очерчивающей границы ячейки с входными данными и результатами их преобразований. Если все заданные вычисления завершены успешно или ещё не проводились, ячейка обозначается тонкой правой квадратной скобкой, цвет которой зависит от цветовой схемы, используемой в операционной системе пользователя (см. пример на рис. 1.2). Изменение внешнего вида скобки может многое сказать о текущем состоянии вычислений. Если скобка изменила цвет на яркий, привлекающий внимание, и толщину, а в верхней её части появился значок + , это значит, что в синтаксисе содержащихся в ячейке выражений имеется ошибка: узнать на характере ошибки можно, нажав на + (см. верхний пример на рис. 1.3).

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

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

    Разные типы скобки, очерчивающей ячейку

    1.1.3. Палитры математических функций

    В данной лекции мы уже упомянули такой термин, как палитры. В Mathematica палитра — панель с кнопками быстрого управления.

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

    Разработчики Mathematica сумели реализовать положительный эффект от вспомогательных панелей, минимизировав причиняемые им неудобства. Они создали инструментальные палитры, содержащие определённым образом сгруппированные команды для ввода математических выражений, отсутствующих на клавиатуре символов, команд управления вычислениями, инструментов работы с текстом и графикой. Палитрам не обязательно всё время находиться на экране, и по желанию пользователя они могут быть перемещены в любое место экрана или вовсе скрыты. Управлять палитрами можно при помощи команд, собранных в пункте главного меню Palettes .

    На скриншоте на рис. 1.1 представлено несколько палитр, имеющихся в Mathematica.

    Вычисления в Mathematica с примерами решения

    Mathematica (далее М.) является системой символьной математики. Такие
    системы позволяют пользователю, набрав несколько команд, подключиться к
    готовым программам самой системы и провести необходимые вычисления.
    После запуска М. или открытия уже существующего файла набирают нужный текст или математическую команду. М. воспринимает то, что набрано, как Input.
    Обработка Input выполняется при нажатии клавиш: Shift+Enter. М. помечает Input
    меткой In[n]: и результат обработки выводит в Output, помечая его Out[n]. Текст и команды находятся в ячейках, которые М. объединяет в группы.

    Каждая ячейка (cell) имеет свой стиль. Границы групп и стиль ячеек показываются М. справа рабочего окна в виде квадратных скобок. Можно выбирать стиль ячейки, используя команду Format. По умолчанию, автоматически открываемая ячейка, имеет стиль Input (Input style), который
    позволяет проводить математические вычисления. Если есть необходимость
    открыть новую ячейку, двигают курсор вниз ячейки, пока не появится
    горизонтальная линия. Если после этого нажать клавишу Enter – вы окажетесь в
    новой ячейке.

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

    Пример 1.

    Обыкновенное присваивание.
    Вычисления в Mathematica с примерами решения
    Пример 2.

    Задержанное присваивание.
    Вычисления в Mathematica с примерами решения
    Замечание. Во втором случае значения a и b хранятся в оперативной памяти и не выводятся в Output. Интерфейс в М. достаточно приятен. Можно активно использовать Help. Например, копировать там шаблоны стандартных функций и переносить их в свой документ. При этом Copy, Cut, Paste такие же как и в MS Word. Более подробно среда М. описана, например, в [7].

    Рассмотрим функции М., позволяющие построить графики Plot, PolarPlot,
    ParametricPlot, Plot3D. Синтаксис любой такой функции примерно одинаков.
    Например для команды Plot:
    Вычисления в Mathematica с примерами решения
    график функции f[x] независимой переменной х в диапазоне от Вычисления в Mathematica с примерами решения
    Вычисления в Mathematica с примерами решенияВычисления в Mathematica с примерами решения
    аналогично (1) – графики функций Вычисления в Mathematica с примерами решения
    Вычисления в Mathematica с примерами решения
    график функции f(х) на промежутке от Вычисления в Mathematica с примерами решенияисключая точки Вычисления в Mathematica с примерами решения

    Пример 1.

    Построим график функции Вычисления в Mathematica с примерами решенияИспользуем команду: Вычисления в Mathematica с примерами решения
    Вычисления в Mathematica с примерами решения
    При построении графика в примере 1 М. использовала по умолчанию опции, касающиеся стиля графика и вида осей координат. Пользователь может изменять эти опции, задавая их в команде Plot. Например, для команды (1):
    Вычисления в Mathematica с примерами решения
    Рассмотрим некоторые опции.
    1. Вычисления в Mathematica с примерами решения— метки горизонтальной и вертикальной осей координат.

    Пример 2.

    Для построения графика функции [Вычисления в Mathematica с примерами решенияиспользуем команду:
    Вычисления в Mathematica с примерами решения

    Вычисления в Mathematica с примерами решения
    2. AspectRatio число → ; число задает отношение у – протяженности
    графика к х – протяженности.
    AspectRatio Automatic → — масштаб на обеих осях одинаков.

    Пример 3.

    Команда:
    Вычисления в Mathematica с примерами решения

    GeekBrains

    Вычисления в Mathematica с примерами решения

    Результат:
    3. PlotStyle опции → — <опции>определяют стиль рисования.

    Пример 4.

    Вычисления в Mathematica с примерами решения
    Результат:
    Вычисления в Mathematica с примерами решения
    Пример 5.

    Команда:
    Вычисления в Mathematica с примерами решения
    Результат:
    Вычисления в Mathematica с примерами решения
    4. Вычисления в Mathematica с примерами решения— метки на осях Оx и Оy .

    Пример 6.

    Вычисления в Mathematica с примерами решения
    Результат:
    Вычисления в Mathematica с примерами решения
    Список всех опций можно просмотреть командой Options[Plot] и использовать их по мере надобности. Например, при построении графика Вычисления в Mathematica с примерами решениянеобходимо исключить точку разрыва x = 0. Это делается опцией Exclusion.

    Пример 7.

    Команды:
    Вычисления в Mathematica с примерами решения
    Результат:

    Вычисления в Mathematica с примерами решения

    Рассмотрим еще несколько примеров с командами , PolarPlot, ParametricPlot, Plot3D.
    Синтаксис команды ParametricPlot:
    Вычисления в Mathematica с примерами решения— график параметрически заданной функции Вычисления в Mathematica с примерами решенияпараметра при изменении t в диапазоне от t min до t max .

    Пример 8.

    Построим график эллипса:
    Вычисления в Mathematica с примерами решения
    Команды:
    =<5,3>
    ParametricPlot[,,Ticks→<<<-a,HoldForm[Text[Style[" -a",FontSize→18]]]>,>, <<-b,HoldForm[Text[Style["-
    b",FontSize→16]]]>,>>,PlotStyle→ ,AxesLabel→<"x","y">]

    Вычисления в Mathematica с примерами решения
    Синтаксис команды Plot3D:
    Вычисления в Mathematica с примерами решения— график поверхности Вычисления в Mathematica с примерами решенияпри изменении х в диапазоне от х min до х max , у в
    диапазоне от у min до у max .

    Пример 9.

    Построим график параболоида: Вычисления в Mathematica с примерами решенияпри ограничениях на х и у: Вычисления в Mathematica с примерами решения
    Команда:
    =<4,5>
    Plot3D[(x^2)/(a^2)+(y^2)/(b^2),,,Axes→True,Ticks→<<0>,<0><0>>,AxesLabel→<"x","y","z">,RegionFunction→Function[,(x^2)/(a^2)+(y^2)/(b^2)≤10],PlotStyle→Directive[Yellow,Specularity[White,20],Opacity[2.4]],Boxed→Fale]
    Результат:
    Вычисления в Mathematica с примерами решения
    При этом пояснения соответствующих опций можно легко найти в Help.
    Синтаксис команды PolarPlot:
    Вычисления в Mathematica с примерами решения— график кривой r=r[ϕ] в обобщенных полярных координатах при изменении ϕ в диапазоне от ϕmin до ϕmax .

    Пример 10.

    Построим график Вычисления в Mathematica с примерами решения
    Команда:

    Вычисления в Mathematica с примерами решения
    Результат:

    Вычисления в Mathematica с примерами решения

    При копировании любых материалов с сайта evkova.org обязательна активная ссылка на сайт www.evkova.org

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

    Сайт пишется, поддерживается и управляется коллективом преподавателей

    Whatsapp и логотип whatsapp являются товарными знаками корпорации WhatsApp LLC.

    Cайт носит информационный характер и ни при каких условиях не является публичной офертой, которая определяется положениями статьи 437 Гражданского кодекса РФ. Анна Евкова не оказывает никаких услуг.

    14. Написание программ в системе Mathematica

    Эта программа моделирует одномерное случайное блуждание.

    График, демонстрирующий первые 200 шагов случайного блуждания.

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

    Эта программа моделирует случайное блуждание в пространстве размерности d.

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

    Богатство языка программирования системы Mathematica делает простой реализацию сложнейших алгоритмов.

    Это программа для моделирования одного шага эволюции клеточной системы.

    А это пример оптимизированной программы, которая оперирует со списками живых клеток.

    Система Mathematica позволяет легко создавать программы, состоящие из нескольких компонент.

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

    Пример работы программы.

    Mathematica имеет компилятор для оптимизации программ, которые работают со списками и числами.

    Программы системы Mathematica зачастую являются прямой трансляцией теоретических положений справочной литературы.

    Здесь вводятся необходимые определения для расчета импеданса электрической цепи.

    Использование данных выше определений.

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

    wpe68.jpg (2543 bytes)
    Программы в системе Mathematica предоставляют беспрецедентно ясные способы записи алгоритма.

    Обе эти программы аппроксимируют Золотое Сечение с точностью до k знаков.

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

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

    Сравнение приближенного результата с точным значением, полученным с помощью встроенной функции PrimePi.

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

    Это программа, отвечающая модели Kohmoto для спектра энергии квантовой частицы в одномерном квазипериодическом потенциале.

    GeekBrains

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *