Difference between revisions of "BSc: ComputationalMathematics"

From IU
Jump to navigation Jump to search
(Created page with "= <span style="color:red;">Название дисциплины</span> = : '''Квалификация выпускника''': <span style="color:red;">бакалавр/ма...")
 
Line 1: Line 1:
  +
=Вычислительная математика=
= <span style="color:red;">Название дисциплины</span> =
 
: '''Квалификация выпускника''': <span style="color:red;">бакалавр/магистр</span>
+
: '''Квалификация выпускника''': бакалавр
: '''Направление подготовки''': __________________
+
: '''Направление подготовки''': 09.03.01 - “Информатика и вычислительная техника”
: '''Направленность (профиль) образовательной программы''': <span style="color:red;">(Указывается направленность (профиль) образовательной программы</span>
+
: '''Направленность (профиль) образовательной программы''': Математические основы ИИ
: '''Программу разработал(а)''': __________________
+
: '''Программу разработал(а)''':
   
 
== 1. Краткая характеристика дисциплины ==
 
== 1. Краткая характеристика дисциплины ==
  +
Курс посвящен проблемам решения прикладных математических задач методами вычислительных алгоритмов и изучению их свойств.
Изучение дисциплины обеспечивает формирование и развитие компетенций обучающихся в области <span style="color:red;">(указывается область изучаемой дисциплины. Например: программного обеспечения и его разработки; робототехники и т.д.)</span>, их применение для решения различных прикладных задач в рамках профессиональной деятельности. В ходе освоения дисциплины обучающиеся рассматривают <span style="color:red;">(краткое описание содержания дисциплины)</span>.
 
   
 
== 2. Перечень планируемых результатов обучения ==
 
== 2. Перечень планируемых результатов обучения ==
: '''Целью освоения дисциплины''' ...
+
: '''Целью освоения дисциплины'''
  +
Данный курс отвечает на следующие вопросы. К каким задачам применим алгоритм или метод? Как работает метод? Как сравнивать методы с альтернативными с использованием вычислительных метрик? Что может пойти не так? Каковы источники ошибок и неопределенности?
 
: '''Задачами дисциплины''' вляются ... <span style="color:red;">(перечислить задачи дисциплины, например: изучение принципов организации подсистем обработки естественного языка для различных прикладных задач и тенденций развития лингвистических ресурсов в сфере интеллектуальных информационных технологий и т.д.).</span>
 
   
  +
: '''Задачами дисциплины''' являются
  +
* Освоение основных численных алгоритмов и методов, применимых для решения математических задач.
  +
* Изучение численной дифференциации и интеграции и их практическое применение.
  +
* Разработка навыков решения систем нелинейных и линейных алгебраических уравнений численными методами различных типов.
  +
* Овладение методами интерполяции и регрессии для анализа и предсказания данных.
  +
*Получение практического опыта в численном решении систем нелинейных дифференциальных уравнений.
 
=== Общая характеристика результата обучения по дисциплине ===
 
=== Общая характеристика результата обучения по дисциплине ===
: '''Знания:''' сформированы систематические знания ...
+
: '''Знания:'''
  +
* Основные принципы численного решения математических задач.
<span style="color:red;">(информация, которой обладает обучающийся в определенных областях, полученная в процессе обучения, то есть это информация для осуществления какой-либо деятельности (действия))</span>
 
  +
* Принципы численного дифференцирования и интегрирования.
  +
* Различные методы численного решения систем нелинейных алгебраических уравнений.
  +
* Методы интерполяции и регрессии.
  +
* Основы численного решения систем нелинейных дифференциальных уравнений.
  +
: '''Умения:'''
  +
* Применять численные методы для решения разнообразных математических задач.
  +
* Выполнять численную дифференциацию и интеграцию.
  +
* Применять различные методы для решения систем нелинейных алгебраических уравнений.
  +
* Применять методы интерполяции и регрессии для анализа данных.
  +
* Проводить численное решение систем нелинейных дифференциальных уравнений.
  +
: '''Навыки (владения):'''
  +
* Решение типичных математических задач с использованием численных методов.
  +
* Проведение нелинейной регрессии и интерполяции.
  +
* Выполнение численной дифференциации и интегрирования.
  +
* Решение систем нелинейных алгебраических уравнений численными методами.
  +
* Решение систем нелинейных дифференциальных уравнений численными методами.
  +
  +
   
: '''Умения:''' сформированы умения ...
 
<span style="color:red;">(предполагает целенаправленное выполнение действий, по изученной информации)</span>
 
   
: '''Навыки (владения):''' сформировано владение навыками ...
 
<span style="color:red;">(автоматизированные устойчивые умения выполнять определенную работу, то есть действие выполняется без контроля сознания, автоматически)</span>
 
   
 
== 3. Структура и содержание дисциплины ==
 
== 3. Структура и содержание дисциплины ==
  +
<span style="color:red;">(Указываются: 1) порядковый номер раздела (количество разделов зависит от содержания Вашей дисциплины); 2) наименования разделов дисциплины; 3) темы указанных разделов (количество тем в каждом разделе зависит от содержания Вашей дисциплины)</span>
 
 
{| class="wikitable" style="width:70%;"
 
{| class="wikitable" style="width:70%;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
Line 31: Line 50:
 
| style="width:60%" | Содержание дисциплины по темам
 
| style="width:60%" | Содержание дисциплины по темам
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 1. || Численное дифференцирование и интегрирование, интерполяция функций, решение систем линейных алгебраических уравнений || Темы, рассматриваемые в этом разделе:
| style="text-align:center;" | 1. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
Основные аспекты численных вычислений. Точность чисел с плавающей запятой.
  +
Численное дифференцирование. Метод неопределенных коэффициентов.
  +
Интерполяция функций. Сплайны.
  +
Численное интегрирование. Формулы квадратур.
  +
Решение систем линейных алгебраических уравнений.
 
|- style="background-color:#F8F9FA; color:#202122;"
 
|- style="background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 2. ||Решение нелинейных алгебраических уравнений и систем. Решение ОДУ и УПД. Дискретные ряды Фурье.|| Темы, рассматриваемые в этом разделе:
| style="text-align:center;" | 2. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
Численное решение нелинейных алгебраических уравнений и систем.
|- style="background-color:#F8F9FA; color:#202122;"
 
  +
Основные концепции теории разностных схем. Численные методы решения задачи с начальными условиями для обыкновенных дифференциальных уравнений (ОДУ).
| style="text-align:center;" | 3. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
Численные методы решения задачи с краевыми условиями для ОДУ.
|- style="background-color:#F8F9FA; color:#202122;"
 
  +
Дискретные ряды Фурье. Численное решение ОДУ второго порядка дискретными рядами Фурье. Численное решение уравнений в частных производных (УПД) дискретными рядами Фурье.
| style="text-align:center;" | 4. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
  +
Метод переменных направлений. Численное решение УПД методом конечных разностей.
|- style="background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 5. || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
|- style="background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | ... || || &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-<br>
 
 
|}
 
|}
   
