2017-09-15 3 views
0

ガウスベクトルを生成する必要があります。 「デルタ」 - 任意のサイズ - ゼロ平均および分散「アルファ」。 ノルム(デルタ、2)が< = 0.5となるように「アルファ」が選択され、 90%。どうすればそれをすることができますか?matlabでガウスデータを生成する

答えて

0

var.*randn(1000,1) + muを使用すると、特定の差異varと平均muのベクトルを生成できます。次にnorm(delta,2)を計算します。この操作は、100000回繰り返されます。変数Bには、norm(delta,2)<=0.5の値が格納されます。

Plot Probability(Variance)

alpha(分散):確率はあなたがまた、ループのため、ここで

Normv=0; 
mu = 0; 
aux=1; 
REP=10000; 
variance = 0.014:0.0001:0.017; 
for k=1:length(variance) 
for j=1:REP 
    delta = variance(k).*randn(1000,1) + mu; 
    Normv(j)=norm(delta,2); 
end 
B=Normv(Normv<=0.5); 
Prob(aux)=length(B)/length(Normv); 
aux=aux+1; 
end 

plot(variance,Prob) 
xlabel('Variance') 
ylabel('Probability') 

分散を掃引が生成プロットで含めることができ、その後

mu = 0; alpha = 0.01537; 
Normv=0; 
REP=100000 
for j=1:REP 
    delta = alpha.*randn(1000,1) + mu; 
    Normv(j)=norm(delta,2); 
end 
B=Normv(Normv<=0.5); 
Prob=length(B)/length(Normv); 

Prob=length(B)/length(Normv)

ですあなたは見つけることを試みている0.01537です。 REPが高いほど、 alphaの精度が高くなります。

+0

素敵な答えをありがとうございました。ご存知のように、norm(delta、2)では、カイ二乗分布でデータを取得します。 Chi-squared matlab関数を使って、このビューに基づいてデータを生成できますか? –

+0

はい、置き換えることができます: "delta = alpha。* randn(1000,1)+ mu; Normv(j)= norm(delta、2);" chi2pdf(アルファ、アルファ)。私はこれを行うための機能を認識していません。これがあなたの問題を解決することを願っています。 – hello123

+0

ありがとうございます。質問:このコードでは、次のように置き換えます:data = randn(1000,1); k = 1の場合の :長さ(分散) (j = 1の場合):REP デルタ=分散(k)。*データ+ Normv(j)=ノルム(デルタ、2); end %%なぜこの数字がわからないのですか? 私は、ループの前にランダムなデータを生成することを意味しますか? –

関連する問題