こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

Scilabを使ったジュリア集合の描画プログラム

今、Scilabを使用してジュリア集合(充填およびそれ以外を含む集合)を描画するプログラムを書いています。
以前書いたC言語のプログラムをもとに書いているのですが、正確に描画できません。どうしたらよいでしょうか。教えてください。
与える条件は右上と左下の座標(複素数形式)と定数Cの値です。

以下に掲載したのが製作したプログラムです。
よろしくお願い致します。

//描画エリアの右上と左下の座標を複素数で設定する
Z =[ -1.2-1.2*%i;1.2+1.2*%i];
//複素定数(C)を設定する
C=0+0*%i;
//描画エリアのx座標とy座標の各最小値と最大値を計算する。
xmin = min(real(Z));
xmax = max(real(Z));
ymin = min(imag(Z));
ymax = max(imag(Z));
Cr = real(C);
Ci = imag(C);
//描画点数を800×800に設定する。
N = 800;
//各増分を計算する。
dx = (xmax-xmin)/(N-1);
dy = (ymax-ymin)/(1-N);
//プロットデータを"0"で初期化
map=zeros(N,N);
//ジュリア集合の描画
i=1;
for X=xmin:dx:xmax
j=1;
for Y=ymax:dy:ymin
for k=1:30
x = X ^ 2 - Y ^ 2 + Cr;
y = 2 * X * Y +Ci;
if x^2 +y^2 > 4 then
break;
end
map(j,i)=k;
X=x;
Y=y;
end
j=j+1;
end
i=i+1;
end
//プロットするための設定
Re = xmin:dx:xmax;
Im = ymax:dy:ymin;
clf(0);
Sgrayplot(Re,Im,map');

投稿日時 - 2017-10-04 09:59:52

QNo.9382003

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

ANo.1

とりあえず、変数の初期化には問題があったもよう。

for X0=xmin:dx:xmax
  j=1;
  for Y0=ymax:dy:ymin
    X = X0;
    Y = Y0;
    for k=1:30
//     disp([i j k X Y X^2 + Y^2])

N=5くらいで、期待通りに変数の値がセットされているか、
といった基本的な確認はしましょう。


参考:[Scilab] Scilabの変数スコープについて - ICの日記

参考URL:http://d.hatena.ne.jp/ikeuchihiroki/20081108/1226154766

投稿日時 - 2017-10-08 16:07:37

お礼

早速の回答、ありがとうございます。

試してみます。

投稿日時 - 2017-10-09 17:18:28

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-