Компьютерная математика. Часть...
TRANSCRIPT
![Page 1: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/1.jpg)
Компьютерная математика. Часть 2
Символьный пакет MATHEMATICA
2017
Лаврова Ольга АнатольевнаБГУ, ММФ, кафедра ДУ и СА
![Page 2: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/2.jpg)
Структура курса (научно-педагогическая деятельность)
• 9 лекций
• 8 лабораторных занятий
• консультации
• Работы студентов• 5(6) лабораторных работ
• 2 балла – работа сделана правильно и сдана в срок• 1 балл – работа сделана правильно и сдана позже срока• 0 баллов – работа не сдана до конца семестра
• 2 контрольные работы по теории• 2 самостоятельные работы по практике
• Экзамен (0.4*оценка_за_семестр + 0.6*оценка_на_экзамене)
Компьютерная математика. Mathematica. 2017 2
![Page 3: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/3.jpg)
Материалы
• Л.Л. Голубева, А.Э. Малевич, Н.Л. Щеглова. Компьютерная математика. Символьный пакет Mathematica. Курс лекций. 2005
• Л.Л. Голубева, А.Э. Малевич, Н.Л. Щеглова. Компьютерная математика. Символьный пакет Mathematica. Лабораторный практикум. Часть 1. 2012
• Литература на факультетском сервере \\mmf-fs
• Информация на сайте km.mmf.bsu.by
Компьютерная математика. Mathematica. 2017 3
![Page 4: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/4.jpg)
Цель курса
Изучение основных принципов работы с системой Mathematicaдля эффективного решения математических задач
Основной навык для эффективного использования системы Mathematica – это программирование
Компьютерная математика. Mathematica. 2017 4
![Page 5: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/5.jpg)
Тема 1. Знакомство с системой Mathematica
1.1 Возможности системы Mathematica
1.2 Структура системы Mathematica
1.3 Работа с документом
1.4 Функция
Компьютерная математика. Mathematica. 2017 5
![Page 6: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/6.jpg)
Тема 1. Знакомство с системой Mathematica
• Разработчик – Wolfram Research Inc. (USA)
• Mathematica 1.0 (1988 г.), Mathematica 11 (август 2016 г.)
• текущая версия Mathematica 11.0.1
• Назначение
• проведение научных исследований (построение моделей, разработка алгоритмов, тестирование алгоритмов)
• работа с данными (множество форматов данных, визуализация, доступ к «справочным» данным)
Компьютерная математика. Mathematica. 2017 6
![Page 7: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/7.jpg)
Тема 1. Знакомство с системой Mathematica
Компьютерная математика. Mathematica. 2017 7
![Page 8: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/8.jpg)
1.1 Возможности системы Mathematica
• символьные вычисления + численные вычисления
• многие вычислительные процессы контролируются автоматически
• весь рабочий процесс в одном документе. Документ интерактивный с высокой степенью визуализации результатов
• программирование, основанное на знаниях – встроенный функционал для широкого класса задач (>5000), встроенные данные
• множественность реализации за счет поддержки различных парадигм программирования (процедурное, функциональное, логическое, на массивах) на основе языка
Wolfram Language (название языка с 2013)
• Свободная форма ввода команд через интеграцию с Wolfram|Alpha (2009)
Компьютерная математика. Mathematica. 2017 8
![Page 9: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/9.jpg)
Компьютерная математика. Mathematica. 2017 9
1.1 Возможности системы Mathematica
![Page 10: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/10.jpg)
1.2 Структура системы Mathematica
Компьютерная математика. Mathematica. 2017 10
![Page 11: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/11.jpg)
1.2.1 Элементы структуры
• Ядро (Kernel) – выполнение всех вычислительных процессов
• Оболочка (Front End) – интерфейс между пользователем и ядром
• Библиотека (Library) – содержит часть встроенного функционала
• Пакеты расширений (Add-on Packages) – дополнительный функционал
• Справочная система (Help)
Компьютерная математика. Mathematica. 2017 11
![Page 12: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/12.jpg)
1.2.2 Оболочка
• Весь рабочий процесс в одном документе – блокноте (Notebook)
• Документ является интерактивным
• Документ состоит из последовательности ячеек (Cells). Создается авотматическипри наборе текста
• Ячейка определяется ее стилем • Input – выражение для вычисления• Output – вывод результата вычисления• Text, Title, Section, Subsection,… – текст
• Оболочка является мощной системой редактирования текста
Компьютерная математика. Mathematica. 2017 12
![Page 13: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/13.jpg)
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
![Page 14: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/14.jpg)
1.2.4 Справочная система
• Справочная система состоит из документов (≈14000 печатных страниц, ≈ 105 примеров)
• Доступ к справочной системе через• меню Help• F1• предсказательный интерфейс• функции Definition (?) и Information (??) – справка для символов
• Символ в Mathematica – допустимая конечная последовательность символов. Символами являются имена переменных, функций, встроенных констант. Символ может использоваться без значений
Компьютерная математика. Mathematica. 2017 14
![Page 15: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/15.jpg)
1.3 Работа с документом
• Работа ТОЛЬКО в ячейках• Выделяется скобкой справа• Различный СТИЛЬ
• Input – выражение для вычисления, Output – вывод результата вычисления, Text, Title, Section, … – текст
• Ячейки ввода (Input, Text, Title, Section, …) и вывода (Output)
• Ввод встроенных символов через палитры (меню Palletes)• Удобство ввода данных в начале знакомства с системой• Контекстная подсказка для ввода с клавиатуры. ВАЖНО научится работать с
клавиатуры
• Документ может иметь разный СТИЛЬ оформления (Article, Textbook,…)
Компьютерная математика. Mathematica. 2017 15
![Page 16: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/16.jpg)
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
![Page 17: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/17.jpg)
1.4.1 Встроенная функция. Пример
Компьютерная математика. Mathematica. 2017 17
![Page 18: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/18.jpg)
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
![Page 19: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/19.jpg)
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
![Page 20: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/20.jpg)
1.4.2 Присваивание Set (=) и SetDelayed (:=)
В системе Mathematica нету фундаментального различия между понятиями переменная и функция (см. Example 2, fSetDelayed)
Компьютерная математика. Mathematica. 2017 20
![Page 21: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/21.jpg)
1.4.2 Функция пользователя. Пример I
Компьютерная математика. Mathematica. 2017 21
![Page 22: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/22.jpg)
1.4.2 Функция пользователя. Пример II
Компьютерная математика. Mathematica. 2017 22
![Page 23: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/23.jpg)
1.4.2 Функция пользователя. Пример III
Компьютерная математика. Mathematica. 2017 23
![Page 24: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/24.jpg)
1.4.2 Функция пользователя. Рекурсия
Компьютерная математика. Mathematica. 2017 24
![Page 25: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/25.jpg)
1.4.4 Безымянная функция
• Определяется без имени
• Вызывается там, где определяется
functionBody(#1,#2,Slot[3],…,#n) &
или с использованием локальных имен
Function[{arg1,arg2,…,argn}, functionBody]
По-английски: pure function, anonymous function, lambda expression
Компьютерная математика. Mathematica. 2017 25
![Page 26: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/26.jpg)
1.4.4 Безымянная функция. Пример I
Компьютерная математика. Mathematica. 2017 26
СОВЕТ: тело безымянной функции записывайте в круглых скобках10 (#1+#2)&[1,2]
![Page 27: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/27.jpg)
1.4.4 Безымянная функция. Пример II
Компьютерная математика. Mathematica. 2017 27
Многие встроенные функции используют безымянные функции в качестве аргумента
![Page 28: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/28.jpg)
1.4.4 Безымянная функция. Пример III
Компьютерная математика. Mathematica. 2017 28
![Page 29: Компьютерная математика. Часть 2km.mmf.bsu.by/courses/2016/km2ped/KM2_Introduction... · 1.2.3 Ядро •Вычисляет выражение(Expression)](https://reader033.vdocuments.mx/reader033/viewer/2022050312/5f73e29a0d4a584bad607d34/html5/thumbnails/29.jpg)
Тема 1. Важные понятия
• Ядро, Оболочка, Сессия
• Документ, Ячейка
• Выражение (Тема Все есть выражение)
• Образец (Тема Образец)
• Безымянная функция (Тема Функциональный стиль программирования)
• Виды присваиваний = (Set), := (SetDelayed), -> (Rule)
• Синтаксическое различие между скобками: [аргументы функций],(группировка в выражении), {элементы списка}, {*комментарии*}, [[ ??? ]]
Компьютерная математика. Mathematica. 2017 29