L1 複數與複數運算 | matlab視覺化

天生max發表於2020-11-06

複數與複數運算 | matlab視覺化

matlab2018a

01 複數

MATLAB中,複數單位通常用 1i來表示,例如z = 1 + 1i。這裡需要說明的是,i也可以用來表示複數單位,但是由於i通常用作迴圈的變數,所以MATLAB建議定義複數時使用1i
除了實部虛部的直接定義複數的方法,還可以使用指數式定義複數,例如,z = exp(a + 1i*b)

基本的函式:
real(z)image(z):分別求虛數的實部和虛部。
abs(z)angle(z):複數模長與幅角
conj(z):共軛複數
exp(z)log(z):以e為底的指數和對數

02 複數的視覺化函式

z = A*cplxgrid(m)
呼叫cplxgrid函式,生成以A為半徑,半徑方向上的網格數為m,幅角上的網數為2m+1的圓形複數域。
cplxmap(z,f)
以z為座標點,f為函式值作出影像。

案例1:畫出 z , z 3 , z 1 / 2 , z 1 / 3 z,z^3,z^{1/2},z^{1/3} z,z3,z1/2,z1/3的影像

z = 2*cplxgrid(10);
format rat
index = [1,3,1/2,1/3];
for i = 1:4
%將4張圖畫在一起
subplot(2,2,i)
cplxmap(z,z.^index(i));  %進行點對點運算
title(['f(z) = z\^',num2str(index(i)) ])
end

複數的不同冪函式影像
上圖中,座標系的z軸表示的是f(z)的實部,顏色表示的f(z)的虛部。

案例2: 1 1 − z \dfrac{1}{1-z} 1z1的影像

%方案一:直接利用cplxmap進行視覺化
z = 2*cplxgrid(10);
z(find(z == 1)) = NaN;	%去除奇點
cplxmap(z,1./(1-z))
title('f(z) = z^{-1}')

函式f(z) = z^-1的影像

該影像還可以利用洛朗級數展開來進行計算
當 ∣ z ∣ < 1 , 進 行 泰 勒 展 開 , 1 1 − z = ∑ k = 0 ∞ z k 當 ∣ z ∣ > 1 , 進 行 洛 朗 展 開 , 1 1 − z = − 1 z 1 1 − 1 / z = − 1 z ∑ k = 0 ∞ z − k 當|z|<1,進行泰勒展開,\\ \frac{1}{1-z} = \sum^{\infty}_{k=0}z^k\\ 當|z|>1,進行洛朗展開,\\ \frac{1}{1-z} = -\frac{1}{z}\frac{1}{1-1/z}= -\frac{1}{z}\sum^{\infty}_{k=0}z^{-k} z<11z1=k=0zkz>11z1=z111/z1=z1k=0zk

%方法二:利用洛朗級數展開
z = 2*cplxgrid(10);
z1 = z;
z1(find(abs(z1) >= 1)) = NaN;	%確定泰勒展開的區域
w1 = 1; u1 = 1;
for i = 1:100
u1 = u1.*z1;
w1 = w1 + u1;
end
subplot(1,2,1)
cplxmap(z1,w1)
title('泰勒展開')
z2 = z;
z2(find(abs(z2) <= 1)) = NaN;	%確定泰勒展開的區域
w2 = -1./z2; u2 = w2;
for i = 1:100
u2 = w2./z2;
w2 = w2 + u2;
end
subplot(1,2,2)
cplxmap(z2,w2)
title('洛朗展開')

級數展開
案例3: ln ⁡ ( z ) \ln(z) ln(z)對數函式
為了更好地展現 ln ⁡ ( z ) \ln(z) ln(z)為多值函式,採用兩種的不同的方式畫圖,先以z軸作為實部,顏色作為虛部,幅角取值範圍為 [ 0 , 6 π ] [0, 6\pi] [0,6π];在以z軸作為虛部,實部作為顏色,再畫圖。

%以實部作為z軸
z = cplxgrid(20);
z(find(abs(z) == 0)) = NaN;
w = log(z);
subplot(1,2,1)
surf(real(z),imag(z),real(w),imag(w))
for k = 1:3
w = w + 1i*2*pi;
subplot(1,2,2)
surf(real(z),imag(z),imag(w),real(w));
hold on	%將[0 6*pi]分3個週期畫在圖中
end

ln(z)的影像
其他的一些函式都可以使用類似方法的畫出,大家可以自行嘗試一下sin(z),cos(z),sinh(z),cosh(z)等等。

相關文章