FEMM 5

Модули и функции · встроенный MicroPython FEMM 5

ulab.numpy.linalg

Исходная реализация линейной алгебры ulab предназначена для вещественных данных.

Условия работы

ulab.numpy.linalg.choleskyРазлагает A=L·L.T. Положительная определённость проверяется численным алгоритмом.

ulab.numpy.linalg.cholesky

ulab.numpy.linalg.cholesky(a)

Разлагает A=L·L.T. Положительная определённость проверяется численным алгоритмом.

Аргументы

Аргументы вызова ulab.numpy.linalg.cholesky
ИмяНазначение и допустимые значения
aВещественная симметричная положительно определённая матрица n×n.

Возвращаемое значение

Вещественный ndarray L — нижний треугольный множитель n×n.

Особенности вызова

  • Принимает вещественный ndarray; форма и смысл результата такие же, как в одноимённой карточке numpy.linalg.

Пример

MicroPython FEMM 5
"Пример ulab.numpy.linalg.cholesky.\nСреда: встроенный MicroPython FEMM 5.\nРазлагает A=L·L.T. Положительная определённость проверяется численным алгоритмом.\nРезультат: Вещественный ndarray L — нижний треугольный множитель n×n."

from ulab import numpy as np
A=np.array([[4,2],[2,5]])
L=np.linalg.cholesky(A)
R=np.dot(L,L.transpose())-A
assert max([abs(R[i,j]) for i in range(2) for j in range(2)])<1e-8
print(L)

Ожидаемый результат. Множитель [[2,0],[1,2]] восстанавливает исходную матрицу.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

ulab.numpy.linalg.detВычисляет определитель матрицы.

ulab.numpy.linalg.det

ulab.numpy.linalg.det(a)

Вычисляет определитель матрицы.

Аргументы

Аргументы вызова ulab.numpy.linalg.det
ИмяНазначение и допустимые значения
aКвадратная матрица n×n.

Возвращаемое значение

float для вещественной матрицы, complex для комплексной.

Особенности вызова

  • Принимает вещественный ndarray; форма и смысл результата такие же, как в одноимённой карточке numpy.linalg.

Пример

MicroPython FEMM 5
"Пример ulab.numpy.linalg.det.\nСреда: встроенный MicroPython FEMM 5.\nВычисляет определитель матрицы.\nРезультат: float для вещественной матрицы, complex для комплексной."

from ulab import numpy as np
v=np.linalg.det(np.array([[2,1],[1,3]]))
assert abs(v-5)<1e-9
print(v)

Ожидаемый результат. Определитель близок к 5.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

ulab.numpy.linalg.invВычисляет обратную матрицу. Для одной правой части обычно удобнее solve.

ulab.numpy.linalg.inv

ulab.numpy.linalg.inv(a)

Вычисляет обратную матрицу. Для одной правой части обычно удобнее solve.

Аргументы

Аргументы вызова ulab.numpy.linalg.inv
ИмяНазначение и допустимые значения
aНевырожденная квадратная матрица n×n.

Возвращаемое значение

Обратная матрица ndarray n×n.

Особенности вызова

  • Принимает вещественный ndarray; форма и смысл результата такие же, как в одноимённой карточке numpy.linalg.

Пример

MicroPython FEMM 5
"Пример ulab.numpy.linalg.inv.\nСреда: встроенный MicroPython FEMM 5.\nВычисляет обратную матрицу. Для одной правой части обычно удобнее solve.\nРезультат: Обратная матрица ndarray n×n."

from ulab import numpy as np
A=np.array([[2,0],[0,4]])
B=np.linalg.inv(A)
assert abs(B[0,0]-0.5)<1e-10 and abs(B[1,1]-0.25)<1e-10
print(B)

Ожидаемый результат. Диагональная матрица diag(0.5,0.25).

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

ulab.numpy.linalg.eigВычисляет собственные значения симметричной матрицы вращениями Якоби. Несимметричная матрица вызывает ValueError.

ulab.numpy.linalg.eig

ulab.numpy.linalg.eig(a)

