我有三个矩阵,其中一个包含未知数。其中两个相互相乘并产生最后一个。
A1 * A2 = A3
所以,我在MATLAB中得到了这段代码:
syms A1 A2 A3 B C D F
k1=1; k2=2, b=3, a=4
A1 = [ -exp(i*k1*b) exp(-k2*b) exp(k2*b) 0; i*k1*exp(i*k1*b) k2*exp(-k2*b) -k2*exp(k2*b) 0; 0 -exp(-k2*a) -exp(k2*a) (exp(-i*k1*a) + exp(i*k1*a)); 0 -k2*exp(-k2*a) k2*exp(k2*a) i*k1*(exp(-i*k1*a) - exp(i*k1*a)) ]
A2 = [ B; C; D; F ]
A3 = [ exp(-i*k1*b) ; i*k1*exp(-i*k1*b) ; 0 ; 0 ]
我想解决B,C,D和F的结果。我知道我必须使用函数solve
,但我一直遇到语法问题。
感谢您的时间和回复......
答案 0 :(得分:1)
这个问题不需要任何象征性的数学。您的A1
和A3
矩阵是以数字方式定义的。要在A2
中查找条目,您只需在\
和A1
之间调用逆运算符(A3
)即可。具体来说,如果给你:
A1 * A2 = A3 ,
要查找A2
,您可以这样做:
A2 = A1^{-1} * A3
您会找到A1
的倒数并将其与A3
相乘。您可以通过逆运算符在MATLAB中轻松完成此操作:
A2 = A1 \ A3;
因此,只需这样做:
k1=1; k2=2; b=3; a=4;
A1 = [ -exp(i*k1*b) exp(-k2*b) exp(k2*b) 0; i*k1*exp(i*k1*b) k2*exp(-k2*b) -k2*exp(k2*b) 0; 0 -exp(-k2*a) -exp(k2*a) (exp(-i*k1*a) + exp(i*k1*a)); 0 -k2*exp(-k2*a) k2*exp(k2*a) i*k1*(exp(-i*k1*a) - exp(i*k1*a)) ]
A3 = [ exp(-i*k1*b) ; i*k1*exp(-i*k1*b) ; 0 ; 0 ]
A2 = A1 \ A3;
A2
将为您计算B
,C
,D
和F
。只需分别参考A2
的第一,第二,第三和第四个元素。