Компьютерная алгебра в программе Mathematica 4




Задание математических отношений



Задание математических отношений

Символьные преобразования- при всей их кажущейся таинственности осуществляются по определенным, хотя и весьма многочисленным, а потому для нас запутанным, правилам. Основные из них давно известны из математики и описаны в многочисленных справочниках и монографиях. Они записаны в ядре системы и вызываются из него при создании условий, необходимых для выполнения того или иного преобразования. Если этих условий нет, исходное выражение просто повторяется. А если обнаружена явная ошибка в преобразованиях, то о ее сути выводится соответствующее сообщение. При ситуациях, лишь близких к ошибочным, выводится предупреждающее сообщение, и вычисления продолжаются.

Однако математика и использующие ее науки непрерывно развиваются. Появляются все новые и новые правила преобразований. Пользователь-математик может пожелать изменить встроенные правила преобразований — например, для создания новых разделов математики, базирующихся на каких-либо новых представлениях. Блестящий пример этого — теория относительности Эйнштейна.

Таким образом, возникает необходимость расширения математических символьных систем и обучения их новым правилам математических преобразований. Система Mathematica имеет и такие возможности. Поясним на простых примерах, как это делается.

В математике можно найти множество примеров математических отношений. Например, хорошо известно такое отношение для логарифма и экспоненциальной функции:

log(exp(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+y 2
Итак, наша «новая» закономерность работает. Можно ввести, скажем, и такое известное отношение:

log[x_^n_] :=n*log[x]

Проверим, какие отношения заданы нами для функции log:

?log

Global' log

log[exp[x_] ] : = x

log[x_n-] := n log[x]

Проверим введенные правила, например, так:

5lоg[[1+х]^5]

5lоg[1+х]

Рассмотрим еще пару примеров задания «новых» математических правил. В первом примере задано правило — логарифм произведения равен сумме логарифмов сомножителей:

log[x_*y_] := log[x] +log[y]

Любопытно, что эта закономерность действует при любом числе сомножителей:

log[a*b*c*d*e]

log [a] + log[b] + log[c] + log[d] + log[e]

Второй пример иллюстрирует задание объекта, ассоциированного со списком:

а /: а[х_] +а[у_] :=а[х + у]

а[х] + а[у] +a[z]

а[х+ у+ z]

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


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


 







Начало  Назад  Вперед



Книжный магазин