Вычисляет собственные значения симметричной матрицы вращениями Якоби. Несимметричная матрица вызывает ValueError.

Аргументы

Аргументы вызова ulab.numpy.linalg.eig
ИмяНазначение и допустимые значения
aВещественная симметричная квадратная матрица n×n.

Возвращаемое значение

Кортеж (w,V): вещественный вектор собственных значений и матрица правых собственных векторов по столбцам.

Пример

MicroPython FEMM 5
"Пример ulab.numpy.linalg.eig.\nСреда: встроенный MicroPython FEMM 5.\nВычисляет собственные значения симметричной матрицы вращениями Якоби. Несимметричная матрица вызывает ValueError.\nРезультат: Кортеж (w,V): вещественный вектор собственных значений и матрица правых собственных векторов по столбцам."

from ulab import numpy as unp
A=unp.array([[2,1],[1,2]])
w,V=unp.linalg.eig(A)
assert len(w)==2
assert abs((w[0]-1)*(w[0]-3))<1e-7
assert abs((w[1]-1)*(w[1]-3))<1e-7
print(w)

Ожидаемый результат. Собственные значения 1 и 3 в произвольном порядке.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

ulab.numpy.linalg.normВычисляет квадратный корень из суммы квадратов. Для матрицы без axis — норма Фробениуса.

ulab.numpy.linalg.norm

ulab.numpy.linalg.norm(a, axis=None)

Вычисляет квадратный корень из суммы квадратов. Для матрицы без axis — норма Фробениуса.

Аргументы

Аргументы вызова ulab.numpy.linalg.norm
ИмяНазначение и допустимые значения
aВещественный ndarray либо одномерный список/кортеж.
axisNone использует все элементы; иначе выбранная ось массива.

Возвращаемое значение

float для полной нормы; ndarray норм вдоль оси.

Пример

MicroPython FEMM 5
"Пример ulab.numpy.linalg.norm.\nСреда: встроенный MicroPython FEMM 5.\nВычисляет квадратный корень из суммы квадратов. Для матрицы без axis — норма Фробениуса.\nРезультат: float для полной нормы; ndarray норм вдоль оси."

from ulab import numpy as unp
A=unp.array([[3,0],[4,0]])
n=unp.linalg.norm(A,axis=0)
assert abs(n[0]-5)<1e-8 and abs(n[1])<1e-8
print(n)

Ожидаемый результат. Нормы столбцов [5,0].

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

ulab.numpy.linalg.qrРазлагает вещественную матрицу вращениями Гивенса.

ulab.numpy.linalg.qr

ulab.numpy.linalg.qr(a, mode='reduced')

Разлагает вещественную матрицу вращениями Гивенса.

Аргументы

Аргументы вызова ulab.numpy.linalg.qr
ИмяНазначение и допустимые значения
aВещественный ndarray m×n; используйте m≥n.
mode'reduced' даёт Q формы m×n и R формы n×n; 'complete' — Q m×m и R m×n.

Возвращаемое значение

Кортеж вещественных матриц (Q,R), A=Q·R.

Особенности вызова

  • Форму reduced для широких матриц m<n не используйте: исходная реализация вычисляет размеры через m-abs(m-n).

Пример

MicroPython FEMM 5
"Пример ulab.numpy.linalg.qr.\nСреда: встроенный MicroPython FEMM 5.\nРазлагает вещественную матрицу вращениями Гивенса.\nРезультат: Кортеж вещественных матриц (Q,R), A=Q·R."

from ulab import numpy as unp
A=unp.array([[2,1],[0,3]])
Q,R=unp.linalg.qr(A,mode="complete")
D=unp.dot(Q,R)-A
assert abs(D[0,0])<1e-8 and abs(D[1,1])<1e-8
print(Q,R)

Ожидаемый результат. Произведение Q·R восстанавливает A.

Скачать пример · Ссылка на функцию

Этот пример выполнен в установленном FEMM 5.

Имена в установленной сборке

Перечень получен во встроенном интерпретаторе. Он включает функции, классы и константы. Ссылки ведут к контрактам; для прямого доступа ulab учитывайте условия этого раздела.