В поисках математики. Михаил Денисенко, Нигма
-
Upload
yaevents -
Category
Technology
-
view
10.474 -
download
4
description
Transcript of В поисках математики. Михаил Денисенко, Нигма
В поисках математики
Денисенко Михаил, Нигма.РФ
1YaC, Москва, 19 сентября 2011 года
Статистика использования
50 000 запросов в день
источники запросов: - сайт нигма.рф- приложение по
2
- приложение по математике
для сайта vkontakte.ru (~625 000 пользователей)
Статистика использования
33
Пользовательская
аудитория
школьники
студенты младших курсов
Возможности системы:
4
Возможности системы:математические рассчеты,исследование функций,упрощение выражений,преобразование метрических величин,конвертация валют, ... –
всего около 30 различных типов задач
Пользовательский запрос
Front-end.Проверка на математичность
Система символьныхвычислений.Обработка символьного
Краткая архитектура системы
5
Back-end.- Замена констант, единиц измерения.- Текстовая запись числовых выражений.- Нормализция запроса.- Генерация вариантов разбора.- Преобразование в синтаксис системы символьныхвычислений
Обработка символьного представления, генерация ответа и шагов решения.
Отрисовка формул в формате TeX
Проверка на математичность
Отбраковка запросов, похожих на математику. Например, телефонные
номера, названия моделей различной
Химический тест на математичность
моделей различной техники
Выделение констант, метрических величин,
математических конструкций
6
Исходный запрос
Front-endОбработка единиц измерения
Замена буквенного ввода на символьно-числовой
Замена всех оставшихся объектов на математические эквиваленты
Обработка нормализатором: преобразование к
Цепочка преобразований запроса
Back-end
Обработка нормализатором: преобразование к строгому синтаксису системы символьных
вычислений, разрешение неоднозначности, разбиение на варианты
Выделение формулы и управляющих фраз
Угадывание задачи по типу выражения
Запрос в систему символьных вычислений
Дополнительные ответы и шаги решенияУдаление дублирующихся ответов, TeX
7
Различные варианты разбора запросов вида
Пример
8
1+2/3+4/5+6
8
Пример
валюты
99
Пример
текстовая запись
1010
Введение в символьные вычисления
11
«Недостойно одаренному человеку тратить, подобно рабу, часы на вычисления, которые безусловно можно было бы доверить любому лицу, если бы при этом применить машину.»
Готфрид Вильгельм фон Лейбниц
Символьные вычисления и численные расчеты
Символьные вычисления –преобразования и работа с математическими равенствами и формулами, как с
12
формулами, как с последовательностью символов
Численные методы оперируют приближенными численными значениями, стоящими за математическими выражениями, т.е. числами (целыми и с плавающей запятой)
уцкауц
Компьютерная алгебра
Символьные вычисления или компьютерная алгебра – научная дисциплина, ставящая целью разработку алгоритмов и программного обеспечения для решения задач, записанных с помощью математических выражений и формул (аналитическая
13
выражений и формул (аналитическая запись), на компьютере.
Недостатки систем символьных вычислений:- отсутствие компилятора в машинный код; - неудобная стыковка с другими языками программирования;- неудобная обработка ряда типов, в том числе классов ООП
уцкауц
MACSYMA
MACSYMA (Project MAC’s SYmbolic Manipulator),разрабатывалась в MIT с 1968 по 1982 годы.
Project MAC (Project on Mathematics and
14
Project MAC (Project on Mathematics and Computation) финансировался Министерством энергетики США (DOE) и другими государственными организациями.
Maxima 1
Maxima произошла от системы MACSYMA.
Первоначальный вариант – DOE MACSYMA, 1982 год.
Maxima — система символьных вычислений:- дифференцирование;
15
- дифференцирование;- интегрирование;- разложение в ряд, преобразование Лапласа;- обыкновенные дифференциальные уравнения;- СЛАУ;- многочлены, множества, списки, векторы, матрицы,...
15
Maxima 2
Проблемы в решателе уравнений.
1. Потеря решений.(input) solve(sin(x)=0,x);(output) [x=0]
2. Не учитывается область определения и значения функций.
16
функций.(input) solve(x*log(x)=0,x);(output) [x=0, x=1]
3. Набор алгоритмов решения недостаточно полон.(input) solve(x+sqrt(x)=2,x);(output) [x=2-sqrt(x)]
ЖйMaxima 3
Проверка ложных решений.
Для уравнения
17
Нужно проверить, является ли решением следующее число:
Maxima 4
Полиномизация
Попробуем решить уравнение
Сделаем замену
В результате получаем систему:
18
Путем проверки, отбраковываются ложные решения. Получается ответ
В Maxima есть алгоритмы для решения полиномиальных систем.
Maxima 5
Приведение к полиномиальному виду различных уравнений
Рассмотрим уравнение:
Делаем подстановку и эквивалентное преобразование :
19
В результате получаем уравнение, которое содержит все корни исходного:
«Почти» полиномизация тригонометрических уравнений:
Maxima 6
2020
Maxima 7
Общая схема решения многих типов уравнений:
Уравнение Полином
2121
Решение +проверка корней
Проблема в системе упрощения:различная аналитическая запись одних и тех решений,необходимо удаление дубликатов корней.
Учет области допустимых значений уравнения
Пример
2222
Пример
Периодические решения
2323
Другие примеры и описание возможностей сервиса можно посмотреть по ссылкеhttp://info.nigma.ru/index.php/nigma-matematika.html
(input) b+a=c;(output) b + a = c
(input) expand(%*(b+a));(output) b2 +2 ab + a2 = bc + ac
(input) -a*c-b^2-a*b+%;(output) −ac + ab + a2= bc − b2− ab
Интересные доказательства
24
(output) −ac + ab + a2= bc − b2− ab
(input) map(factor,%);(output) −a (c − b − a)= b (c − b − a)
(input) %/(c-b-a);(output) −a = b
(input) a+%;(output) 0= b + a
24
Доказательство log(-1)=0
(input) expand((y-1)^2)=(y-1)^2;(output) y^2− 2*y +1=(y − 1)^2
(input) map(log,%);(output) log(y^2− 2*y +1)=2*log(y − 1)
2525
(input) subst(x,log(y-1),%);(output) log(y^2- 2*y+1)=2*x
(input) subst(0,y,%);(output) 0=2*x,
где x – это log(y-1) при y=0
Выводы
- Разработан универсальный сервис для проведения точных математических вычислений в поисковой системе.- Позволяет решать множество математических проблем с шагами решения, поддерживает работу с метрическими величинами, конвертирует валюты, распознает и пытается угадать различные варианты запросов.
26
Перспективы развития
- точность определения математичности запроса;- расширение типов задач;- шаги решения для всех видов математических запросов;- улучшение алгоритмов решения уравнений, разработка новых обобщенных алгоритмов;
27
разработка новых обобщенных алгоритмов;- возможность легкого и удобного ввода математических конструкций произвольной сложности;- оптимизация производительности ядра системы символьных вычислений.
27
Спасибо за внимание
[email protected]Денисенко Михаил 28