Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

17. Mathematica. Построение функции пользователя.




17. Mathematica. Построение функции пользователя.

В Mathematica возможно определение новых функций, выполняю­щих необходимые действия. Эти функции называют функциями пользо­вателя. Их задают традиционным способом, в привычной нам математи­ческой нотации. В левой части выражения записывается имя функции и ее формальные аргументы, в правой части- тело функции, между частя­ми - оператор, позволяющий определить указанное правило.

18. Mathematica. Что такое образцы и где они используются. Проверка на соответствие образцу

Образец (Pattern) в Mathematica означает выражение, описывающее много выражений, класс выражений. По виду образца определяют, какое множество выражений указано.

Существуют правила построения образцов, описывающих различ­ные классы выражений. Отличительная особенность выражения, являю­щегося образцом - наличие символа _. Полная форма этого символа Blank [ ]. Любое выражение обозначают _. Если требуется описать мно­жество, состоящее из одного или нескольких выражений, используют два символа подчеркивания. Самое широкое множество описывается с по­мощью трех символов подчеркивания, которые означают или ничего, или одно выражение, или несколько выражений. Функция MathQ [expression, pattern]. Она проверяет данное выражение на соответствие указанному образцу. Это булева функция, которая возвращает значение True, если выражение со­ответствует указанному образцу, и False в противном случае.

19. Mathematica. Семейство Set функций.

20. Mathematica. Организация справочной системы

21. Mathematica. Именование образца и его части. Примеры

Образцу можно присваивать имя. Для этого используют идентифи­катор, располагая его слева от символа Blank xxx_Head? Test. Выражение описывает множество выражений, имеющих указан­ную голову Head и возвращающих значение True на булевой функции Test. Символ ххх указывает, что в дальнейшем любое выражение, удов­летворяющее этим свойствам, будет именоваться ххх. Например, выражение n_Integer? EvenQ описывает некоторое четное целое число, именуемое в дальнейшем п; xReal - некоторое число типа Real, именуемое в дальнейшем х. Иногда в образцах, имеющих сложную структуру, нужно именовать только часть. Имя части образца помещается перед именуемой частью и отделяется двоеточием PatternName: Pattern. Например, Convex [1, {Р: {_? NumericQ, _? NumericQ}}, rest ]. Здесь имеется в виду выражение с головой Convex, имеющее своим первым аргументом число 1, вторым - список, состоящий из одного списка по имени Р, третьим и следующими аргументами - некоторое выражение или последователь­ность выражений, которые именуются в дальнейшем rest.

22. Mathematica. Образцы, соответствующие условию. Примеры

В Mathematica можно описывать множества выражений путем построения необходимых логических высказываний. Для этого используют встроенную функцию Condition. Ее инфиксная операторная форма /;. Выражение Pattern /; Condition.   читается так: «выражение, соответствующее образцу Pattern, вычисляется в случае, когда выражение Condition истинно». Некоторые примеры построения образцов:

 х_/; NumberQ[x] некоторое число

х_ /; NumberQ[x]& & Im[x]=0 некоторое вещественное число

xList /; VectorQ[x] вектор, не содержащий подсписков

xList /; VectorQ[x, NumberQ] вектор с элементами-числами

xList /; MatrixQ[x] матрица, не содержащая подсписков

xList /; MatrixQ[x, NumberQ] матрица чисел

 Условие может указываться в различных местах: или в момент определения образца, или в момент его использования. Factorial[n_Integer /; n > 0]: = n! Factorial[n_Integer]: = n! /; n > 0

23. Mathematica. Образцы, содержащие альтернативу. Примеры

Если множество описываемых выражений не укладывается в один образец, используют несколько образцов, объединяя их в один при по­мощи функции Alternatives. Это многоместная функция, ее операторная инфиксная форма имеет вид вертикальной черты |. Образцы, построен­ные таким образом, называют образцами, содержащими альтернативу. Такие образцы записывают в форме Patterni | Pattern2 |... | Patternk Например, определим функцию ff ClearAll[ff] ff[x: (_Integer|_Rational|_Complex)]: = Log[x]/; Positive[x]

Она вычисляет логарифм от выражений с головой либо Integer, либо Rational, либо Complex при условии, что они положительны

Выражение л имеет голову Symbol и поэтому не может быть вычислено функцией ff. Воздействие булевой функции Positive на выражение 7+i дает значение False, и, следовательно, выражение 7+i также не вычисляется по правилу ff.

 

 

24. Mathematica. Установка значений аргументов функции по умолчанию. Примеры

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

 

25. Mathematica. Использование в образцах встроенных по умолчанию значений. Примеры

Если при определении функции указать аргумент в виде function[x_Head? Test: Value], то в момент вызова функции в случае отсут­ствия этого аргумента произойдет присваивание ему значения по умол­чанию Value. fun [х_, у_: 1, z_: 2]: = р[х, у, z] 

fun[а]

р [а, 1, 2]

fun[b, с]

Р [Ь, с, 2]

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...