2015-10-12 2 views
0

Я пытаюсь найти общую формулу обратной матрицы размером 4 х 4. То, что я написал просто так:Символично вычислить обратную матрицу 4 х 4 в MATLAB

A = [a b c d ; e f g h ; i l m n; o p q r]; 
inv(A) 

Однако, Консоль MATLAB возвращает следующее: undefined function or variable 'a'. Как написать матрицу, чтобы получить общую формулу без ввода числовых значений и сделать это символически?

ответ

1

Вы получаете эту ошибку, поскольку эти переменные не определены в MATLAB ... по крайней мере, не в настоящее время. Для этого вам нужно использовать Symbolic Mathematics Toolbox. Один из способов - создать каждую переменную: a до p с использованием sym, создать 4 × 4 матрицы этих переменных, затем найти обратную.

sym a b c d e f g h i j k l m n o p; 
A = [a b c d; e f g h; i j k l; m n o p]; 
invA = inv(A); 

Однако это приводит к плохой кодировке. Определение всех этих символических переменных становится довольно громоздким. Вместо этого, я хотел бы использовать sym создать 4 х 4 матрица переменных, которые следуют числовой модели, а затем идти вперед и найти обратную что:

>> A = sym('A%d%d', [4 4]) 

A = 

[ A11, A12, A13, A14] 
[ A21, A22, A23, A24] 
[ A31, A32, A33, A34] 
[ A41, A42, A43, A44] 

>> invA = inv(A) 

invA = 

[ (A22*A33*A44 - A22*A34*A43 - A23*A32*A44 + A23*A34*A42 + A24*A32*A43 - A24*A33*A42)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A12*A33*A44 - A12*A34*A43 - A13*A32*A44 + A13*A34*A42 + A14*A32*A43 - A14*A33*A42)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), (A12*A23*A44 - A12*A24*A43 - A13*A22*A44 + A13*A24*A42 + A14*A22*A43 - A14*A23*A42)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A12*A23*A34 - A12*A24*A33 - A13*A22*A34 + A13*A24*A32 + A14*A22*A33 - A14*A23*A32)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)] 
[ -(A21*A33*A44 - A21*A34*A43 - A23*A31*A44 + A23*A34*A41 + A24*A31*A43 - A24*A33*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), (A11*A33*A44 - A11*A34*A43 - A13*A31*A44 + A13*A34*A41 + A14*A31*A43 - A14*A33*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A23*A44 - A11*A24*A43 - A13*A21*A44 + A13*A24*A41 + A14*A21*A43 - A14*A23*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), (A11*A23*A34 - A11*A24*A33 - A13*A21*A34 + A13*A24*A31 + A14*A21*A33 - A14*A23*A31)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)] 
[ (A21*A32*A44 - A21*A34*A42 - A22*A31*A44 + A22*A34*A41 + A24*A31*A42 - A24*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A32*A44 - A11*A34*A42 - A12*A31*A44 + A12*A34*A41 + A14*A31*A42 - A14*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), (A11*A22*A44 - A11*A24*A42 - A12*A21*A44 + A12*A24*A41 + A14*A21*A42 - A14*A22*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A22*A34 - A11*A24*A32 - A12*A21*A34 + A12*A24*A31 + A14*A21*A32 - A14*A22*A31)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)] 
[ -(A21*A32*A43 - A21*A33*A42 - A22*A31*A43 + A22*A33*A41 + A23*A31*A42 - A23*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), (A11*A32*A43 - A11*A33*A42 - A12*A31*A43 + A12*A33*A41 + A13*A31*A42 - A13*A32*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), -(A11*A22*A43 - A11*A23*A42 - A12*A21*A43 + A12*A23*A41 + A13*A21*A42 - A13*A22*A41)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41), (A11*A22*A33 - A11*A23*A32 - A12*A21*A33 + A12*A23*A31 + A13*A21*A32 - A13*A22*A31)/(A11*A22*A33*A44 - A11*A22*A34*A43 - A11*A23*A32*A44 + A11*A23*A34*A42 + A11*A24*A32*A43 - A11*A24*A33*A42 - A12*A21*A33*A44 + A12*A21*A34*A43 + A12*A23*A31*A44 - A12*A23*A34*A41 - A12*A24*A31*A43 + A12*A24*A33*A41 + A13*A21*A32*A44 - A13*A21*A34*A42 - A13*A22*A31*A44 + A13*A22*A34*A41 + A13*A24*A31*A42 - A13*A24*A32*A41 - A14*A21*A32*A43 + A14*A21*A33*A42 + A14*A22*A31*A43 - A14*A22*A33*A41 - A14*A23*A31*A42 + A14*A23*A32*A41)] 

Обозначения здесь, что первый индекс обозначает строку, а второй - столбец. В частности, Aij - это запись для строки i и колонка j. Я дам вам понять остальное.

+0

Вы также можете экспортировать результат в виде кода с 'ccode (inv (A))' или 'fortran (inv (A))' – ja72

+0

@ ja72 - Интересно. Благодаря! – rayryeng

+0

Лучше экспортировать в файл с помощью 'ccode (inv (A), 'file', 'inv4.c')', потому что он создает временные переменные для общих выражений, а полученный расчет более оптимизирован. – ja72

Смежные вопросы