• Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
  • Сервис онлайн-записи на собственном Telegram-боте
    Тот, кто работает в сфере услуг, знает — без ведения записи клиентов никуда. Мало того, что нужно видеть свое расписание, но и напоминать клиентам о визитах тоже. Нашли самый бюджетный и оптимальный вариант: сервис VisitTime.
    Для новых пользователей первый месяц бесплатно.
    Чат-бот для мастеров и специалистов, который упрощает ведение записей:
    Сам записывает клиентов и напоминает им о визите;
    Персонализирует скидки, чаевые, кэшбэк и предоплаты;
    Увеличивает доходимость и помогает больше зарабатывать;


Иллюстрированный самоучитель по Mathematica 3/4

Дополнительные примеры работы с функциями

Приведем еще ряд примеров действия функций Apply, Map и Nest.

Ввод (In) Вывод (Out)
Nest[f,x,3] f [f[f [X]]]
Apply[f,{a,b,c}] f[a, b, c]
s [x_,y_, z_]: =х+у+b  
N[Apply[s,{l,2,a}]] 3. + b
Map[f,{a,b,c}] {f [a], f [b], f [c] }
N[Map[Exp, {1.2.3}]] {2.71828, 7.38906, 20.0855}
Map[f,1+2+c] f[3] + f[c]
m={{a,b},{c,d}} {{a, b}, {c, d}}
Map[f,m] {f [{a, b}], f [{c, d}] }
take2[list_]: = Take[list,2]  
Map[take2,{{a,b,c},{c,a,b),{c,c,a}}] {{a, b}, {c, a}, {c, c}}

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

Вычисление среднего для элементов списка:

Mean[list_] := Apply[Plus, list] / Length[list] / ;
VectorQ[list] && Length[list] > 0
General::spell!: Possible spelling error: new symbol name "list" is similar to existing symbol "List".

Вычисление среднего геометрического для списка:

GeometricMean[list_] := Apply
[Times, list"4 (I/Length [list])] /;
VectorQ[list] && Length[list] > 0

Вычисление гармонического среднего для списка:

HarmonicMean[list_] := Length[list]
/ Apply[Plus, I/list] /;
VectorQ[list] && Length[list] > 0

Обратите внимание на то, что при задании первой функции Mathematica предупреждает о том, что введенный идентификатор list подозрительно напоминает зарезервированный идентификатор List. Все приведенные выше функции не имеют смысла, если список пустой. Поэтому в них введен контроль за такой ситуацией.

Теперь можно выполнить расчеты по этим формулам.

Ввод (In) Вывод (Out)
data={1.2.3.4} {1, 2, 3, 4}
Mean [data] 5/2
GeometricMean [data] 2 3/4 3 1/4
N[%] 2.21336
HarmonicMean [data] 48/25

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.