0
Dl
のログをプロットしたいのですが、変数z
の値はlog(z)
です。私はz = 1:100
のためにこれをしようとしていますが、それはDl
のための1つの番号を返します。マトリックスの出力を提供する機能がうまくいきません
% Log(Dl) versus Log(Redshift)
m = 1;
d = 0;
z = linspace(1,100,1);
Dl = zeros(1,100);
for z = 1:100
[Dl,Da] = Cosmological(m,d,z);
end
y = log(Dl);
x = log(1:100);
plot(x,y)
愚かなコードや無駄なコード行には申し訳ありません。私はプログラミングがとても新しいです。私は次のように書かれているために呼び出される関数cosmological
(しかし、エラーがないが、それほど必要ではないかもしれないが、私は念のために掲示しています):
function [Dl,Da] = Cosmological(m,d,z)
f = @(x)1./((1+x).*((m.*(1+z)-m+d.*((1+x).^(-2))-d+1).^(.5)));
q = integral(f,0,z); % Integral part equations for Dl
if m+d==1 % flat universe condition
Dl=c/H0.*(1+z)*q;
elseif m+d<1 %positive spatial curvature universe condition
Dl=c/H0*(1-m-d)^(-1/2)*(1+z)*sinh((1-m-d)^.5).*q;
else % negative spatial curvature universe condition
Dl=c/H0*(1-m-d)^(-1/2)*(1+z)*sin((1-m-d)^.5).*q;
end
Da = Dl/(1+z)^2; %Angular diameter distance function
end