簡體   English   中英

MATLAB:求解符號矩陣

[英]MATLAB: solving symbolic matrix

我有三個矩陣,其中之一包含未知數。 其中兩個彼此相乘,得出最后一個。

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但始終遇到語法問題。

感謝您的時間和答復...

這個問題不需要任何符號數學。 您的A1A3矩陣是用數字定義的。 A2查找條目所需要做的就是調用A1A3之間的逆運算符( \\ )。 具體來說,如果給您:

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將為您計算BCDF 只需分別參考A2的第一,第二,第三和第四元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM