dbchyn
2009-05-14, 15:45
下面这个程序可求出半参函数中参数b的一个估计值,我需要让程序跑100次得到100个不同的b,每跑一次得到的b是不同的,于是我在程序外面套了一个for循环,可是一直报错,哪位达人能指点一下,不胜感激
n=300;
m=200;
x=randn(n,1);
z=-0.3*randn(n,1)+x;
t=rand(m,1);
e=1:n;
f=1:m;
z(e)=z;
k=z(round(rand(m,1)*300));
k(f)=k;
u=0.4*sqrt(t).*randn(m,1);
y=1+k+sin(8*t+5)+u;
h=(1/3)*m^(-1/5);
g1=zeros(m,1);
g2=zeros(m,1);
p=ones(m,1);
for i=1:m;
w=zeros(m);
for j=1:m;
e=((t(j)-t(i))/h)^2;
w(j,j)=0.75*(1-e)*(e<1);
end;
g1(i)=(p'*w*y)/(p'*w*p);
g2(i)=(p'*w*k)/(p'*w*p);
end;
yy=y-g1;
kk=k-g2;
b=(yy'*kk)/(kk'*kk)
:)
n=300;
m=200;
x=randn(n,1);
z=-0.3*randn(n,1)+x;
t=rand(m,1);
e=1:n;
f=1:m;
z(e)=z;
k=z(round(rand(m,1)*300));
k(f)=k;
u=0.4*sqrt(t).*randn(m,1);
y=1+k+sin(8*t+5)+u;
h=(1/3)*m^(-1/5);
g1=zeros(m,1);
g2=zeros(m,1);
p=ones(m,1);
for i=1:m;
w=zeros(m);
for j=1:m;
e=((t(j)-t(i))/h)^2;
w(j,j)=0.75*(1-e)*(e<1);
end;
g1(i)=(p'*w*y)/(p'*w*p);
g2(i)=(p'*w*k)/(p'*w*p);
end;
yy=y-g1;
kk=k-g2;
b=(yy'*kk)/(kk'*kk)
:)