presentation.ppt
- Количество слайдов: 42
Или вид на ПО изнутри Разработал: Бабичев А. А. МАТЕМАТИКА В ПРОГРАММИРОВАНИИ
Объект исследования – ПО – математические методы Цель исследования – выяснить, зачем нужна и где практическая значимость математических методов в программировании Задачи: -разобраться в практическом значении математических методов в программировании; -Создать наиболее оптимальное ПО, которое выполняет необходимые функции и имеет простой интерфейс для демонстрации непосредственно решения математических задач в программировании; -Показать жизненные примеры использования сложных математических расчётов и аналитического подхода к созданию и применению их в ПО.
Математика и ПО В высшей математике много разных областей. И всегда программирование и математика идут рука об руку, потому что логика программирования строгая и формализованная, на ней очень легко применять выведенные в математике правила и законы.
Математика и ПО Для программирования самой часто используемой областью математики является дискретная математика, которая работает с дискретными структурами. Примеров много.
Математика и ПО
Математика и ПО
Математика и ПО Ещё не нужно забывать про теорию вероятности и математическую статистику. Чаще всего их законы используются в программировании игр и моделировании систем. Расчет случайных величин - важный прием программирования. Например, рассчитать, сколько урона нанесет юнит в игре. Или в какое время случится событие.
Математика и ПО Ну и если программировать графику, то там без знания линейной алгебры и матриц не обойтись. Формул там действительно много. Кроме того, всегда может попасться задача из узкой области математики, и никогда заранее не знаешь, какие знания пригодятся для её решения.
Рекурсия Реку рсия — процесс повторения элементов самоподобным образом. Например, если два зеркала установить друг напротив друга, то возникающие в них вложенные отражения суть одна из форм бесконечной рекурсии.
Рекурсия В математике и информатике рекурсия имеет отношение к методу определения функций: рекурсивно заданная функция в своём определении содержит себя, в частности, рекурсивной является функция, заданная рекурсивной формулой. function build_tree($cats, $parent_id){ if(is_array($cats) and isset($cats[$parent_id])){ $tree = '<ul>'; foreach($cats[$parent_id] as $cat){ $tree. = '<li>'. $cat['name']; $tree. = build_tree($cats, $cat['id']); $tree. = '</li>'; } $tree. = '</ul>'; } else return null; return $tree; }
Нахождение факториала function fak(N: Integer): Integer; begin; if((N=0)OR(N=1)) then Result: =1 else Result: =N*fak(N-1); end;
Практическое применение На самом деле применений рекурсии в программировании гораздо больше, чем кажется. Потому что рекурсия — это, пожалуй, единственный способ обхода любой древовидной структуры, когда заранее неизвестны ни ее размеры, ни глубина вложенности.
Численное интегрирование begin if (a = b) then begin result : = 0; exit end; if (a > b) then begin x : = a; a : = b; b : = x; sign : = -1 end else sign: =1; h : = (b - a); s : = y(a) + y(b); s 2 : = s; repeat s 3 : = s 2; h : = h/2; s 1 : = 0; x : = a + h; repeat s 1 : = s 1 + 2*y(x); x : = x + 2*h; until (not(x < b)); s : = s + s 1; s 2 : = (s + s 1)*h/3; x : = abs(s 3 - s 2)/15 until (not(x > e)); result : = s 2*sign; end;
Матрицы
Матрицы в компьютерной графике (X, Y, Z, w) Если w == 1, тогда вектор (x, y, z, 1) – позиция в пространстве Если w == 0, тогда вектор (x, y, z, 0) - направление
Преобразование матриц Умножение матрицы на вектор, получаем изменённый вектор:
Преобразование матриц In C++, with GLM: glm: : mat 4 my. Matrix; // объявляем матрицу glm: : vec 4 my. Vector; // объявляем вектор // заполняем их как-нибудь glm: : vec 4 transformed. Vector = my. Matrix * my. Vector; //умножаем матрицу //на вектор In GLSL : mat 4 my. Matrix; // объявляем матрицу vec 4 my. Vector; // объявляем вектор // заполняем их как-нибудь vec 4 transformed. Vector = my. Matrix * my. Vector; //умножаем матрицу //на вектор
Преобразование матриц
Преобразование матриц Перенос вершины на 10 единиц по оси X:
Преобразование матриц Туже матрицу переноса на 10 по Х умножим на направление:
Матрицы маштабирования
Матрица модели
Матрица модели
Матрица модели
Матрица камеры
Матрица камеры
Матрица проекции
Матрица проекции
Матрица проекции
Матрица проекции
Матрица проекции
Выводы В своём исследовании я пытался выяснить, зачем нужна и где практическая значимость математических методов в программировании. Я думаю что я достаточно убедил в необходимости знаний математических процессов для программиста, в зависимости от определённой деятельности. Я попытался вкратце наглядно продемонстрировать все те объекты которые я исследовал не используя «глобальных выкладок» с точки зрения математики и информатики
Литература Интернет ресурсы Филимонова Е. В. Математика: Учебное пособие для средних специальных учебных заведений. - Ростов н/Д: Феникс, 2010 Омельченко В. П. , Кубатова Э. В. Математика: учебное пособие. - Ростов н/Д: Феникс, 2010 Шипачёв В. С. Начала высшей математики: Учебное пособие для вузов. – М. : Дрофа, 2010. Валуцэ И. И. , Дилигул Г. Д. Математика для техникумов на базе средней школы: Учебное пособие. – М. : Наука. Гл. ред. физ. -мат. лит. 2010 Лапчик М. П. , М. И. Рагулина, Е. К. Хеннер Численные методы: Учебное пособие для студ вузов. - М. Издательский центр «Академия» , 2010.
presentation.ppt