Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
default.doc
Скачиваний:
6
Добавлен:
14.09.2019
Размер:
230.91 Кб
Скачать
  1. 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

  1. 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.

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

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

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

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

fun[а]

р [а, 1, 2]

fun[b, с]

Р [Ь, с, 2]

  1. Mathematica. Функции, осуществляющие поиск выражений, соответствующих образцу

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

fun [х_, у_:1, z_:2] : = р[х, у, z]

fun[а]

р [а, 1, 2]

fun[b, с]

Р [Ь, с, 2]

  1. Mathematica. Функции порождения списков

Списком называют выражение, имеющее голову List. Оператором, конструирующим список, являются фигурные скобки. Элементы списка - также выражения - записываются в скобках через запятую. Возможно существование пустого списка List[ ], или { }.

В системе существует несколько функций, порождающих списки: Range, Table, Array.

Функция Range может иметь один, два или три аргумента. В случае за­дания одного аргумента функция Range [п] определена только на атомар­ных объектах с головой Integer, Rational, Real. При этом если n < 1, воз­вращается пустой список, в противном случае генерируется список нату­ральных чисел от 1 до значения целой части числа п.

Range [#] &/@{1, 7/3, 3.2, i, "as", х, -5}

{{1}, {1,2}, {1,2,3},Range[i],Range[as],Range[x],{}}

Функция Table позволяет генерировать списки, устроенные более сложно. Table [expression, {п}] возвращает список, состоящий из п зна­чений одного и того же вычисленного выражения expression. Общий вид функции

Table[expression(i, j, k), iterator^ iterator^ iterator^.

Она возвращает вложенные списки значений выражения ехрг при каждом фиксированном значении каждой локальной переменной. При указании нескольких итераторов порождается вложенный список. Уро­вень вложенности списка равен количеству итераторов.

Функция Array[f, n] порождает одномерный список длины n, или вектор с элементами f[i], i = 1, n. Если второй аргумент имеет вид { m, n }, то результат - вложенный список уровня 1, или матрица, или двумер­ный массив с элементами f [i, j], где i = 1, ..., m, j = 1, .., n.

Array[a, {2, 3}]

{{a[l, 1] , a[l, 2] , a[l, 3] }, {a[2, 1] , a[2, 2] , a[2, 3] }}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]