数组循环迭代计算,求大神帮忙
想写一个方法,得到puxi数组;
public double[] get_puxi(double[] x,int p,int q)
{
double[] ok_xita=new double [1000]//{1,0.348,0.116,-0.069,-0.261,-0.3279,0.050,0.150,-0.330,-0.00003}
double[] ok_foai=new double [1000]//{1,0.348,0.223,0.058,-0.199,-0.426,-0.285,-0.0709,-0.194,0.0463};
double[] puxi=new double[1000];
//puxi数组的第一个值等于ok_xita数组第一个值;
puxi[0]=ok_xita[0];
//采用公式为:puxi(j)-Σok_foai(k)*puxi(j-k)=ok_xita(j) 当0<=j<3时,这时Σ的下标为0<k<=j;
puxi(j)-Σok_foai(k)*puxi(j-k)=0 当j>3时,这时Σ的下标为0<k<=2;
//下面是我写的部分代码,可以正确算puxi[0]puxi[1]的结果,可是后面的就不正确,求大神帮忙。另外发现我的循环不是一次结束,本来计算一遍后,它又回到赋值语句上面,请问是什么原因????????????
for (int j=1; j < x.Length; j++)
{
if (0 <= j & j < Math.Max(p, q + 1))
{
for (int k = 1; k <= j; k++)
{
puxi[j] += ok_foai[k] * puxi[j - k] + ok_xita[j];
}
}
else
{
for (int k = 1; k <= j; k++)
{
puxi[j] += ok_foai[k] * puxi[j - k];
}
}
}
return puxi;
}