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

Ортогонализация и нормализация (Ortogonalization). Решение линейных уравнений с трехдиагональной матрицей (Tridiagonal).

В подпакете ортогонализации Ortogonalization имеются следующие функции:

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

В этих функциях после аргументов допустимы опции InnerProduct › exprn Normalized › False (отказ от нормировки). Примеры работы с функциями ортогонализации представлены ниже:

<< LinearAlgebra`Orthogonalization`
  
{w1, w2, w3} = GramSchmidt[ {{1.3.2}, {2.4.3}, {2.4.6}}]
{ w1 .w2, w2 .w3, w1 .w3, w1 .w1, w2 .w2, w3 .w3}
{0, 0, 0, 1, 1, 1}
  
GramSchmidt[{1, x, x^2, x^3, x^4}, InnerProduct > (Integrate[#1 #2,{x,-1.1}]&)] //Simplify
  
Normalize[LegendreP[2,x], InnerProduct > (Integrate[#1 #2,{x,-1.1}]&)]
{w1, w2} = GramSchmidt[{{3.4.3}, {2.3.6}}, Normalized > False]
{w1 .w1, w1 .w2}
{34, 0}

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

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

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

Пример применения данной функции:

<<LinearAlgebra`Tridiagonal`
{a, b, c} = {{1, 2, 3}, {4, 5, 6, 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-1]], _, 0], {i, 4}, {j, 4}] //MatrixForm
TridiagonalSolve[a, b, c, {8, 3, 4, 5}

Примечание:
С учетом представленных функций и функций ядра набор матричных средств системы Mathematica является одним из наиболее полных. В области решения задач в численном виде он несколько уступает лишь специализированной матричной системе MATLAB 5.0/5.3
.

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