結果驗證實驗:
%****MATLAB VERIFY: (A + Bi)*(C + Di) = (A*C - B*D) + i((A+B)*(C+D) - A*C - B*D)
A=rand(3,4)
B=rand(3,4)
C=rand(4,5)
D=rand(4,5)
x=A+1i*B
y=C+1i*D
z=x*y
real(z)
imag(z)
REAL=A*C-B*D
IMG(A+B)*(C+D) - A*C - B*D
%****PASS***********************/
分步檢查:
% verify (A+Bi)*(C+Di) = (AC-BD) + i[(A+B)*(C+D) - AC - BD] = (AC-BD) + i(AD + BC)
X=[-0.7544+-0.3124i -0.3815+ 0.7732i 1.0283+ 1.0251i -0.4348+ 0.4933i -0.8624+-1.0090i;-0.5156+-0.0350i 0.0369+-0.9009i -0.8021+ 0.3784i -0.6689+ 0.1950i -1.0752+-0.8463i;-0.5791+-0.7310i -1.0182+-0.5614i 1.0595+ 0.0565i 0.0619+ 0.3339i -0.3188+ 1.0974i;]
Y=[-0.7499+ 0.1273i 0.5450+-0.4552i 0.5331+-0.7710i 0.1176+ 0.6000i; 0.4906+ 0.5129i -1.0596+ 1.0004i 0.3566+ 0.1435i -0.0952+-0.8889i; 0.5637+-0.8863i -1.0221+-0.2331i -0.8550+-1.0058i 0.5565+ 1.0703i; 0.1280+-0.3162i -0.0431+ 0.0599i 0.9287+-0.8046i -0.1320+-0.8923i;-0.8056+-0.8566i 1.0789+-0.8729i 0.0328+-0.4216i 0.5790+-0.1514i;]
%X*Y
A=real(X)
B=imag(X)
C=real(Y)
D=imag(Y)
%1. ____________
disp("1.1 a = A")
a=A
disp("1.2 b = C")
b=C
disp("1.3 E = a*b")
E=a*b
disp("1.4 F = -E")
F=-E
%2. ____________
disp("2.1 a = B")
a=B
disp("2.2 b = D")
b=D
disp("2.3 d = a*b = B*D")
d=a*b
disp("2.4 E = E-d")
E=E-d
disp("2.5 F = F-d")
F=F-d
%3. ____________
disp("3.1 a = A+B = A+a")
a=a+A
disp("3.2 b = C+D = C+b")
b=b+C
disp("3.3 F = (A+B)*(C+D) + F = a*b + F")
F=a*b+F
%4. ____________
disp("4.1 Z1 = E + Fi")
Z1=E+1i*F
disp("verify: Z2 = X*Y")
Z2=X*Y
保存爲文件A_add_Bi_X_C_add_Di.m
直接運行,例如:
$ octave-cli A_add_Bi_X_C_add_Di.m