Line 50: Line 71:
 
| style="width:10%" | №<br>п/п
 
| style="width:10%" | №<br>п/п
 
| style="width:30%" | Наименование раздела<br>дисциплины (модуля)
 
| style="width:30%" | Наименование раздела<br>дисциплины (модуля)
| style="width:60%" | Перечень рассматриваемых тем (вопросов)<br><span style="color:red;">(Указываются ВСЕ задания для практических занятий по разделам дисциплины подробно в соответствии с темами)</span>
+
| style="width:60%" | Перечень рассматриваемых тем (вопросов)<br>
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 1. ||Численное дифференцирование и интегрирование, интерполяция функций, решение систем линейных алгебраических уравнений ||Выполнить численное дифференцирование методом неопределенных коэффициентов.
| style="text-align:center;" | 1. || ||
 
  +
Выполнить интерполяцию функции, используя сплайны.
  +
Выполнить численное интегрирование, используя формулы квадратур.
  +
Решить систему линейных алгебраических уравнений, используя методы итерации.
  +
Решить систему линейных алгебраических уравнений, используя методы вариации.
  +
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 2. ||Решение нелинейных алгебраических уравнений и систем. Решение ОДУ и УПД. Дискретные ряды Фурье. ||Выполнить численное решение нелинейных алгебраических уравнений и систем.
| style="text-align:center;" | 2. || ||
 
  +
Выполнить численное решение задачи с начальными условиями для обыкновенных дифференциальных уравнений (ОДУ).
  +
Выполнить численное решение задачи с краевыми условиями для ОДУ.
  +
Выполнить численное решение ОДУ и УПД с использованием дискретных рядов Фурье.
  +
Выполнить численное решение уравнений в частных производных (УПД) с помощью метода конечных разностей.
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
| style="text-align:center;" | 3. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 4. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 5. || ||
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | ... || ||
 
 
|}
 
|}
  +
 
'''Текущий контроль успеваемости обучающихся по дисциплине:'''
 
'''Текущий контроль успеваемости обучающихся по дисциплине:'''
   
<span style="color:red;">(К формам текущего контроля можно отнести собеседование, коллоквиум, тест, контрольную работу, лабораторную работу, эссе, реферат и иные творческие работы.)</span>
 
 
{| class="wikitable" style="width:70%;"
 
{| class="wikitable" style="width:70%;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
| style="width:5%" | №<br>п/п
 
| style="width:5%" | №<br>п/п
 
| style="width:20%" | Наименование раздела<br>дисциплины
 
| style="width:20%" | Наименование раздела<br>дисциплины
| style="width:25%" | Форма текущего контроля<br><br><span style="color:red;">(выберите соответствующие формы контроля)</span>
+
| style="width:25%" | Форма текущего контроля<br>
| style="width:50%" | Материалы текущего контроля<br><br><span style="color:red;">(Указываются ВСЕ ЗАДАНИЯ/ВОПРОСЫ текущего контроля успеваемости обучающихся по разделам дисциплины подробно в соответствии с требованиями)</span>
+
| style="width:50%" | Материалы текущего контроля<br>
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 1.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
| Например:
 
Устный / письменный опрос:<br>-<br>-<br>-<br>...<br>
 
Тематика групповых проектов:<br>-<br>-<br>-<br>...<br>
 
Темы докладов:<br>-<br>-<br>-<br>...<br>
 
Тематика эссе:<br>-<br>-<br>-<br>...<br>
 
Задания, в том числе, для групповых проектов:<br>-<br>-<br>-<br>...<br>
 
Тестирование (письменное или компьютерное):<br>-<br>-<br>-<br>...<br><br>
 
Проверка разработки отдельных частей кода программного продукта.
 
   
Другие формы текущего контроля, используемые Вами на занятиях<br>-<br>-<br>-<br>...<br>
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 2.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 3.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 4.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 5.
 
|
 
| style="text-align:center;" | <span style="color:red;">Проверка выполнения домашних заданий;<br>Устный / письменный опрос;<br>Тестирование (письменное или компьютерное);<br>Эссе;<br>Доклад;<br>Защита проекта; Коллоквиум;<br>Проверка разработки отдельных частей кода программного продукта и другие формы текущего контроля, используемые Вами на занятиях</span>
 
|
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | ... || || ||
 
 
|}
 
|}
  +
 
'''Контрольные вопросы для подготовки к промежуточной аттестации:'''
 
'''Контрольные вопросы для подготовки к промежуточной аттестации:'''
 
{| class="wikitable" style="width:70%;"
 
{| class="wikitable" style="width:70%;"
Line 116: Line 105:
 
| style="width:25%" | Наименование <br> раздела дисциплины
 
| style="width:25%" | Наименование <br> раздела дисциплины
 
| style="width:65%" | Вопросы
 
| style="width:65%" | Вопросы
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 1. || ||
 
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 1. ||Численное дифференцирование и интегрирование, интерполяция функций, решение систем линейных алгебраических уравнений ||<li><p>Вам требуется вычислить интеграл функции из "чёрного ящика". Функция будет предоставлена вам во время компиляции в виде заголовочного файла <math display="inline">blackbox.h</math>. В самом начале вашей программы вы должны считать одно целое число <math display="inline">n</math> из стандартного ввода и вызвать функцию <math display="inline">blackbox-init(n)</math>. Функцию <math display="inline">blackbox-init</math> следует вызывать только один раз. Все остальные функции должны быть вызваны только после <math display="inline">blackbox-init</math>. Вызов <math display="inline">blackbox_init</math> с аргументом, отличным от того, который был предоставлен через стандартный ввод, приводит к неопределённому поведению.</p>
| style="text-align:center;" | 2. || ||
 
  +
<p>Когда вам нужно получить значение функции в точке <math display="inline">x</math>, вы должны вызвать <math display="inline">blackbox(x)</math>. Гарантируется, что эта функция является потокобезопасной. <math display="inline">x</math> должен находиться в диапазоне [-1; 1].</p>
  +
<p>Если вам нужно получить максимальное абсолютное значение <math display="inline">k</math>-й производной функции из "чёрного ящика" на интервале интегрирования, вы должны вызвать <math display="inline">blackbox-df(k)</math>. Значение <math display="inline">k</math> должно быть целым числом от 1 до 6.</p>
  +
<p>Для проверки, осциллирует ли функция из "чёрного ящика", вы должны вызвать <math display="inline">blackbox-period()</math>.</p>
  +
<p>Возвращаемое значение будет длиной периода, если функция осциллирует, и 0 в противном случае.</p>
  +
<p>Требуемая абсолютная точность составляет <math display="inline">10^-9</math>. Усечённый файл <math display="inline">blackbox.h</math> (реализующий только одну из возможных функций "чёрного ящика") и пример (несовершенный) решения <math display="inline">solution.cpp</math> доступны вам на вкладке "Файлы" в PCMS.</p>
  +
<p>Вы должны отправить только свой файл <math display="inline">solution.c/solution.cpp</math>. Соответствующий файл <math display="inline">blackbox.h</math> будет предоставлен тестовой системой.</p>
  +
<p>Вы не должны пытаться проводить обратную инженерию "чёрного ящика" и/или взаимодействовать с ним каким-либо другим способом, кроме перечисленных выше четырёх функций.</p></li>
  +
<li><p>Задача проста: вам нужно подогнать набор точек под 9-степенный многочлен</p>
  +
<p><math display="inline">y = a_9x^9+a_8x^8+...+a_1x+a_0</math>.</p>
  +
<p>Ваша программа получает следующий поток команд:</p>
  +
<ul>
  +
<li><p>ADD <math display="inline">x</math> <math display="inline">y</math> Считывать значения <math display="inline">x</math> и <math display="inline">y</math>.</p></li>
  +
<li><p>FIT Вывести коэффициенты для многочлена, подогнанного под все точки, считанные с начала программы. У вас не будет более 13 команд FIT в каждом тесте.</p></li>
  +
<li><p>END Вывести коэффициенты для многочлена, подогнанного под все точки, считанные с начала программы, и завершить выполнение.</p></li></ul>
  +
<p>Вы получите не более 107 команд до END.</p></li>
  +
<li><p>Задача проста: вам нужно решить систему линейных алгебраических уравнений (СЛАУ) <math display="inline">Ax = b</math> с остаточной ошибкой не более <math display="inline">10^-9</math>.</p>
  +
<p>И матрица <math display="inline">A</math> очень хороша: невырожденная, симметричная и строго диагонально доминирующая. Кажется, это кусок пирога. Ловушка: у вас нет явного представления о матрице <math display="inline">A</math>.</p>
  +
<p>Вы можете только получить результат её умножения на вектор.</p>
  +
<p>У вас есть несколько функций черного ящика, через которые вы работаете с СЛАУ:</p>
  +
<ul>
  +
<li><p>void <math display="inline">blackbox-init()</math> – инициализирует внутренние структуры данных черного ящика. Эту функцию следует вызывать в самом начале программы! Ни одна другая функция черного ящика не должна быть вызвана до неё, и не должно быть чтения из <math display="inline">stdin</math> (или, по крайней мере, как говорят, "будьте добры, перемотайте").</p></li>
  +
<li><p>int <math display="inline">blackbox-size()</math> – возвращает количество уравнений (равное количеству неизвестных) системы. Количество уравнений находится между 10 и 10000 (включительно).</p></li>
  +
<li><p>void <math display="inline">blackbox-mult</math> (const double <math display="inline">*x</math>, double <math display="inline">*out</math>) – вычисляет произведение <math display="inline">A</math> и вектора <math display="inline">x</math>, записывает результаты в out. Указатели <math display="inline">x</math> и out должны указывать на разные участки памяти размером не менее <math display="inline">blackbox-size() * sizeof(double)</math> байт каждый.</p></li>
  +
<li><p>void <math display="inline">blackbox-rhs(double *b)</math> – записывает правую часть СЛАУ (т.е., вектор <math display="inline">b</math>) в массив <math display="inline">b</math>. Указатель <math display="inline">b</math> должен указывать на участок памяти размером не менее <math display="inline">blackbox-size() * sizeof(double)</math> байт.</p></li>
  +
<li><p>void <math display="inline">blackbox-submit(double *solution)</math> – записывает результат программы. Массив solution должен содержать решение СЛАУ: <math display="inline">blackbox-size()</math> значений типа double. Это должна быть последняя функция, вызываемая вашей программой (помимо return 0;).</p></li></ul>
  +
</li></ol>
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
  +
| style="text-align:center;" | 2. ||Решение нелинейных алгебраических уравнений и систем. Решение ОДУ и УПД. Дискретные ряды Фурье. ||<ol>
| style="text-align:center;" | 3. || ||
 
  +
<li><p>Вам необходимо разработать программное обеспечение для нового приёмника GPS/GLONASS. Система навигации спутников работает следующим образом (конечно, это довольно упрощённое описание реальной ситуации). Есть <math display="inline">N</math> &lt; 30 спутников. Каждый спутник транслирует своё положение (<math display="inline">x_i; y_i; z_i</math>) и высокоточное синхронизированное время <math display="inline">t_i</math>. Эти сигналы занимают время до того, как достигнут приёмника (например, установленного в вашем смартфоне). Если приёмник имеет положение <math display="inline">x</math>; <math display="inline">y</math>; <math display="inline">z</math> и принимает сигнал в момент времени <math display="inline">t</math>, то верно следующее уравнение (называемое "Навигационным уравнением") (для простоты, мы выбираем скорость света <math display="inline">c</math> = 1):</p>
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
<p><math display="inline">(x - x_i)^2 + (y - y_i)^2 + (z - z_i)^2 = (t - t_i)^2</math></p>
| style="text-align:center;" | 4. || ||
 
  +
<p>Как мы видим, у нас есть четыре неизвестных (положение приёмника <math display="inline">x</math>; <math display="inline">y</math>; <math display="inline">z</math> и точное время <math display="inline">t</math>, когда он принял сигнал). Поэтому нам нужно как минимум <math display="inline">N</math> = 4 спутника, чтобы определить местоположение приёмника ("фикс"). Система из ровно четырёх навигационных уравнений может, в общем случае, иметь несколько решений. Но обычно видно более <math display="inline">N</math> &gt; 4 спутников, и у нас есть переопределённая система нелинейных уравнений (из-за шума уравнения не могут быть удовлетворены точно). В этом случае наша цель - минимизировать сумму квадратов остатков:</p>
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
<p><math display="inline">Sum_i((x - x_i)^2 + (y - y_i)^2 + (z - z_i)^2 - (t - t_i)^2) \xrightarrow{} min</math>.</p>
| style="text-align:center;" | 5. || ||
 
  +
<p>Ваша программа должна непрерывно считывать данные от виртуального приёмника GPS и выводить положение на каждый момент времени до потери сигнала. Количество спутников (и их порядок) может меняться. Начальное положение неизвестно, но положение между последовательными чтениями не изменяется слишком сильно. Требуемая точность задана следующим образом:</p>
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
  +
<p><math display="inline">Sum_i((x - x_i)^2 + (y - y_i)^2 + (z - z_i)^2 - (t - t_i)^2) < 10^{-6}</math>.</p>
| style="text-align:center;" | ... || ||
 
  +
<p>Гарантируется, что такое решение существует. Координаты <math display="inline">x</math>; <math display="inline">y</math>; <math display="inline">z</math> находятся в диапазоне [-10; 10], время <math display="inline">t</math> находится в диапазоне [-1000; 1000].</p>
  +
<p>Количество чтений гарантированно не превышает <math display="inline">10^5</math>.</p></li>
  +
<li><p>Вам нужно создать программное обеспечение для моделирования нового химического реактора. Ваша программа получает список химических реакций и начальные концентрации всех компонентов. Вы должны вывести концентрации после времени <math display="inline">t</math>.</p>
  +
<p>В реакциях первого порядка для реакции необходимо только одно молекула, и скорость реакции пропорциональна концентрации этого реагента:</p>
  +
<p><math display="inline">A\xrightarrow{k_1} n_1B_1 + n_2B_2 + ... + n_IB_I</math>.</p>
  +
<p>Для этой реакции мы можем записать следующую систему ОДУ:</p>
  +
<p><math display="inline">d[A]/dt=-k_1[A]</math></p>
  +
<p><math display="inline">d[B_i]/dt=n_ik_1[A]</math>, <math display="inline">i=1,...,I</math>.</p>
  +
<p>Здесь <math display="inline">[A]</math> - концентрация молекулы <math display="inline">A</math>, <math display="inline">[B_i]</math> - концентрация молекул <math display="inline">B_i</math>, а <math display="inline">k_1</math> - константа скорости реакции.</p>
  +
<p>В реакциях второго порядка для продолжения реакции необходимо две молекулы:</p>
  +
<p><math display="inline">A+C\xrightarrow{k_2} n_1B_1 + n_2B_2 + ... + n_IB_I</math>.</p>
  +
<p><math display="inline">d[A]/dt=-k_2[A][C]</math></p>
  +
<p><math display="inline">d[B_i]/dt=n_ik_2[A][C]</math>, <math display="inline">i=1,...,I</math>.</p></li>
  +
<li><p>Простейшим примером колебательной химической системы является Oregonator [http://www.scholarpedia.org/article/Oregonator], которая состоит из следующих реакций:</p>
  +
<p><math display="inline">A+Y\xrightarrow{k_1}X+P</math>.</p>
  +
<p><math display="inline">X+Y\xrightarrow{k_2}2P</math>.</p>
  +
<p><math display="inline">A+X\xrightarrow{k_3}2X+2Z</math>.</p>
  +
<p><math display="inline">2X\xrightarrow{k_4}A+P</math>.</p>
  +
<p><math display="inline">B+Z\xrightarrow{k_5}Y</math>.</p>
  +
<p>Скорости реакций всегда будут в пределах порядка их соответствующих значений во входном файле с примерами.</p>
  +
<p>Ввод</p>
  +
<p>На первой строке содержится одно целое число <math display="inline">T</math> = 1...1000 – как долго мы будем запускать наш виртуальный реактор. Вторая строка содержит шесть вещественных чисел – начальные концентрации <math display="inline">X</math>, <math display="inline">Y</math>, <math display="inline">Z</math>, <math display="inline">A</math>, <math display="inline">B</math> и <math display="inline">P</math>. Третья строка содержит пять вещественных чисел – константы скорости реакций <math display="inline">k_1,...,k_5</math>.</p>
  +
<p>Вывод</p>
  +
<p>На выходе должны быть шесть вещественных чисел – конечные концентрации <math display="inline">X</math>, <math display="inline">Y</math>, <math display="inline">Z</math>, <math display="inline">A</math>, <math display="inline">B</math> и <math display="inline">P</math>. Требуемая точность - <math display="inline">10^-6</math>.</p></li>
  +
</ol>
  +
 
|}
 
|}
 
'''Вопросы/Задания к промежуточной аттестации в устной/письменной форме:'''
 
'''Вопросы/Задания к промежуточной аттестации в устной/письменной форме:'''
   
  +
1.. Как выполнить численное дифференцирование с помощью метода неопределенных коэффициентов?<br>
<span style="color:red;">(Указываются ВСЕ ЗАДАНИЯ/ВОПРОСЫ для промежуточной аттестации.)</span>
 
  +
2. Как выполнить интерполяцию функции с использованием сплайнов?<br>
  +
3. Как выполнить численное интегрирование с использованием квадратурных формул?<br>
  +
4. Как решить систему линейных алгебраических уравнений с использованием методов итерации?<br>
  +
5. Как решить систему линейных алгебраических уравнений с использованием методов вариации?<br>
  +
6. Как выполнить численное решение нелинейных алгебраических уравнений и систем?<br>
  +
7. Как выполнить численное решение задачи Коши для обыкновенных дифференциальных уравнений (ОДУ)?<br>
  +
8. Как выполнить численное решение краевых задач для ОДУ?<br>
  +
9. Как выполнить численное решение ОДУ и Уравнений в частных производных (УрЧП) с использованием Дискретного ряда Фурье?<br>
  +
10. Как выполнить численное решение УрЧП с использованием методов конечных разностей?<br>
   
1.<br>2.<br>3.<br>...<br>48.<br>49.<br>50.<br>...
 
 
=== Перечень учебно-методического обеспечения дисциплины ===
 
=== Перечень учебно-методического обеспечения дисциплины ===
 
Список основной литературы:
 
Список основной литературы:
  +
Gilbert Strang. Computational Science and Engineering. Wellesley, MA: Wellesley-Cambridge Press, 2007. 727 Pg. ISBN: 9780961408817.
  +
I.B. Petrov, A.I. Lobanov. Lectures in Computational Mathematics. M.: Internet University of Information Technology, 2006. 523 c. ISBN: 5-94774-542-9.
   
Список дополнительной литературы:
 
 
=== Методические указания для обучающихся по освоению дисциплины ===
 
=== Методические указания для обучающихся по освоению дисциплины ===
<span style="color:red;">(Указываются рекомендации для обучающихся, которые раскрывают суть их работы при различных видах деятельности в рамках освоения дисциплины. Данные рекомендации должны охватывать работу с лекционным материалом, подготовку и работу во время проведения семинарских занятий, самостоятельную работу, подготовку к текущему контролю и промежуточной аттестации)</span>
 
   
  +
<span style="color:red;">(Выберите соответствующие виды учебных занятий, которые используются при изучении Вашей дисциплины)</span>
 
 
{| class="wikitable" style="width:80%;"
 
{| class="wikitable" style="width:80%;"
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#FF0000; font-weight:bold;"
+
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; font-weight:bold;"
 
| style="width:20%" | Вид учебных<br>занятий/деятельности
 
| style="width:20%" | Вид учебных<br>занятий/деятельности
 
| style="width:80%" | Деятельность обучающегося
 
| style="width:80%" | Деятельность обучающегося
 
|-
 
|-
| style="vertical-align:middle; text-align:center; color:red;" | Лекция
 
| style="vertical-align:middle; text-align:left; color:red;" | Написание конспекта лекций: кратко, схематично, последовательно фиксировать основные положения лекции, выводы, формулировки, обобщения; помечать важные мысли, выделять ключевые слова, термины. Обозначить вопросы, термины или другой материал, который вызывает трудности, пометить и попытаться найти ответ в рекомендуемой литературе. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Практическое (семинарское) занятие
 
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к семинарскому (практическому) занятию необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме. На основании обработанной информации постараться сформировать собственное мнение по выносимой на обсуждение тематике. Обосновать его аргументами, сформировать список источников, подкрепляющих его.<br>Во время семинарского (практического) занятия активно участвовать в обсуждении вопросов, высказывать аргументированную точку зрения на проблемные вопросы. Приводить примеры из источниковой базы и научной и/или исследовательской литературы.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Устный/письменный опрос
 
| style="vertical-align:middle; text-align:left; color:red;" | Отвечать, максимально полно, логично и структурировано, на поставленный вопрос. Основная цель – показать всю глубину знаний по конкретной теме или ее части.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Реферат
 
| style="vertical-align:middle; text-align:left; color:red;" | Поиск источников и литературы, составление библиографии. При написании реферата рекомендуется использовать разнообразные источники, монографии и статьи из научных журналов, позволяющие глубже разобраться в различных точках зрения на заданную тему. Изучение литературы следует начинать с наиболее общих трудов, затем следует переходить к освоению специализированных исследований по выбранной теме. Могут быть использованы ресурсы сети «Интернет» с соответствующими ссылками на использованные сайты.<br>Если тема содержит проблемный вопрос, следует сформулировать разные точки зрения на него. Рекомендуется в выводах указать свое собственное аргументированное мнение по данной проблеме. Подготовить презентацию для защиты реферата.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Эссе
 
| style="vertical-align:middle; text-align:left; color:red;" | Написание прозаического сочинения небольшого объема и свободной композиции, выражающего индивидуальные впечатления и соображения по конкретному поводу или вопросу и заведомо не претендующего на определяющую или исчерпывающую трактовку предмета. При работе над эссе следует четко и грамотно формулировать мысли, структурировать информацию, использовать основные понятия, выделять причинно-следственные связи. Как правило эссе имеет следующую структуру: вступление, тезис и аргументация его, заключение. В качестве аргументов могут выступать исторические факты, явления общественной жизни, события, жизненные ситуации и жизненный опыт, научные доказательства, ссылки на мнение ученых и др.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Подготовка к промежуточной аттестации
 
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к промежуточной аттестации необходимо проработать вопросы по темам, которые рекомендуются для самостоятельной подготовки. При возникновении затруднений с ответами следует ориентироваться на конспекты лекций, семинаров, рекомендуемую литературу, материалы электронных и информационных справочных ресурсов, статей.<br>Если тема вызывает затруднение, четко сформулировать проблемный вопрос и задать его преподавателю.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Практические (лабораторные) занятия
 
| style="vertical-align:middle; text-align:left; color:red;" | Практические занятия предназначены прежде всего для разбора отдельных сложных положений, тренировки аналитических навыков, а также для развития коммуникационных навыков. Поэтому на практических занятиях необходимо участвовать в тех формах обсуждения материала, которые предлагает преподаватель: отвечать на вопросы преподавателя, дополнять ответы других студентов, приводить примеры, задавать вопросы другим выступающим, обсуждать вопросы и выполнять задания в группах. Работа на практических занятиях подразумевает домашнюю подготовку и активную умственную работу на самом занятии. Работа на практических занятиях в форме устного опроса заключается прежде всего в тренировке навыков применять теоретические положения к самому разнообразному материалу. В ходе практических занятий студенты работают в группах для обсуждения предлагаемых вопросов.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Самостоятельная работа
 
| style="vertical-align:middle; text-align:left; color:red;" | Самостоятельная работа состоит из следующих частей: 1) чтение учебной, справочной, научной литературы; 2) повторение материала лекций; 3) составление планов устных выступлений; 4) подготовка видеопрезентации. При чтении учебной литературы нужно разграничивать для себя материал на отдельные проблемы, концепции, идеи. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Видеопрезентация
 
