matlab 0000,部分结果出现虚数单位 0.0000i
各位大神好。
我編的程序運行后,兩個數值相加,結果本來應該都是實數的,當設定某一參數時,部分結果出現了虛數單位,大概占結果的百分之30%,所以就不能畫三維圖形了,請問這么處理這個問題。
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000 - 0.0000i??-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000 + 0.0000i??-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000 - 0.0000i??-0.0000 - 0.0000i??-0.0000 - 0.0000i
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000 - 0.0000i??-0.0000? ?? ?? ?? ?? ???-0.0000 + 0.0000i
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000 - 0.0000i
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000 - 0.0000i
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000 - 0.0000i??-0.0000
-0.0000 + 0.0000i??-0.0000? ?? ?? ?? ?? ???-0.0000
-0.0000? ?? ?? ?? ?? ???-0.0000? ?? ?? ?? ?? ???-0.0000 + 0.0000i
附原程序:
clear
clc
a =0.1;
r=0.6;
t = sqrt(1 - abs(r).^2);
aa = abs(a);
at = abs(t);
ar = abs(r);
ca = conj(a);
ct = conj(t);
cr = conj(r);
x=linspace(-3,3,101);
y=linspace(-3,3,101);
[x,y]=meshgrid(x,y);
b=x+1i*y;
W1=( ar.^4.*( (2.*b+a).^2.*conj(2.*b-a).^2-4.*conj(2.*b-a).*(2.*b+a)+2 ) ...
-2.*t.*cr.*ar.^2.*a.*(??(2.*b+a).^2.*conj(2.*b-a)-2.*(2.*b+a))+2.*ct.*r.*ar.^2.*ca.*( conj(2.*b-a).^2.*(2.*b+a)-2.*conj(2.*b-a)??) ...
-4.*at.^2.*ar.^2.*aa.^2.*( (2.*b+a).*conj(2.*b-a) -1 )+(t.^2.*cr.^2.*a.^2+t.*cr.*ar.^2).*(2.*b+a).^2 ...
+(ct.^2.*r.^2.*ca.^2+ct.*r.*ar.^2 ).*conj(2.*b-a).^2+(2.*t.*cr.*at.^2.*a.^2.*ca+2.*at.^2.*ar.^2.*ca).*(2.*b+a) ...
-(2.*ct.*r.*at.^2.*a.*ca.^2+2.*at.^2.*ar.^2.*a? ? ).*conj(2.*b-a) ...
+at.^4.*aa.^4+ct.*r.*at.^2.*ca.^2+ t.*cr.*at.^2.*a.^2+at.^2.*ar.^2??).*exp(- 2*(b+a ).*conj(b-a)-2*aa.^2);
W2=(??ar.^4.*( (2.*b-a).^2.*conj(2.*b+a).^2-4.*conj(2.*b+a).*(2.*b-a)+2 ) ...
+2.*t.*cr.*ar.^2.*a.*(??(2.*b-a).^2.*conj(2.*b+a)-2.*(2.*b-a))? ?? ?-2.*ct.*r.*ar.^2.*ca.*( conj(2.*b+a).^2.*(2.*b-a)-2.*conj(2.*b+a)??) ...
-4.*at.^2.*ar.^2.*aa.^2.*( (2.*b-a).*conj(2.*b+a) -1 )+(t.^2.*cr.^2.*a.^2+t.*cr.*ar.^2).*(2.*b-a).^2 ...
+(ct.^2.*r.^2.*ca.^2+ct.*r.*ar.^2 ).*conj(2.*b+a).^2? ?-(2.*t.*cr.*at.^2.*a.^2.*ca+2.*at.^2.*ar.^2.*ca).*(2.*b-a) ...
+(2.*ct.*r.*at.^2.*a.*ca.^2+2.*at.^2.*ar.^2.*a? ? ).*conj(2.*b+a) ...
+at.^4.*aa.^4+ct.*r.*at.^2.*ca.^2+ t.*cr.*at.^2.*a.^2+at.^2.*ar.^2??).*exp(- 2*(b-a ).*conj(b+a)-2*aa.^2);
W=W1+W2;
surf(x,y,W)
xlabel('W');
ylabel('x');
xlabel('y');
總結
以上是生活随笔為你收集整理的matlab 0000,部分结果出现虚数单位 0.0000i的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 多用户 判断,Laravel
- 下一篇: java多对多关联数据操作,hibern