Компьютерная математика. Часть...

Post on 26-Jul-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Компьютерная математика. Часть 2

Символьный пакет MATHEMATICA

2017

Лаврова Ольга АнатольевнаБГУ, ММФ, кафедра ДУ и СА

Структура курса (научно-педагогическая деятельность)

• 9 лекций

• 8 лабораторных занятий

• консультации

• Работы студентов• 5(6) лабораторных работ

• 2 балла – работа сделана правильно и сдана в срок• 1 балл – работа сделана правильно и сдана позже срока• 0 баллов – работа не сдана до конца семестра

• 2 контрольные работы по теории• 2 самостоятельные работы по практике

• Экзамен (0.4*оценка_за_семестр + 0.6*оценка_на_экзамене)

Компьютерная математика. Mathematica. 2017 2

Материалы

• Л.Л. Голубева, А.Э. Малевич, Н.Л. Щеглова. Компьютерная математика. Символьный пакет Mathematica. Курс лекций. 2005

• Л.Л. Голубева, А.Э. Малевич, Н.Л. Щеглова. Компьютерная математика. Символьный пакет Mathematica. Лабораторный практикум. Часть 1. 2012

• Литература на факультетском сервере \\mmf-fs

• Информация на сайте km.mmf.bsu.by

• lavrovaolga@mail.ru

Компьютерная математика. Mathematica. 2017 3

Цель курса

Изучение основных принципов работы с системой Mathematicaдля эффективного решения математических задач

Основной навык для эффективного использования системы Mathematica – это программирование

Компьютерная математика. Mathematica. 2017 4

Тема 1. Знакомство с системой Mathematica

1.1 Возможности системы Mathematica

1.2 Структура системы Mathematica

1.3 Работа с документом

1.4 Функция

Компьютерная математика. Mathematica. 2017 5

Тема 1. Знакомство с системой Mathematica

• Разработчик – Wolfram Research Inc. (USA)

• Mathematica 1.0 (1988 г.), Mathematica 11 (август 2016 г.)

• текущая версия Mathematica 11.0.1

• Назначение

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

• работа с данными (множество форматов данных, визуализация, доступ к «справочным» данным)

Компьютерная математика. Mathematica. 2017 6

Тема 1. Знакомство с системой Mathematica

Компьютерная математика. Mathematica. 2017 7

1.1 Возможности системы Mathematica

• символьные вычисления + численные вычисления

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

• весь рабочий процесс в одном документе. Документ интерактивный с высокой степенью визуализации результатов

• программирование, основанное на знаниях – встроенный функционал для широкого класса задач (>5000), встроенные данные

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

Wolfram Language (название языка с 2013)

• Свободная форма ввода команд через интеграцию с Wolfram|Alpha (2009)

Компьютерная математика. Mathematica. 2017 8

Компьютерная математика. Mathematica. 2017 9

1.1 Возможности системы Mathematica

1.2 Структура системы Mathematica

Компьютерная математика. Mathematica. 2017 10

1.2.1 Элементы структуры

• Ядро (Kernel) – выполнение всех вычислительных процессов

• Оболочка (Front End) – интерфейс между пользователем и ядром

• Библиотека (Library) – содержит часть встроенного функционала

• Пакеты расширений (Add-on Packages) – дополнительный функционал

• Справочная система (Help)

Компьютерная математика. Mathematica. 2017 11

1.2.2 Оболочка

• Весь рабочий процесс в одном документе – блокноте (Notebook)

• Документ является интерактивным

• Документ состоит из последовательности ячеек (Cells). Создается авотматическипри наборе текста

• Ячейка определяется ее стилем • Input – выражение для вычисления• Output – вывод результата вычисления• Text, Title, Section, Subsection,… – текст

• Оболочка является мощной системой редактирования текста

Компьютерная математика. Mathematica. 2017 12

1.2.3 Ядро

• Вычисляет выражение (Expression) после нажатия <Shift+Enter>

• Вычисления с целыми числами, рациональными числами и символами – символьные (пример, 3/7+2/11, Sin[𝜋/5], 1/3, 1/3., N[𝜋,100])

• ВАЖНО: Если Ядро не может вычислить выражение, то результатом является исходное выражение, а не ошибка (пример, Sin[𝜋/50])

• Вычислительная сессия (Session)• Создание сессии – автоматически при запуске первой ячейки Input• Окончание сессии – удаление переменных и сброс ядра в начальное состояние

– через Evaluation->Quit Kernel->Local

Компьютерная математика. Mathematica. 2017 13

1.2.4 Справочная система

• Справочная система состоит из документов (≈14000 печатных страниц, ≈ 105 примеров)

• Доступ к справочной системе через• меню Help• F1• предсказательный интерфейс• функции Definition (?) и Information (??) – справка для символов

