这段时间自己在花时间学习matlab,所以更新了我的代码,现在看上去要高级一些,共享给大家:
function = PisarenkoPlot(n1,n2,n_step,m2)
Kb=138.06488;
e=1.6021892;
K=Kb/e;
n = n1:n_step:n2;
h=6.6260755;
me=9.10938215;
T=300;% unit in K
leg = cell (length(m2),1);
for j=1:length(m2)
mm2 = m2(j);
m=(mm2*me)*10^-4;
Fn=@(no,yita)quadgk(@(x)x.^no./(1+exp(x-yita)),0,inf);
for i=1:length(n)
f1=@(yita)4*pi*(2*Kb*T*m)^(3/2)/h^3*Fn(1/2,yita)-n(i);
yita(i)=fsolve(f1,0);
S(i,j)=K*(2*Fn(1,yita(i))/Fn(0,yita(i))-yita(i));
end
plot(n,S(:,j),'LineWidth',1)
hold on
leg{j} = num2str(m2(j));
end
hold off
xlabel('n ');
ylabel('S ');
legend(leg,'fontSize',14);
n = n';