Разделение матрицы с Октавой объяснил:
Формальное описание Octave Matrix Division отсюда
http://www.gnu.org/software/octave/doc/interpreter/Arithmetic-Ops.html
x / y
Right division. This is conceptually equivalent to the expression
(inverse (y') * x')'
But it is computed without forming the inverse of y'.
If the system is not square, or if the coefficient matrix is
singular, a minimum norm solution is computed.
Это означает, что эти два значения должны быть одинаковыми:
[3 4]/[4 5; 6 7]
ans =
1.50000 -0.50000
(inverse([4 5; 6 7]') * [3 4]')'
ans =
1.50000 -0.50000
Во-первых, поймите, что деление октавной матрицы не является коммутативным, так же как умножение матриц не является коммутативным.
Это означает, что A / B не равно B / A
1/[1;1]
ans =
0.50000 0.50000
[1;1]/1
ans =
1
1
Один, разделенный на матрицу с одним значением, равен единице:
1/[1]
ans = 1
Один, разделенный на матрицу с единственным значением три, равен 0,33333:
1/[3]
ans = .33333
Один, разделенный на матрицу (1 x 2):
1/[1;1]
ans =
0.50000 0.50000
Equivalent:
([1/2;1/2] * 1)'
ans =
0.50000 0.50000
Обратите внимание, что, как сказано в инструкции, мы берем норму вектора. Итак, вы видите, как [1;1]
превратилось в [1/2; 1/2]
. «2» исходит из длины вектора, 1 исходит из предоставленного вектора. Сделаем еще:
Один, разделенный на матрицу (1 x 3):
1/[1;1;1]
ans =
0.33333 0.33333 0.33333
Эквивалент:
([1/3;1/3;1/3] * 1)'
ans =
0.33333 0.33333 0.33333
Что делать, если один из элементов отрицательный...
1/[1;1;-1]
ans =
0.33333 0.33333 -0.33333
Эквивалент:
([1/3;1/3;-1/3] * 1)'
ans =
0.33333 0.33333 -0.33333
Итак, теперь у вас есть общее представление о том, что делает Octave, когда вы не предоставляете ему квадратную матрицу. Чтобы понять, что делает деление матрицы Octave, когда вы передаете ему квадратную матрицу, вам нужно понять, что делает обратная функция.
Я нормализовал ваши векторы вручную, если вы хотите, чтобы октава делала их, вы можете добавить пакеты для этого, я думаю, что следующий пакет будет делать то, что я делал с нормализацией векторов:
http://octave.sourceforge.net/geometry/function/normalizeVector.html
Итак, теперь вы можете преобразовать деление в эквивалентное умножение. Прочтите эту статью о том, как работает матричное умножение, и вы сможете вернуться назад и выяснить, что происходит под капотом матричного деления.
http://www.purplemath.com/modules/mtrxmult2.htm
person
Eric Leschinski
schedule
04.09.2012