Записи с меткой «матриц»

Опции численного интегрирования

Опции численного интегрирования

  • AccuracyGoal — указывает число цифр, задающих точность промежуточных результатов.
  • Compiled — указывает на возможность компиляции функции.
  • GaussPoints — устанавливает количество точек в гауссовой части квадратуры Гаусса—Кронрода.
  • MaxPoint — задает максимальное число точек при интегрировании.
  • MaxRecursion — задает максимальную глубину рекурсии.
  • Method -> DoubleExponential — назначает для использования алгоритм двойной экспоненциальной сходимости.
  • Method -> MultiDimensional — назначает для использования многомерный алгоритм. Имеет смысл только для интегрирования кратных интегралов.
  • Method -> GaussKronrod — выбирает для использования адаптивную квадратуру Гаусса—Кронрода. При многомерном интегрировании GaussKronrod обращается к декартову произведению одномерных квадратурных формул Гаусса—Кронрода.
  • Method -> Trapezoidal — назначает для решения рекурсивный метод трапеций. Он особенно успешен, если подынтегральная функция периодична и интервал интегрирования составляет точно один период. Для многомерного интегрирования данный метод обращается к декартову произведению одномерных правил трапеций.
  • MinRecursion — задает минимальную глубину рекурсии.
  • PrecisionGoal — задает погрешность вычислений.
  • SingularityDepth — указывает, насколько глубокая рекурсия допустима перед тем, как начинается изменение переменной на границах интервала интегрирования.