| style="vertical-align:middle; text-align:left; color:red;" | Подготовка видеопрезентаций по курсу. Видеопрезентации могут быть сделаны на любую тему, затронутую в ходе курса. Темы должны быть заранее согласованы с преподавателем. Видеопрезентации продолжительностью около 5 минут (300 секунд) должны быть подготовлены в группах, определяемых преподавателем. Несмотря на то, что это групповая работа, должен явно присутствовать вклад каждого члена группы.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Доклад
 
| style="vertical-align:middle; text-align:left; color:red;" | Публичное, развернутое сообщение по определенной теме или вопросу, основанное на документальных данных. При подготовке доклада рекомендуется использовать разнообразные источники, позволяющие глубже разобраться в теме. Учебную литературу можно найти в электронных библиотечных системах, на которые подписан АНО Университет Иннополис.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Дискуссия
 
| style="vertical-align:middle; text-align:left; color:red;" | Публичное обсуждение спорного вопроса, проблемы. Каждая сторона должна оппонировать мнение собеседника, аргументируя свою позицию.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Контрольная работа
 
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к контрольной работе необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Тестирование (устное/письменное)
 
| style="vertical-align:middle; text-align:left; color:red;" | При подготовке к тестированию необходимо проработать материалы лекций, семинаров, основной и дополнительной литературы по заданной теме. Основная цель тестирования – показать уровень сформированности знаний по конкретной теме или ее части.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Индивидуальная работа
 
