这就是我现在正在做的事情:
double fb0(const double *x, const double *par){ // B0'
return -par[0]+(1-Cxr(0,2)*par[1])*x[0]+Cxr(0,2)*par[1]*x[0];
}
double fb1(const double *x, const double *par){ // B1'
return -par[0]+(1-Cxr(1,2)*par[1])*x[1]+Cxr(1,2)*par[1]*x[1];
}
double fb2(const double *x, const double *par){ // B2'
return -par[0]+(1-Cxr(2,2)*par[1])*x[2]+Cxr(3,2)*par[1]*x[3];
}
double fb3(const double *x, const double *par){ // B3'
return -par[0]+(1-Cxr(3,2)*par[1])*x[3]+Cxr(4,2)*par[1]*x[4];
}
double fb4(const double *x, const double *par){ // B4'
return -par[0]+(1-Cxr(4,2)*par[1])*x[4]+Cxr(5,2)*par[1]*x[5];
}
...
Run Code Online (Sandbox Code Playgroud)
一直持续到fb20。然后我调用我的void main(){}. 我想做的是在我的之前有这样的事情void main(){}:
for(int i=0;i<20;i++){
double fb[i](const double *x, const double *par){return -par[0]+(1-Cxr(i,2)*par[1])*x[i]+Cxr(i+1,2)*par[1]*x[i+1];}
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?这样我就能够求解具有任意 i 的方程组。
只需再添加一个参数
double fb(const double *x, const double *par, size_t num)
{
return -par[0]+(1-Cxr(num,2)*par[1])*x[num]+Cxr(num + 1,2)*par[1]*x[num + 1];
}
Run Code Online (Sandbox Code Playgroud)
...您将不需要 20 个函数