Прочитать остальную часть записи »

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

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

  • Accumulate [f, g [el, e2,…]] —возвращает g[el,f [el,e2] , f'[f [el,e2] ,e3 ],…].
  • Cases [{el, e2,…}, pattern] — возвращает список тех ei, которые соответствуют заданному шаблону pattern.
  • Cases [ {el,…}, pattern -> rhs] или Cases [ {el,…}, pattern :> rhs] — возвращает список значений rhs, соответствующих тем ei, которые подходят под шаблон pattern.
  • CoefficientList [poly, var] — возвращает список коэффициентов перед степенями переменной var в полиноме poly, начиная со степени 0.
  • CoefficientList [poly, {varl, var2,…}] — возвращает матрицу коэффициентов vari.
  • $CommandLine — список строк, возвращающий элементы командной строки, с помощью которой была вызвана Mathematica.
  • Compose [а, b, с, d] — возвращает а [b [с [d] ]].
  • ComposeList [ {f I, f2,…}, х] — формирует список формы {x,fl[x],
  • ComposeSeries [s, t, u,…] — объединяет степенные ряды, подставляя в ряд s ряд t, затем ряд и и т. д. Ряды (исключение для первого элемента) должны начинаться положительной степенью переменной.
  • Composition [f1, f2, f3,…] — представляет композицию функций fl, f2, f 3, …
  • FoldList[f, x, {a, b,…}]—возвращает {x, f [x, a] , f [f [x, a] ,b],…}.
  • HeadCompose [a, b, c, d] — возвращает a [b] [c] [d].
  • bistable — атрибут, который может назначаться символу f для указания того, что если функция f получит аргумент (аргументы) в виде списка, то и результатом будет являться список.
  • MemberQ [list, form, levelspec] — тестирует все части списка list, определяемые спецификацией уровня levelspec.
  • Partition [list,n] — разбивает список list на неперекрывающиеся части длиной п. Если количество элементов в списке не делится нацело на п, то последние k (k < п) элементов удаляются.
  • Partition [list, n, d] — как и предшествующая функция, дает разбиение списка, но со сдвигом между соседними подсписками, равным d. При d<n подсписки перекрываются.
  • Permutations [list] — генерирует список всех возможных перестановок элементов в списке list.
  • Position [expr, pattern] — возвращает список позиций в ехрг, в которых размещаются объекты, сопоставимые с указанным шаблоном pattern.
  • Position [expr, pattern, levspec] — выполняет поиск только объектов, находящихся на уровнях, указываемых levspec.
  • RealDigits [x] — возвращает список цифр в приближенном вещественном числе х вместе с количеством цифр слева от десятичной точки, присутствующих в научной записи числа.
  • RealDigits [x,b] — возвращает список цифр числа х по основанию Ь.
  • Signature [list] — дает сигнатуру перестановки, необходимой для размещения элементов списка list в каноническом порядке.
  • SingularValues [m] — возвращает особое значение декомпозиции для чис-ловой матрицы т. Результатом будет список {u, w, v}, где w — список ненулевых особых значений, а исходная матрица m может быть записана как Соп-jugate[Transpose[u]].DiagonalMatrix[w].v.
  • SequenceLimit [list] — возвращает по эпсилон-алгоритму Винна аппроксимацию предела последовательности, первые несколько членов которой зада-. ны в виде списка list. Этот алгоритм может давать конечные значения для расходящихся последовательностей.
  • SubValues [f ] — возвращает список правил преобразования, относящихся ко всем подзначениям (значениям для f [х,…][…] и т.д.), определенным для символа f.
  • $SuppressInputFormHeads — представляет собой список заголовков тех выражений, чьи Input Form не должны автоматически пересылаться в программный препроцессор.

Функции расширения списков нулями
PadLeft[list] PadLeft[list,n]
PadLeft[list,f,n] PadRight[list]
PadRight[list,n]
PadRightLeft[list,n]
Примеры их применения:

  • PadLeft [ {a,b, с}, 6] — возвращает список {0, 0, 0, a,b, с}.
  • PadRight [ {a,b, с}, 6] — возвращает список {а,b, с, 0, 0,0}.

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

  • MatrixExp [m] — возвращает экспоненциал матрицы m.
  • MatrixPower [m, n] — возвращает п-ю степень матрицы m.
  • MatrixQ [ехрг] — возвращает True, если ехрг является списком списков, который может представлять матрицу, иначе возвращает False.
  • MatrixQ [expr, test] — возвращает True, только если test дает True в применении к каждому элементу матрицы в ехрг.
  • Minors [m, k] — возвращает матрицу, составленную из определителей всех kxk субматриц m.
  • NullSpace [m] — возвращает список векторов, которые формируют базис для нулевого пространства матрицы m
  • Pivoting — опция, относящаяся к функциям декомпозиции матрицы; указывает, что должен выполняться поворот столбца. Результат имеет форму {Q, R, Р}, где Р — матрица перестановок, такая что имеет место соотношение M.P=Conjugate [Transpose [Q] ] .R, где М— начальная (исходная) матрица.
  • Pseudolnverse [m] — ищет псевдообратную матрицу для прямоугольной матрицыm.
  • QRDecomposition [m] — возвращает QR-разложение (декомпозицию) для числовой матрицы m. Результат представляет собой список {q, r), где q — ортогональная матрица, r — верхняя треугольная матрица.

ZeroTest — опция для LinearSolve и других линейных алгебраических функций; дает функцию для применения ее к сочетаниям (комбинациям) из матричных элементов с целью определения, следует ли полагать их равными нулю.

Решение линейных уравнений с трехдиагональной матрицей — Tridiagonal

Решение линейных уравнений с трехдиагональной матрицей —Tridiagonal
При решении линейных уравнений часто встречаются матрицы особой формы — трехдиагональные. Подпакет Tridiagonal имеет функцию для решения линейных уравнений с такой матрицей:

  • TridiagonalSolve [a,b, с, г] — решение системы линейных уравнений с трехдиагональной матрицей m. х==г (диагонали представлены векторами а, b и с, вектор свободных членов — г).

Пример применения данной функции:
<<LinearAlgebra` Tridiagonal`
{а, b, с} = {{1, 2, 3}, {4, 5, б, 7}, {10, 9, 8}}
{{1, 2, 3}, {4, 5, 6, 7}, {10, 9, 8}}
m = Table[Switch[ j-i, -1, a[[j]], 0, b[[jj], 1, c[[j-l]], _, 0], {i, 4}, {j, 4}]//MatrixForm
TridiagonalSolve[a, b, c, {8, 3, 4, 5}
С учетом представленных функций и функций ядра набор матричных средств системы Mathematica является одним из наиболее полных. В области решения задач в численном виде он несколько уступает лишь специализированной матричной системе MATLAB 5.0/5.3.
Расширение в теории чисел
 
Мы уже описывали уникальные возможности систем Mathematica 3/4 в области обработки чисел и численных вычислений. Эти возможности существенно расширяет пакет NumberTheory, содержащий функции, реализующие алгоритмы теории чисел. Данный раздел посвящен знакомству с этим пакетом. далее…

Геометрические расчеты — пакет Geometry

Геометрические расчеты — пакет Geometry
 
В этом разделе описан пакет Geometry, содержащий ряд функций, полезных при выполнении геометрических расчетов. В основном это функции, относящиеся к построению регулярных полигонов на плоскости и полиэдров в пространстве. Кроме того, в пакете есть функции, задающие вращение фигур на плоскости и в пространстве.
Характеристики регулярных полигонов и полиэдров — Polytopes
Подпакет Polytopes содержит ряд функций для регулярных полигонов (многоугольников):

  • NumberOfVertices [р] — число вершин углов полигона;
  • NumberOfEdges [p] — число сторон полигона;
  • NumberOf Faces [p] — число граней полигона;
  • Vertices [р] — список координат вершин углов полигона;
  • Area [р] — площадь полигона при длине каждой стороны, равной 1;
  • InscribeciRadius [р]— радиус вписанной в полигон окружности;
  • CircumscribedRadius [р] — радиус описывающей полигон окружности.

В этих функциях наименование полигона р может быть следующим (в скобках дано число сторон):
Digon (2)
Triangle (3)
Square (4)
Pentagon (5)
Hexagon (6)
Heptagon (7)
Octagon (8)
Nonagon (9)
Decagon (10,)
Undecagon (11)
Dodecagon (12)
На0 показаны примеры применения некоторых из этих функций и построение крупными точками вершин полигона — Пентагона (пятиугольника).
Для объемных фигур — полиэдров — имеются следующие функции:

  • NumberOfVertices [р] — число вершин углов полиэдра;
  • NumberOfEdges [р] — число сторон полиэдра;
  • NumberOf Faces [р] — число граней полиэдра;
  • Vertices [p] — список координат вершин углов полиэдра;
  • Area [p] — площадь полиэдра при длине каждой стороны, равной 1;
  • InscribedRadius [р] — радиус вписанной в полиэдр окружности;
  • CircumscribedRadius [р] — радиус окружности, описывающей полиэдр;
  • Volume [p] — объем полиэдра;
  • Dual[p] — дуальный полиэдр;
  • Schlafli[p] — символ полиэдра.

Здесь наименование полиэдра может быть следующим:
Tetrahedron (4)
Cube (6)
Octahedron (8)
Didecahedron (12)
Icosahedron (20)
Примеры применения функций полиэдров представлены ниже:
Volume[Octahedron]
(Корень из 2) /3
Vertices [Octahedron]
{{0, 0, 1.41421}, {1.41421, 0, 0}, {0, 1.41421, 0},
{0, 0, -1.41421}, {-1.41421, 0, 0}, {0, -1.41421, 0}}
Dual [Octahedron]
Cube
InscribedRadius [Octahedron]
1/(Корень из 6)
GircumscribedRadius [Octahedron]
1/(Корень из 2)
 
Вращение фигур на плоскости и в пространстве — Rotations
Для задания поворота плоских фигур на заданный угол в подпакете Rotations заданы следующие функции:

  • RotationMatrix2D[theta] — дает матрицу для поворота на угол theta в двух измерениях;
  • Rotate2D [vec, theta] — поворачивает вектор vec по часовой стрелке на угол theta;
  • Rotate2D[vec,theta,{x,y}] — поворачивает вектор vec по часовой стрелке на угол theta относительно точки с координатами {х, у}.

Рисунок иллюстрирует работу с этими функциями.
Аналогичные функции существуют и для поворота трехмерных фигур:

  • RotationMatrix3D [psi, theta,phi] — дает матрицу поворота на заданные углы в трехмерном пространстве;
  • Rotate3D [vec, psi, theta, phi] — поворачивает вектор vec на заданные углы в трехмерном пространстве;
  • Rotate3D [vec, psi, theta, phi,{x,y,z}]— поворачивает вектор vec на заданные углы в трехмерном пространстве относительно точки с координатами {х,у, z}.

Приведем пример вычисления матрицы трехмерного поворота:
RotationMatrix3D[Pi, Pi/2, Pi/6]

{{-(Корень из 3)/2,0,1/2 }},{1/2,0,(Корень из 3)/2},{ 0,1,0,}}

Функции векторного анализа

Функции векторного анализа
Помимо функций для задания и преобразования систем координат подпакет Vector An a lysis содержит ряд функций собственно векторного анализа:

  • DotProduct [vl, v2] — возвращает скалярное произведение векторов vl и v2, заданных в текущей системе координат;
  • CrossProduct [vl,v2] — возвращает векторное произведение векторов vl и v2, заданных в текущей системе координат;
  • ScalarTripleProduct [vl, v2, v3 ] — возвращает тройное скалярное произведение для векторов vl, v2 и v3, заданных в текущей системе координат;
  • DotProduct [vl, vl, coordsys ] — возвращает скалярное произведение векторов vl и v2, заданных в системе координат coordsys;
  • CrossProduct [vl, v2, coordsys] — возвращает векторное произведение векторов vl и v2, заданных в системе координат coordsys.

Примеры выполнения этих операций представлены ниже:
SetCoordinates[ParabolicCylindrical[ ]]
ParabolicCylindrical[Uu, W, Zz]
DotProduct[{1.2, 1.1, 0}, {5.4, -2, 1.2}]
-12.8093
CrossProduct[{1.2, 1.1, 0}, {5.4, -2, 1.2}]
{-1.78157, 0.0774597, -17.8476}
ScalarTripleProduct[{1, 0, 1}, {1, 1, 0}, {0, 1, 1}, Cartesian]
2
Для вычисления производной дуги служат функции:

  • ArcLengthFactor [ { fx, f у, f z}, t] — дает дифференциал длины дуги, заданной параметрически с параметром t в текущей системе координат;
  • ArcLengthFactor [ {fx, f у, fz}, t, coordsys] — дает дифференциал длины дуги, заданной параметрически с параметром t в системе координат coordsys

Примеры вычисления дифференциалов и длин дуг с помощью этих функций:
param = {Cos[t], Sin[t], t}
{Cos[t], Sin[t], t}
ArcLengthFactor[ param, t, Cartesian] //Simplify
корень из 2
f[x_, y_, z_] := x^2 y^2 z
Integrate[ f[param] ArcLengthFactor[
param, t, Cartesian], {t, 0, 2 Pi}] // Simplify
Ряд функций служит для создания матрицы Якоби (матрицы частных производных) и вычисления относящихся к ней понятий:

  • JacobianMatrix [ ] — возвращает матрицу Якоби, определенную в текущих координатах;
  • JacobianMatrix [pt] — возвращает матрицу Якоби в точке pt и в текущих координатах;
  • JacobianMatrix [coordsys] — возвращает матрицу Якоби, определеннук в системе координат coordsys;
  • JacobianMatrix [pt, coordsys] — возвращает матрицу Якоби в точке pt, определенную в системе координат coordsys;
  • JacobianDeterminant [], JacobianDeterminant [pt] и т. д. — вычисление детерминанта матрицы Якоби при указанных выше определениях;
  • ScaleFactor [ ], ScaleFactor [pt] и т. д. — вычисление масштабного фактора при указанных выше определениях.

Применение этих функций поясняют следующие примеры:
JacobianMatrix[Cartesian[x, у, z]]
{{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}
JacobianMatrix[Spherical[r, t, p] ]
{{Cos[p] Sin[t] , rCos[p] Cos[t] ,-rSin[p] Sin[t]},
{Sin[p] Sin[t] , rCos[t] Sin[p] , rCos[p] Sin[t]},
{Cos[t] , -rSin[t], 0}}
JacobianDeterminant[Spherical[r, t, p] ]
r^2Sin[t]
Integrate[r^2 JacobianDeterminant[ Spherical[r, theta, phi]],
{r, 0, 2}, {theta, 0, Pi}, {phi, -Pi, Pi}]
128n/5
Следующие функции определяют ряд характеристик векторного поля:

  • Div[f] — возвращает дивергенцию векторного поля f в текущей системе координат;
  • Curl [f ] — возвращает вихрь (ротор) векторного поля f в текущей системе координат;
  • Grad[f ] — возвращает градиент векторного поля f в текущей системе координат;
  • Laplasian [f] — возвращает лапласиан векторного поля f в текущей системе координат;
  • Вiharmonic [f] — возвращает лапласиан лапласиана векторного поля f в текущей системе координат;
  • Div [f, coordsys], Curl [f, coordsys] и т. д. — указанные выше функции в системе координат coordsys.

Приведем примеры использования этих функций:
Laplacian[x*y^2*z^3,ProlateSpheroidal[х, у, z]]
(Csc[y] Csch[x] (y2z3Cosh[x] Sin [у] +
2xyz3Cos[y] Sirih[x] +2xz3Sin[y] Sinh[x] +
6xy2zCsc[y] Csch[x] (Sin[y]2+ Sinh[x]2))) /
(Sin[y]2+Sinh[x]2)
Grad[x^2 y^3 z^4,ProlateSpheroidal[x, у, z]]
 
Вариационные методы —VariationalMethods
Подпакет VariationaLMethods содержит функции для реализации вариационных методов. Напомним, что вариационные методы заменяют минимизацию функционала, заданного на некотором бесконечномерном линейном пространстве, задачами его минимизации на последовательности конечномерных подпространств. Функционал в системе Mathematica задается следующим образом:
F= f[u[x], u'(x),x]dx
В данный подпакет включены следующие функции:

  • VariationalD [f, u [х] , х] — дает первую вариационную производную для функционала f одной переменной х;
  • VariationalD [f, u [х, у,…] , {х, у,…} ] — дает первую вариационную производную для функционала ряда переменных;
  • VariationalD [f, {u [х, у,…], v [х, у],…}, {х, у,…} ] — дает список первых вариационных производных для функционала ряда переменных;
  • EulerEquations [f, u [х] , х] — дает равенство Эйлера при f с одной переменной;
  • EulerEquations [f, u [х, у,…], {х, у,…} ] — дает равенство Эйлера при f с рядом переменных;
  • EulerEquations [f, {u [х, у,…] , v [х, у,…],…}, {х, у,…} ] — дает список с равенствами Эйлера при f с рядом переменных;
  • Firstlntegral [ f, u [х] , х] — дает первый интеграл с f, определенной для одной переменной х;
  • Firstlntegral [f, {u [х, у,…] ,v [х, у,…],…}, {х, у,…} ] — дает первый интеграл при f с рядом переменных;
  • Firstlntegral[u] — дает первый интеграл, ассоциированный с переменной и.

Применение данных функций поясняют следующие примеры:
<<Calculus `VariationalMethods`
VariationalD[y[x] Sin[l+y'[x]], y[x], x]
-Cost 1 +У [x]] y'[x] + Sin[l + y'[x]] d+y[x] y'[x])
EulerEquations[ m1^2 theta1[t]^2/2+m g 1 Cos[theta[t]], theta[t], t]
-Im(gSin[theta[t]] + 1 theta»[ t]) == 0
Firstlntegrals[m(r'[t]^2+r[t]^2 phi'[t]^2)/ 2-U[r], r[t],phi[t], t]
{Firstlntegral[phi] ->-mr[ t]2 phi’ [ t] , Firstlntegral[t] -> 1/2 (2U[r] + m (r[t]2phi'[t]2 + r^t]2)) }
Помимо указанных функций подпакет содержит функцию VariationalBound для представления границ и значений функционала. Ввиду громоздкости записи параметров этой функции ограничимся примерами ее применения:
VariationalBound[(-u[r] D[r^2 u'[r],r]/r^2-2u[r]^2/r)r^2,
u[r]^2 r^2,u[r], r,0,Infinity,(a-r)E^(-b r),a,b]
{-0.25, (a-> 2., b-> 0.5}}
VariationalBound[-u[x,у](D[u[x,y],x,2]+
D[u[x,y],y,2]) -2u[x,y],u[x,y],x,-a,a,y,-a,a,
(x^2-a^2)(y^2-a^2)(al+a2(x^2+y^2)),al,a2]

С полными возможностями этой функции можно ознакомиться по справочной базе данных (раздел Add-ons).

Запись и считывание данных

Запись и считывание данных
Обширные возможности Maple 15 делают привлекательным применение этой программы для автоматической обработки данных, поступающих от каких-либо экспериментальных установок. Для этого установки снабжаются интерфейсными платами (например, аналого-цифровыми преобразователями) и необходимым программным обеспечением. Возможна и передача данных, полученных с помощью Maple 15, в экспериментальные установки.
Обмен информацией между Maple 15 и внешней средой (к ней, кстати, относятся и другие программы) чаще всего осуществляется через файлы текстового формата, поскольку именно с такими файлами могут работать практически все программы. Для записи данных в файл служит оператор writedata:
writedata[APPEND](fileID. далее…