| style="vertical-align:middle; text-align:left; color:red;" | При выполнение индивидуальной работы необходимо взять задание у преподавателя, ознакомиться с требованиями к выполнению работы, изучить поставленную проблему, найти решение проблемы. Если самостоятельно не удается разобраться в материале, необходимо сформулировать вопрос и задать преподавателю на консультации, во время семинарского (практического) занятия. Оформить результаты работы.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Разработка отдельных частей кода
 
| style="vertical-align:middle; text-align:left; color:red;" | Разработать часть кода, исходя из поставленной задачи и рекомендаций преподавателя. При выполнении работы рекомендуется обращаться к материалам лекций и семинарских (практических) занятий. Если возникают затруднения, необходимо проконсультироваться с преподавателем.
 
|-
 
| style="vertical-align:middle; text-align:center; color:red;" | Выполнение домашних заданий и групповых проектов
 
| style="vertical-align:middle; text-align:left; color:red;" | Для выполнения домашних заданий и групповых проектов необходимо получить формулировку задания от преподавателя и убедиться в понимании задания. При выполнение домашних заданий и групповых проектов необходимо проработать материалы лекций, основной и дополнительной литературы по заданной теме.
 
 
|}
 
|}
 
=== Методы и технологии обучения, способствующие формированию компетенции ===
 
