Ç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'
Ben o iş yapmak için denkleme noktalar (yani eleman bilge çarpma) eklemek zorunda etmedi. önerildiği üzere contourf
ile Ek
comment by @AndrasDeak:
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.
Çok sayıda seviyeyle birlikte bir "contourf" kullanmayı da düşünün: Sıfırlar açıkça görülebilir. –
@LuisMendo burada, özellikle sizin için 'jet' içinde: https://i.imgur.com/QQijOZb.png – Adriaan
@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'ı! –