此文主要讲解对CAMB-Nov2016文件夹下params.ini文件参数调试后功率谱的变化。

标量功率谱和张量功率谱参数化的表达式分别如下:

(谷歌输入CAMB Notes第一篇pdf文件即是所要的note文件)

 

将对数函数划掉,整理得:

%{

以下为原初标量功率谱,在改动谱指数的第一个跑动的情况,第二个跑动设置为零,此外第一个跑动分别设置为0.010.050.10.5.通过画图对比发现Ps随着跑动增加而递增

%}

clc

clear

syms k P_s

A_s=1;

k_0=0.05;

n_s=0.96;

n(1)=0.01;

n(2)=0;

P_s=A_s*(k/k_0)^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0)^2);

subplot(2,2,1),ezplot(P_s)

legend('n(1)=0.01')

n(1)=0.05;

P_s(1)=A_s*(k/k_0)^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0)^2);

subplot(2,2,2),ezplot(P_s(1))

legend('n(1)=0.05')

n(1)=0.1;

P_s(2)=A_s*(k/k_0)^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0)^2);

subplot(2,2,3),ezplot(P_s(2))

legend('n(1)=0.1')

n(1)=0.5;

P_s(3)=A_s*(k/k_0)^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0)^2);

subplot(2,2,4),ezplot(P_s(3))

legend('n(1)=0.5')

实际上在n(1)很小的时候Ps是可以很大的,比如

>> vpa(subs(P_s(3),0.0001))

ans =

20008.706407377091796069778471219

>> vpa(subs(P_s(3),0.000001))

ans =

7914294433451.3374549168681390491

以下将坐标轴设置为0到0.002,并将ezplot改为plot画图。

%{

以下为原初标量功率谱,在改动谱指数的第一个跑动的情况,第二个跑动设置为零,此外第一个跑动分别设置为0.010.050.10.5.通过画图对比发现Ps随着跑动增加而递增

%}

Clc

figure

A_s=1;

k_0=0.05;

n_s=0.96;

k=0:0.00001:0.002;

n(1)=0;

n(2)=0;

P_s_0=A_s*(k/k_0).^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0).^2);

plot(k,P_s_0,'b')

hold on

n(1)=0.01;

P_s_1=A_s*(k/k_0).^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0).^2);

plot(k,P_s_1,'g')

hold on

n(1)=0.05;

P_s_2=A_s*(k/k_0).^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0).^2);

plot(k,P_s_2,'y')

hold on

n(1)=0.1;

P_s_3=A_s*(k/k_0).^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0).^2);

plot(k,P_s_3,'r')

hold on

n(1)=0.5;

P_s_4=A_s*(k/k_0).^(n_s-1+n(1)/2*log(k/k_0)+n(2)/6*log(k/k_0).^2);

plot(k,P_s_4,'k')

legend('0','0.01','0.05','0.1','0.5')

 

将坐标范围缩小:

 

(nrun=0.5的图由于前期值太大,已经溢出窗口)

从图中可以看到即使在前期Ps也是随nrun的增加而递增。

 

应用到功率谱中,因为功率谱是与原初功率谱正相关,所以也是递增的。

将n(1)=0,0.01,0.05,0.1,0.5的数据导入matlab,并代码画图:

clc

plot(L,sqrt(TT))

hold on

plot(L1,sqrt(TT1))

hold on

plot(L2,sqrt(TT2))

hold on

plot(L3,sqrt(TT3))

hold on

plot(L4,sqrt(TT4))

axis([0,1000,0,100])

legend('TTn(1)=0','TT1n(1)=0.01','TT2n(1)=0.05','TT3n(1)=0.1','TT4n(1)=0.5')

title('scalar spectrum CTT,nrunrun=0')

 

同样对于EE谱,如下

clc

figure

plot(L,sqrt(EE))

hold on

plot(L1,sqrt(EE1))

hold on

plot(L2,sqrt(EE2))

hold on

plot(L3,sqrt(EE3))

hold on

plot(L4,sqrt(EE4))

axis([0,1000,0,10])

legend('n(1)=0','n(1)=0.01','n(1)=0.05','n(1)=0.1','n(1)=0.5')

title('scalar spectrum CEE,nrunrun=0')

局部放大图如下;

 

 

TE谱如下:

clc

figure

plot(L,sqrt(TE))

hold on

plot(L1,sqrt(TE1))

hold on

plot(L2,sqrt(TE2))

hold on

plot(L3,sqrt(TE3))

hold on

plot(L4,sqrt(TE4))

axis([0,1000,0,20])

legend('n(1)=0','n(1)=0.01','n(1)=0.05','n(1)=0.1','n(1)=0.5')

title('scalar spectrum CTE,nrunrun=0')

 

 

以上TE谱因为算的都是平方根,所以虚部被自动去掉。同时通过放大可以发现Ps在后面600和900对应的峰是随随着n(1)增加而减小的。

 

 

产生以上效果的原因是因为TE谱原本就是有负值的,因此要去掉平方根,得到如下

clc

figure

plot(L,TE)

hold on

plot(L1,TE1)

hold on

plot(L2,TE2)

hold on

plot(L3,TE3)

hold on

plot(L4,TE4)

axis([0,1000,-150,150])

legend('n(1)=0','n(1)=0.01','n(1)=0.05','n(1)=0.1','n(1)=0.5')

title('scalar spectrum CTE,nrunrun=0')

 

 

将470左右的谷放大如下

 

 

因此结论为:无论波峰波谷,对于的谱的绝对值都是随n(1)增加而增加的。