=== Методы и технологии обучения, способствующие формированию компетенции ===
<span style="color:red;">(Указываются все используемые преподавателем методы и технологии обучения)</span>
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
|- style="vertical-align:middle; text-align:center; background-color:#EAECF0; color:#202122; font-weight:bold;"
 
| Методы и технологии обучения, способствующие формированию компетенции
 
| Методы и технологии обучения, способствующие формированию компетенции
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
 
|- style="vertical-align:middle; background-color:#F8F9FA; color:#202122;"
| &nbsp;
 
|}
 
<span style="color:red;">Например:</span>
 
{| class="wikitable" style="width:80%;"
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center; width:5%;" | 1.
 
| style="width:20%;" | Информационно – коммуникационная технология
 
| style="width:75%;" | &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 2.
 
| Технология развития критического мышления
 
| Основные методические приемы развития критического мышления
 
# Прием «Кластер»
 
# Таблица
 
#Учебно-мозговой штурм
 
#Интеллектуальная разминка
 
#Зигзаг, зигзаг -2
 
#Прием «Инсерт»
 
#Эссе
 
#Приём «Корзина идей»
 
#Приём «Составление синквейнов»
 
#Метод контрольных вопросов
 
#Приём «Знаю../Хочу узнать…/Узнал…»
 
#Круги по воде
 
#Ролевой проект
 
#Да – нет
 
#Приём «Чтение с остановками»
 
#Приём «Взаимоопрос»
 
#Приём «Перепутанные логические цепочки»
 
#Приём «Перекрёстная дискуссия»
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 3.
 
| Проектная технология
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 4.
 
| Технология проблемного обучения
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 5.
 
| Кейс – технология
 
| К методам кейс-технологий, активизирующим учебный процесс, относятся:
 
*метод ситуационного анализа (Метод анализа конкретных ситуаций, ситуационные задачи и упражнения; кейс-стадии)
 
*метод инцидента;
 
*метод ситуационно-ролевых игр;
 
*метод разбора деловой корреспонденции;
 
*игровое проектирование;
 
*метод дискуссии.
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 6.
 
| Технология интегрированного обучения
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 7.
 
| Педагогика сотрудничества
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 8.
 
| Технологии уровневой дифференциации
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 9.
 
| Групповая технология
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 10.
 
| Традиционные технологии (классно-урочная система)
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 11.
 
| Здоровьесберегающие технологии
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 12.
 
| Игровая технология
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 13.
 
| Модульная технология
 
|
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| style="text-align:center;" | 14.
 
| Технология мастерских
 
| &nbsp;
 
|- style="vertical-align:top; text-align:left; background-color:#F8F9FA; color:#202122;"
 
| &nbsp;
 
| и др.
 
 
| &nbsp;
 
| &nbsp;
 
|}
 
