Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Линейная алгебра — пакет LinearAlgebra | Учебники

Главная > Mathematica 8 > Линейная алгебра — пакет LinearAlgebra


Линейная алгебра — пакет LinearAlgebra

Линейная алгебра— пакет LinearAlgebra
 
Пакет расширения LinearAlgebra добавляет ряд новых функций, полезных при решении сложных задач линейной алгебры.
Декомпозиция Холесского — Cholesky
Подпакет Cholesky содержит единственную функцию HoleskyDecomposition [m], которая вычисляет декомпозицию (факторизацию, разложение) Холесского для симметричной положительно определенной матрицы т.
Примеры выполнения декомпозиции Холесского даны ниже:
<<LinearAlgebra`Cholesky`
hil = Tablet l/(i + j — 1) , {i, 1, 4}, {j, 1, 4}]
Eigenvalues[ N[hil] ]
{1.50021, 0.169141, 0.00673827, 0.0000967023}
u = CholeskyDecomposition[hil]
MatrixForm[Transpose[u] . u]
 
Метод исключения Гаусса — GaussianElimination
Следующие функции обеспечивают реализацию метода исключения Гаусса при решении линейного уравнения вида А-x =b:

  • LUFactor [m] — возвращает LU-декомпозицию матрицы m;
  • LUSolve [lu, b] — решает систему линейных уравнений с матрицей коэффициентов lu и вектором свободных членов b методом исключения переменных Гаусса;
  • LU [a, pivots] — создает объект, используемый в LUSolve. Применение этих функций поясняют примеры, показанные ниже:

<<LinearAlgebra`GaussianElimination`
MatrixForm[a = {{1, 2, 3}, {4, 5, 6}, {-1, 5, -5}}]
lu = LUFactor[a]
b = {10, -3, 12}
{10, -3, 12}
LUSolve[lu, b]
Метод исключения Гаусса является хорошо апробированным методом решения систем линейных уравнений, что делает реализацию описанных функций полезным дополнением к встроенным функциям линейной алгебры.
Операции с матрицами — MatrixManipulation
Подпакет MatrixManipulation добавляет к матричным функциям ядра системы Ма-thematica ряд новых функций. Начнем с функций объединения матриц:

  • AppendColumns [ml,m2,…] — объединяет по столбцам матрицы ml,m2,…;
  • AppendRows [ml,m2,…] — объединяет по строкам матрицы ml,m2,…;
  • BlockMatrix [blocks] — объединяет по строкам и столбцам блоки blocks, создавая новую матрицу.

Данные операции с матрицами иллюстрируют следующие примеры:
<< LinearAlgebra`MatrixManipulation`
a = {{a11, a12}, {a21, a22}}; MatrixFormfa]
b = {{b11, b12}, {b21, b22}}; MatrixForm[b]
MatrixForm[AppendColumns[a, b] ]
AppendRows[a, b] //MatrixForm
BlockMatrix[{{a, b}, {b, {{0, 0}, {0, 0}}}}] //MatrixForm
Следующая группа функций вставляет или удаляет столбцы или строки матриц:

  • TakeRows [mat, n] — вставляет в матрицу mat n-ю строку;
  • TakeRows [mat, -n] — удаляет из матрицы mat п-ю строку;
  • TakeRows [mat, {m,n} ] — вставляет в матрицу mat строки от m до n;
  • TakeColumns [mat, n] — вставляет в матрицу mat п-й столбец;
  • TakeColumns [mat, -n] — удаляет из матрицы mat п-й столбец;
  • TakeColumns [mat, {m, n} ] — вставляет в матрицу mat столбцы от m до п.

