Задание математических отношений
Символьные преобразования – при всей их кажущейся таинственности осуществляются по определенным, хотя и весьма многочисленным, а потому для нас запутанным, правилам. Основные из них давно известны из математики и описаны в многочисленных справочниках и монографиях. Они записаны в ядре системы и вызываются из него при создании условий, необходимых для выполнения того или иного преобразования. Если этих условий нет, исходное выражение просто повторяется. А если обнаружена явная ошибка в преобразованиях, то о ее сути выводится соответствующее сообщение. При ситуациях, лишь близких к ошибочным, выводится предупреждающее сообщение, и вычисления продолжаются.
Однако математика и использующие ее науки непрерывно развиваются. Появляются все новые и новые правила преобразований. Пользователь-математик может пожелать изменить встроенные правила преобразований – например, для создания новых разделов математики, базирующихся на каких-либо новых представлениях. Блестящий пример этого – теория относительности Эйнштейна.
Таким образом, возникает необходимость расширения математических символьных систем и обучения их новым правилам математических преобразований. Система Mathematica имеет и такие возможности. Поясним на простых примерах, как это делается.
В математике можно найти множество примеров математических отношений. Например, хорошо известно такое отношение для логарифма и экспоненциальной функции:
log(exp(x)) = xНе обременяя себя поиском действительно новых закономерностей (порой на это может не хватить жизни, да и везет не каждому ученому), зададим приведенную закономерность для введенных по-новому функций log и ехр. Центральным моментом тут является введение новых имен функций, которые начинаются с малых букв, а не с больших, как у встроенных функций Log и Ехр. Поэтому система воспринимает log и ехр как новые функции.
Итак, вводим "новую" закономерность следующим образом:
log[exp[x_]] := x General::spelll: Possible spelling error: new symbol name "log" is similar to existing symbol "Log". General::spelll: Possible spelling error: new symbol name "exp" is similar to existing symbol "Exp".Система на всякий случай сообщает о рискованности эксперимента – символы log и ехр похожи на зарезервированные имена функций Log и Ехр. Проигнорировав это предупреждение, проверим введенную закономерность в работе.
| Ввод (In) | Вывод (Out) | 
|---|---|
| log [exp [15]] | 15 | 
| 1оg[ехр[у^2+1]] | 1+y2 | 
Итак, наша "новая" закономерность работает. Можно ввести, скажем, и такое известное отношение:
log[x_ ^ n_] := n * log[x]Проверим, какие отношения заданы нами для функции log:
?log Global log log[exp[x_]] := x log[x_n - ] := n log[x]Проверим введенные правила, например, так:
5log[[1 + x] ^ 5] 5log[1 + x]Рассмотрим еще пару примеров задания "новых" математических правил. В первом примере задано правило – логарифм произведения равен сумме логарифмов сомножителей:
log[x_ * y_] := log[x] + log[y]Любопытно, что эта закономерность действует при любом числе сомножителей:
log[a * b * c * d * e] log[a] + log[b] + log[c] + log[d] + log[e]Второй пример иллюстрирует задание объекта, ассоциированного со списком:
a /: a[x_] + a[y_] := a[x + y] a[x] + a[y] + a[z] a[x + y + z]Введенные здесь обозначения х_, у_ и n_ представляют собой образцы, на место которых могут подставляться произвольные выражения. Позже мы обсудим применение образцов более детально.
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Примечание:
Описанные выше примеры наглядно демонстрируют возможности выполнения так называемого математического программирования, в основе которого лежит задание определенных математических соотношений между математическими понятиями, прежде всего такими, как функции.