|}

Revision as of 02:06, 3 April 2024

Вычислительная математика

Квалификация выпускника: бакалавр
Направление подготовки: 09.03.01 - “Информатика и вычислительная техника”
Направленность (профиль) образовательной программы: Математические основы ИИ
Программу разработал(а):

1. Краткая характеристика дисциплины

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

2. Перечень планируемых результатов обучения

Целью освоения дисциплины

Данный курс отвечает на следующие вопросы. К каким задачам применим алгоритм или метод? Как работает метод? Как сравнивать методы с альтернативными с использованием вычислительных метрик? Что может пойти не так? Каковы источники ошибок и неопределенности?

Задачами дисциплины являются
  • Освоение основных численных алгоритмов и методов, применимых для решения математических задач.
  • Изучение численной дифференциации и интеграции и их практическое применение.
  • Разработка навыков решения систем нелинейных и линейных алгебраических уравнений численными методами различных типов.
  • Овладение методами интерполяции и регрессии для анализа и предсказания данных.
  • Получение практического опыта в численном решении систем нелинейных дифференциальных уравнений.

Общая характеристика результата обучения по дисциплине

Знания:
  • Основные принципы численного решения математических задач.
  • Принципы численного дифференцирования и интегрирования.
  • Различные методы численного решения систем нелинейных алгебраических уравнений.
  • Методы интерполяции и регрессии.
  • Основы численного решения систем нелинейных дифференциальных уравнений.
Умения:
  • Применять численные методы для решения разнообразных математических задач.
  • Выполнять численную дифференциацию и интеграцию.
  • Применять различные методы для решения систем нелинейных алгебраических уравнений.
  • Применять методы интерполяции и регрессии для анализа данных.
  • Проводить численное решение систем нелинейных дифференциальных уравнений.
Навыки (владения):
  • Решение типичных математических задач с использованием численных методов.
  • Проведение нелинейной регрессии и интерполяции.
  • Выполнение численной дифференциации и интегрирования.
  • Решение систем нелинейных алгебраических уравнений численными методами.
  • Решение систем нелинейных дифференциальных уравнений численными методами.



3. Структура и содержание дисциплины


п/п
Наименование раздела
дисциплины
Содержание дисциплины по темам
1. Численное дифференцирование и интегрирование, интерполяция функций, решение систем линейных алгебраических уравнений Темы, рассматриваемые в этом разделе:

Основные аспекты численных вычислений. Точность чисел с плавающей запятой. Численное дифференцирование. Метод неопределенных коэффициентов. Интерполяция функций. Сплайны. Численное интегрирование. Формулы квадратур. Решение систем линейных алгебраических уравнений.

2. Решение нелинейных алгебраических уравнений и систем. Решение ОДУ и УПД. Дискретные ряды Фурье. Темы, рассматриваемые в этом разделе:

Численное решение нелинейных алгебраических уравнений и систем. Основные концепции теории разностных схем. Численные методы решения задачи с начальными условиями для обыкновенных дифференциальных уравнений (ОДУ). Численные методы решения задачи с краевыми условиями для ОДУ. Дискретные ряды Фурье. Численное решение ОДУ второго порядка дискретными рядами Фурье. Численное решение уравнений в частных производных (УПД) дискретными рядами Фурье. Метод переменных направлений. Численное решение УПД методом конечных разностей.

4. Методические и оценочные материалы

Задания для практических занятий:


п/п
Наименование раздела
дисциплины (модуля)
Перечень рассматриваемых тем (вопросов)
1. Численное дифференцирование и интегрирование, интерполяция функций, решение систем линейных алгебраических уравнений Выполнить численное дифференцирование методом неопределенных коэффициентов.

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

2. Решение нелинейных алгебраических уравнений и систем. Решение ОДУ и УПД. Дискретные ряды Фурье. Выполнить численное решение нелинейных алгебраических уравнений и систем.

Выполнить численное решение задачи с начальными условиями для обыкновенных дифференциальных уравнений (ОДУ). Выполнить численное решение задачи с краевыми условиями для ОДУ. Выполнить численное решение ОДУ и УПД с использованием дискретных рядов Фурье. Выполнить численное решение уравнений в частных производных (УПД) с помощью метода конечных разностей.

Текущий контроль успеваемости обучающихся по дисциплине:


п/п
Наименование раздела
дисциплины
Форма текущего контроля
Материалы текущего контроля

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


