2016-11-08 3 views
0

私はグラフを1つに分けてプロットしました。z=abs(1+s+(alpha_2)*s.^2+(alpha_1)*(alpha_2)*s.^3)を試行錯誤で最大化したいので、他のグラフは可能な限り大きなものに収めることができます。ですから、私はalpha_1とalpha_2の値を変更するために2つのループを実行したいと思います。たとえば複数のグラフを1つにまとめ、値ラベル

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つのグラフを図形にして、グラフごとにどのようなα_1とalpha_2の値があるのか​​を言うことは可能ですか?

のorignalプログラム:

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

変数に基づいて関数の滑らかさにコメントすることはできません。おそらく、異なったアルファ1とアルファ2で試してみてください。また、彼らはすべて同じスケールで、ダブルチェックは多分あなたのように比較していないです。 – mpaskov

+0

@ursmoothこの回答はあなたに質問されましたか?そうでない場合は、回答が改善できるかどうか教えてください。 – mpaskov

関連する問題