2016-11-08 70 views
0

我已將繪製的圖分成了1個。我想通過反覆試驗最大化z=abs(1+s+(alpha_2)*s.^2+(alpha_1)*(alpha_2)*s.^3),因此其他圖可以儘可能大地放入內部。所以我想要做兩個for循環來改變alpha_1和alpha_2的值。例如將多個圖形合併爲一個,並帶有值標籤

for alpha_1=1:0.5:2 
    for alpha_2=1:0.5:2 

    z=abs(1+s+(alpha_2)*s.^2+(alpha_1)*(alpha_2)*s.^3); 
    [C,h] = contour(x,y,z,[1 1]); 

    end do 
end do 

因此,該圖將繪製9個不同的圖。是否有可能將這9張圖形放在圖上,並說出每張圖中alpha_1和alpha_2的值?

一部開拓創新的方案:

clear all 
close all 

alpha_1=0; 
alpha_2=0; 


theta = 2*pi 
clear t w; 
t = 0: theta/100: theta; 


w=-1/6*(3-4*cos(t)+cos(2*t)+1i*(8*sin(t)-sin(2*t))); 

figure(1) 


plot(w,'r') 
hold on 
%axis([-10,10, -10,10]) 
axis square; grid on 

%Contour plot 

[x,y] = meshgrid(-2.5 : 0.02:2.5, -2.5 : 0.02: 2.5); 
s = x + 1i*y; 

z=abs(1+s+(alpha_2)*s.^2+(alpha_1)*(alpha_2)*s.^3); 


[C,h] = contour(x,y,z,[1 1]); 
clabel(C,h) 

回答

2

只需使用subplot。也許像這樣:

figure; 
alpha_1=1:0.5:2; 
alpha_2=1:0.5:2; 
for id1=1:length(alpha_1) 
    for id2=1:length(alpha_2) 

     z=abs(1+s+(alpha_2(id2))*s.^2+(alpha_1(id1))*(alpha_2(id2))*s.^3); 
     subplot(length(alpha_1),length(alpha_2),id2+(id1-1)*length(alpha_2)); 
     contour(x,y,z,[1 1]); 
     title(['\alpha_1 = ' num2str(alpha_1(id1)) ', \alpha_2 = ' num2str(alpha_2(id2))]) 

    end 
end 
+0

嗯,他們都結束了相同的形狀。 – ursmooth

+0

我無法評論基於變量的函數的平滑度。也許嘗試使用截然不同的alpha1和alpha2。同樣重複他們都在同一規模,也許你沒有比較像喜歡。 – mpaskov

+0

@ursmooth如果確實讓我們標記爲這樣,請回答您的問題,否則請讓我知道答案是否可以改進。 – mpaskov