• Символ в Mathematica – допустимая конечная последовательность символов. Символами являются имена переменных, функций, встроенных констант. Символ может использоваться без значений

Компьютерная математика. Mathematica. 2017 14

1.3 Работа с документом

• Работа ТОЛЬКО в ячейках• Выделяется скобкой справа• Различный СТИЛЬ

• Input – выражение для вычисления, Output – вывод результата вычисления, Text, Title, Section, … – текст

• Ячейки ввода (Input, Text, Title, Section, …) и вывода (Output)

• Ввод встроенных символов через палитры (меню Palletes)• Удобство ввода данных в начале знакомства с системой• Контекстная подсказка для ввода с клавиатуры. ВАЖНО научится работать с

клавиатуры

• Документ может иметь разный СТИЛЬ оформления (Article, Textbook,…)

Компьютерная математика. Mathematica. 2017 15

1.4 Функция• Вызов Name[arg1, arg2, arg3, …, argn];Пример: TraditionalForm[Gamma[x]]

• Может поддерживать несколько синтаксисовПример: Log[E2] и Log[2,8]

• Функция одного аргумента поддерживает разные формы вызова

Log[E] или Log@E (префиксная запись) или E // Log (постфиксная)Пример: Length @ Names["System`*"]

• Может содержать опции – необязательные аргументы. Например, Name[arg1,arg2,OptionName->OptionValue]. По умолчанию значения опций устанавливаются автоматически

Пример: Framed[x]; Options[Framed]; Framed[x, Background -> Yellow]

Компьютерная математика. Mathematica. 2017 16

1.4.1 Встроенная функция. Пример

Компьютерная математика. Mathematica. 2017 17

1.4.1 Встроенная функцияМожет вызываться через соответствующий оператор

Функция Операторная запись

Definition[Name] ?Name

Information[Name] ??Name

Rule[a,b] a->b

Set[a,b] a = b

SetDelayed[a,b] a:=b

List[a,b] {a,b}

Times[a,b] a*b или a b (ab НЕВЕРНО)

Компьютерная математика. Mathematica. 2017 18

1.4.2 Функция пользователя functionName[arg1_,arg2_,…,argn_] := functionBody

• functionName ЖЕЛАТЕЛЬНО с маленькой буквы• arg1_ аргумент задается ВСЕГДА в виде образца• SetDelayed (:=) отложенное присваивание – выполнение

команд тела функции functionBodyоткладывается до вызова функции functionName. При прямом присваивании Set (=) правая часть выполняется ТОЛЬКО ОДИН РАЗ в момент определения

• ?square или ??square вызов справки для символа square• ClearAll[square], ClearAll ["Global`*"] удаление информации для символа/всех

символов контекста Global• Remove[square], Remove["Global`*"] удаление символа/всех символов

контекста Global

Компьютерная математика. Mathematica. 2017 19

1.4.2 Присваивание Set (=) и SetDelayed (:=)

В системе Mathematica нету фундаментального различия между понятиями переменная и функция (см. Example 2, fSetDelayed)

Компьютерная математика. Mathematica. 2017 20

1.4.2 Функция пользователя. Пример I

Компьютерная математика. Mathematica. 2017 21

1.4.2 Функция пользователя. Пример II

Компьютерная математика. Mathematica. 2017 22

1.4.2 Функция пользователя. Пример III

Компьютерная математика. Mathematica. 2017 23

1.4.2 Функция пользователя. Рекурсия

Компьютерная математика. Mathematica. 2017 24

1.4.4 Безымянная функция

• Определяется без имени

• Вызывается там, где определяется

functionBody(#1,#2,Slot[3],…,#n) &

или с использованием локальных имен

Function[{arg1,arg2,…,argn}, functionBody]

По-английски: pure function, anonymous function, lambda expression

Компьютерная математика. Mathematica. 2017 25

1.4.4 Безымянная функция. Пример I

Компьютерная математика. Mathematica. 2017 26

СОВЕТ: тело безымянной функции записывайте в круглых скобках10 (#1+#2)&[1,2]

1.4.4 Безымянная функция. Пример II

Компьютерная математика. Mathematica. 2017 27

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

1.4.4 Безымянная функция. Пример III

Компьютерная математика. Mathematica. 2017 28

Тема 1. Важные понятия

• Ядро, Оболочка, Сессия

• Документ, Ячейка

• Выражение (Тема Все есть выражение)

• Образец (Тема Образец)

• Безымянная функция (Тема Функциональный стиль программирования)

• Виды присваиваний = (Set), := (SetDelayed), -> (Rule)

• Синтаксическое различие между скобками: [аргументы функций],(группировка в выражении), {элементы списка}, {*комментарии*}, [[ ??? ]]

Компьютерная математика. Mathematica. 2017 29

top related