安ann
2010-06-27, 22:41
function [tc,dd]=linjiejianxi(r1,a1) % r1拒绝间隙向量,a1接受间隙向量,都为列向量
r1=[2:3:5:3:3:4:3:3:3:5]';
a1=[4:8:7:8:9:8:5:8:9:10]';
r=log(r1); %赋初值
a=log(a1);
w=ones(length(r1),1);
y=[0.1 2 6 1];
f=[2 2 2];
g=[2 2 2];
x=[1 9 1 1];
while 1
x(1)=1;
x(2)=9;
while abs(f(3))>10^(-10) %计算均值
for i=1:2
f(i)=(normpdf(r,x(i),y(3))-normpdf(a,x(i),y(3)))./(normcdf(a,x(i),y(3))-normcdf(r,x(i),y(3)))*w;
end
x(3)=(x(1)*f(2)-x(2)*f(1))/(f(2)-f(1));
f(3)=(normpdf(r,x(3),y(3))-normpdf(a,x(3),y(3)))./(normcdf(a,x(3),y(3))-normcdf(r,x(3),y(3)))*w;
if f(3)*f(1)>0
f(1)=f(3);
x(1)=x(3);
else
x(2)=x(3);
end
end
x;
y(1)=0.1;
y(2)=5;
while abs(g(3))>10^(-10) %计算方差
for i=1:2
g(i)=((r-x(3)).*normpdf(r,x(3),y(i))-(a-x(3)).*normpdf(a,x(3),y(i)))./(normcdf(a,x(3),y(i))-normcdf(r,x(3),y(i)))*w;
end
y(3)=(y(1)*g(2)-y(2)*g(1))/(g(2)-g(1));
g(3)=((r-x(3)).*normpdf(r,x(3),y(3))-(a-x(3)).*normpdf(a,x(3),y(3)))./(normcdf(a,x(3),y(3))-normcdf(r,x(3),y(3)))*w;
if g(3)*g(1)>0
g(1)=g(3);
y(1)=y(3);
else
y(2)=y(3);
end
end
y;
if abs(x(4)-x(3))<10^(-5)&abs(y(4)-y(3))<10^(-5)
break;
end
x(4)=x(3);
y(4)=y(3);
end
x;
y;
tc=exp(x(3)+0.5*y(4)*y(4)); %输出临界间隙均值tc值
dd=(tc*tc*(exp(y(4)*y(4))-1))^(0.5); %输出临界间隙方差
请教哪里有问题啊,很着急,谢谢各位高手啊
r1=[2:3:5:3:3:4:3:3:3:5]';
a1=[4:8:7:8:9:8:5:8:9:10]';
r=log(r1); %赋初值
a=log(a1);
w=ones(length(r1),1);
y=[0.1 2 6 1];
f=[2 2 2];
g=[2 2 2];
x=[1 9 1 1];
while 1
x(1)=1;
x(2)=9;
while abs(f(3))>10^(-10) %计算均值
for i=1:2
f(i)=(normpdf(r,x(i),y(3))-normpdf(a,x(i),y(3)))./(normcdf(a,x(i),y(3))-normcdf(r,x(i),y(3)))*w;
end
x(3)=(x(1)*f(2)-x(2)*f(1))/(f(2)-f(1));
f(3)=(normpdf(r,x(3),y(3))-normpdf(a,x(3),y(3)))./(normcdf(a,x(3),y(3))-normcdf(r,x(3),y(3)))*w;
if f(3)*f(1)>0
f(1)=f(3);
x(1)=x(3);
else
x(2)=x(3);
end
end
x;
y(1)=0.1;
y(2)=5;
while abs(g(3))>10^(-10) %计算方差
for i=1:2
g(i)=((r-x(3)).*normpdf(r,x(3),y(i))-(a-x(3)).*normpdf(a,x(3),y(i)))./(normcdf(a,x(3),y(i))-normcdf(r,x(3),y(i)))*w;
end
y(3)=(y(1)*g(2)-y(2)*g(1))/(g(2)-g(1));
g(3)=((r-x(3)).*normpdf(r,x(3),y(3))-(a-x(3)).*normpdf(a,x(3),y(3)))./(normcdf(a,x(3),y(3))-normcdf(r,x(3),y(3)))*w;
if g(3)*g(1)>0
g(1)=g(3);
y(1)=y(3);
else
y(2)=y(3);
end
end
y;
if abs(x(4)-x(3))<10^(-5)&abs(y(4)-y(3))<10^(-5)
break;
end
x(4)=x(3);
y(4)=y(3);
end
x;
y;
tc=exp(x(3)+0.5*y(4)*y(4)); %输出临界间隙均值tc值
dd=(tc*tc*(exp(y(4)*y(4))-1))^(0.5); %输出临界间隙方差
请教哪里有问题啊,很着急,谢谢各位高手啊