п/п
Наименование
раздела дисциплины
Вопросы
1. Численное дифференцирование и интегрирование, интерполяция функций, решение систем линейных алгебраических уравнений
  • Вам требуется вычислить интеграл функции из "чёрного ящика". Функция будет предоставлена вам во время компиляции в виде заголовочного файла . В самом начале вашей программы вы должны считать одно целое число из стандартного ввода и вызвать функцию . Функцию следует вызывать только один раз. Все остальные функции должны быть вызваны только после . Вызов с аргументом, отличным от того, который был предоставлен через стандартный ввод, приводит к неопределённому поведению.

    Когда вам нужно получить значение функции в точке , вы должны вызвать . Гарантируется, что эта функция является потокобезопасной. должен находиться в диапазоне [-1; 1].

    Если вам нужно получить максимальное абсолютное значение -й производной функции из "чёрного ящика" на интервале интегрирования, вы должны вызвать . Значение должно быть целым числом от 1 до 6.

    Для проверки, осциллирует ли функция из "чёрного ящика", вы должны вызвать .

    Возвращаемое значение будет длиной периода, если функция осциллирует, и 0 в противном случае.

    Требуемая абсолютная точность составляет . Усечённый файл (реализующий только одну из возможных функций "чёрного ящика") и пример (несовершенный) решения доступны вам на вкладке "Файлы" в PCMS.

    Вы должны отправить только свой файл . Соответствующий файл будет предоставлен тестовой системой.

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

  • Задача проста: вам нужно подогнать набор точек под 9-степенный многочлен

    .

    Ваша программа получает следующий поток команд:

    • ADD Считывать значения и .

    • FIT Вывести коэффициенты для многочлена, подогнанного под все точки, считанные с начала программы. У вас не будет более 13 команд FIT в каждом тесте.

    • END Вывести коэффициенты для многочлена, подогнанного под все точки, считанные с начала программы, и завершить выполнение.

    Вы получите не более 107 команд до END.

  • Задача проста: вам нужно решить систему линейных алгебраических уравнений (СЛАУ) с остаточной ошибкой не более .

    И матрица очень хороша: невырожденная, симметричная и строго диагонально доминирующая. Кажется, это кусок пирога. Ловушка: у вас нет явного представления о матрице .

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

    У вас есть несколько функций черного ящика, через которые вы работаете с СЛАУ:

    • void – инициализирует внутренние структуры данных черного ящика. Эту функцию следует вызывать в самом начале программы! Ни одна другая функция черного ящика не должна быть вызвана до неё, и не должно быть чтения из (или, по крайней мере, как говорят, "будьте добры, перемотайте").

    • int – возвращает количество уравнений (равное количеству неизвестных) системы. Количество уравнений находится между 10 и 10000 (включительно).

    • void (const double , double ) – вычисляет произведение и вектора , записывает результаты в out. Указатели и out должны указывать на разные участки памяти размером не менее байт каждый.

    • void – записывает правую часть СЛАУ (т.е., вектор ) в массив . Указатель должен указывать на участок памяти размером не менее байт.

    • void – записывает результат программы. Массив solution должен содержать решение СЛАУ: значений типа double. Это должна быть последняя функция, вызываемая вашей программой (помимо return 0;).

  • 2. Решение нелинейных алгебраических уравнений и систем. Решение ОДУ и УПД. Дискретные ряды Фурье.
    1. Вам необходимо разработать программное обеспечение для нового приёмника GPS/GLONASS. Система навигации спутников работает следующим образом (конечно, это довольно упрощённое описание реальной ситуации). Есть < 30 спутников. Каждый спутник транслирует своё положение () и высокоточное синхронизированное время . Эти сигналы занимают время до того, как достигнут приёмника (например, установленного в вашем смартфоне). Если приёмник имеет положение ; ; и принимает сигнал в момент времени , то верно следующее уравнение (называемое "Навигационным уравнением") (для простоты, мы выбираем скорость света = 1):

      Как мы видим, у нас есть четыре неизвестных (положение приёмника ; ; и точное время , когда он принял сигнал). Поэтому нам нужно как минимум = 4 спутника, чтобы определить местоположение приёмника ("фикс"). Система из ровно четырёх навигационных уравнений может, в общем случае, иметь несколько решений. Но обычно видно более > 4 спутников, и у нас есть переопределённая система нелинейных уравнений (из-за шума уравнения не могут быть удовлетворены точно). В этом случае наша цель - минимизировать сумму квадратов остатков:

      .

      Ваша программа должна непрерывно считывать данные от виртуального приёмника GPS и выводить положение на каждый момент времени до потери сигнала. Количество спутников (и их порядок) может меняться. Начальное положение неизвестно, но положение между последовательными чтениями не изменяется слишком сильно. Требуемая точность задана следующим образом:

      .

      Гарантируется, что такое решение существует. Координаты ; ; находятся в диапазоне [-10; 10], время находится в диапазоне [-1000; 1000].

      Количество чтений гарантированно не превышает .

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

      В реакциях первого порядка для реакции необходимо только одно молекула, и скорость реакции пропорциональна концентрации этого реагента:

      .

      Для этой реакции мы можем записать следующую систему ОДУ:

      , .

      Здесь - концентрация молекулы , - концентрация молекул , а - константа скорости реакции.

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

      .

      , .

    3. Простейшим примером колебательной химической системы является Oregonator [1], которая состоит из следующих реакций:

      .

      .

      .

      .

      .

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

      Ввод

      На первой строке содержится одно целое число = 1...1000 – как долго мы будем запускать наш виртуальный реактор. Вторая строка содержит шесть вещественных чисел – начальные концентрации , , , , и . Третья строка содержит пять вещественных чисел – константы скорости реакций .

      Вывод

      На выходе должны быть шесть вещественных чисел – конечные концентрации , , , , и . Требуемая точность - .

    Вопросы/Задания к промежуточной аттестации в устной/письменной форме:

    1.. Как выполнить численное дифференцирование с помощью метода неопределенных коэффициентов?
    2. Как выполнить интерполяцию функции с использованием сплайнов?
    3. Как выполнить численное интегрирование с использованием квадратурных формул?
    4. Как решить систему линейных алгебраических уравнений с использованием методов итерации?
    5. Как решить систему линейных алгебраических уравнений с использованием методов вариации?
    6. Как выполнить численное решение нелинейных алгебраических уравнений и систем?
    7. Как выполнить численное решение задачи Коши для обыкновенных дифференциальных уравнений (ОДУ)?
    8. Как выполнить численное решение краевых задач для ОДУ?
    9. Как выполнить численное решение ОДУ и Уравнений в частных производных (УрЧП) с использованием Дискретного ряда Фурье?
    10. Как выполнить численное решение УрЧП с использованием методов конечных разностей?

    Перечень учебно-методического обеспечения дисциплины

    Список основной литературы: Gilbert Strang. Computational Science and Engineering. Wellesley, MA: Wellesley-Cambridge Press, 2007. 727 Pg. ISBN: 9780961408817. I.B. Petrov, A.I. Lobanov. Lectures in Computational Mathematics. M.: Internet University of Information Technology, 2006. 523 c. ISBN: 5-94774-542-9.

    Методические указания для обучающихся по освоению дисциплины

    Вид учебных
    занятий/деятельности
    Деятельность обучающегося

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

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