Действие функции иллюстрируется следующими примерами:
mat = Array[m, 3, 4]; MatrixForm[mat]
m[l, 1] m[l, 2] m[l, 3] m[l, 4]
m[2, 1] m[2, 2] m[2, 3] m[2, 4]
m[3, 1] m[3, 2] m[3, 3] m[3, 4]
TakeRows[mat, -2] //MatrixForm
m[2, 1] m[2, 2] m[2, 3] m[2, 4]
m[3, 1] m[3, 2] m[3, 3] m[3, 4]
TakeColumns[mat, {2,3}] //MatrixForm
m[l, 2] m[l, 3] )
m[2, 2] m[2, 3]
m[3, 2] m[3, 3]
TakeMatrix[mat, {2, 3}, {3, 4}] //MatrixForm
m[2, 3] m[2, 4]
m[3, 3] m[3, 4]
SubMatrix[mat, {2, 3}, {2, 2}] //MatrixForm
m[2, 3] m[2, 4]
m[3, 3] m[3, 4]
Следующая группа функций служит для задания матриц специального вида:

  • UpperDiagonalMatrix [f, n] — формирует наддиагональную матрицу размером пхп;
  • LowerDiagonalMatrix [f, n] — формирует поддиагональную матрицу размером пхп;
  • ZeroMatrix [n] — формирует квадратную нулевую матрицу размером пхп;
  • ZeroMatrix [m, n] — формирует нулевую матрицу размером тхп;
  • HilbertMatrix [n] — формирует квадратную матрицу Гильберта размером пхп;
  • HilbertMatrix [m, n] — формирует матрицу Гильберта размером тхп;
  • HankelMatrix [n] — формирует квадратную матрицу Ганкеля размером пхп;
  • HankelMatrix [m, n] — формирует матрицу Ганкеля размером тхп.

Примеры задания матриц разного типа приведены ниже:
UpperDiagonalMatrix[f, 3] //MatrixForm
LowerDiagonalMatrix[#1 + #2 &, 4] //MatrixForm
HilbertMatrix[2, 4] //MatrixForm
HankelMatrix[{w, x, y, z}] //MatrixForm
Наконец, в подпакет входит еще одна функция, LinearEquationsToMatri-ces [eqns, vars], которая из записи линейного уравнения eqns с переменными vars формирует расширенную матрицу, содержащую матрицу коэффициентов левой части уравнения и вектор свободных членов.
Пример применения данной функции:
LinearEquationsToMatrices[
а[1,1]*х + а[1,2]*у == с[1],
а[2,1]*х + а[2,2]*у == с[2], х, у]
{{{{{a11, a12), {а21, а22}}[1, 1],
{{a11, a12), {a21, а22}}[1, 2]}, {{{a11, a12}, {a21, a22}}[2, 1],
{{a11, a12), {a21, a22}} [2, 2]}}, {c[l],c[2]}}
 
Ортогонализация и нормализация — Ortogonalization
В подпакете ортогонализации Ortogonalization имеются следующие функции:

  • GramSchmidt [ {vl, v2,…} ] — создает ортогональное множество на основе списка векторов v1, v2, …;
  • Normalize [vect] — возвращает нормированный вектор vect;
  • Projection [vectl, vect2] — дает ортогональную проекцию вектора vl на вектор v2.

В этих функциях после аргументов допустимы опции InnerProduct->exprn Normalized->False (отказ от нормировки). Примеры работы с функциями ортогонализации представлены ниже:
<<LinearAlgebra`Orthogonalization`
{wl, w2, w3} = GramSchmidt[ {{1,3,2}, {2,4,3}, {2,4,6}}]
{ wl . w2, w2 . w3, wl . w3, wl . wl, w2 . w2, w3 . w3}
{0, 0, 0, 1, 1, 1}
GramSchmidt[{1, x, x^2, x^3, x^4}, InnerProduct -> (Integrate[#l #2,{x,-l,l}]&)] //Simplify
Normalize[LegendreP[2,x], InnerProduct ->(Integrate[#l #2,{x,-l,l}]&)]
{wl, w2} = GramSchmidt[{{3,4,3}, {2,3,6}}, Normalized -> False]
{wl . wl, wl . w2}

{34, 0}

Статьи по теме

Комментарии запрещены.