2016-02-06 26 views
6

onun hayali bölümleriyle ilişkili Kompleks sistemini çizmek için: Ben karmaşık sembolik sistem tanımladığınız

MATLAB aşağıdaki sonuçlar bulundu

syms x 
sys(x) = ((10+1.*i.*x))/(20+(5.*i.*x)+((10.*i.*x).^2))+((1.*i.*x).^3); 
ImaginaryPart = imag(sys) 
RealPart = real(sys) 
: Artık

ImaginaryPart(x) = 

- real(x^3) + imag((10 + x*1i)/(- 100*x^2 + x*5i + 20)) 


RealPart(x) = 

- real(x^3) + imag((10 + x*1i)/(- 100*x^2 + x*5i + 20)) 

nasıl plot(x,sys(x)) or (x,ImaginaryPart(x)) mümkün olduğu karmaşık yüzey?

cevap

9

Çizim yapmak için bir dizi değer kullanmanız gerekir. Yani, x = a + b*i kullanarak:

[a,b] = meshgrid(-10:0.1:10); %// creates two grids 
ComplexValue = a+1i*b;  %// get a single, complex valued grid 
CompFun = @(x)(- real(x.^3) + imag((10 + x.*1i)./(- 100.*x.^2 + x.*5i + 20))); %// add dots for element wise calculation 
result = CompFun(ComplexValue); %// get results 
pcolor(a,b,result) %// plot 
shading interp %// remove grid borders by interpolation 
colorbar %// add colour scale 
ylabel 'Imaginary unit' 
xlabel 'Real unit' 

enter image description here

Ben o iş yapmak için denkleme noktalar (yani eleman bilge çarpma) eklemek zorunda etmedi. önerildiği üzere contourf ile Ek

comment by @AndrasDeak:

enter image description here

sen isteksiz ise el-copy: Ben burada daha fazla çözünürlük için -10:0.01:10 bir meshgrid kullanılan

figure 
contourf(a,b,result,51) %// plots with 51 contour levels 
colorbar 

eleman bilge çarpım noktaları eklemek için çözüm, döngüler başvurabilirsiniz:

grid = -10:0.1:10; 
result(numel(grid),numel(grid))=0; %// initialise output grid 
for a = 1:numel(grid) 
    for b = 1:numel(grid) 
     x = grid(a)+1i*grid(b); 
     result(a,b) = ImaginaryPart(x); 
    end 
end 

Bu, aynı sonucu verir, ancak artıları ve eksileriyle birlikte sunar. Matris çarpımından daha yavaş, yani denkleminize nokta eklemekten daha iyidir, ancak çıkışı elle manipüle etmeyi gerektirmez.

+3

Çok sayıda seviyeyle birlikte bir "contourf" kullanmayı da düşünün: Sıfırlar açıkça görülebilir. –

+0

@LuisMendo burada, özellikle sizin için 'jet' içinde: https://i.imgur.com/QQijOZb.png – Adriaan

+2

@Adriaan Bu, "algısal olarak üniforma" nın ne anlama geldiğini ve insanların neden bu kadar iyi olmadığını gösteren iyi bir örnek olmalıydı. "jet" gibi. Renk haritalarının Comic Sans'ı! –

İlgili konular