私はC ++を練習していて、ブーストライブラリを初めて使用しています。微分方程式を解くためのこのプログラムがあります。
double rk2(double(*)[2], double, double, double, double(*)[2], double);
int main()
{// Create a 2D array that is n X 2
typedef boost::multi_array<double, 2> array_type;
typedef array_type::index index;
array_type a(boost::extents[n][2]);
// Create a 2D array that is n X 2
typedef boost::multi_array<double, 2> array_type;
typedef array_type::index index;
array_type v(boost::extents[n][2]);
次に、いくつかの条件が続きます..
while
{ (....some condition...)
tf = ti + dt;
vf = rk2(a,ti,vi,tf, v, xi);
xi = vf*dt+xi;
}
return 0;
}
次に、関数を定義します
double rk2(double a[10000][2], double ti, double vi, double tf, double v[10000][2], double xi)
{ ....lines..
return vf;
}
次のようなエラー メッセージが表示されます。
error: cannot convert ‘array_type {aka boost::multi_array<double,>}’ to ‘double (*)[2]’ for argument ‘1’ to ‘double rk2(double (*)[2], double, double, double, double (*)[2], double)’
お願い助けて !
-TY-