30/09/2018, 19:07
Ghi kết quả ra file txt thay vì console
Chào mọi người, mình mới bắt đầu sử dụng thư viện odeint để giải phương trình vi phân cơ bản. Mình đang chạy thử ví dụ sau nhưng ko biết làm cách nào để ghi kết quả từng bước tích phân (t, và x) ra file txt thay vì console như hàm write_cout ở trong chương trình này. Mong các bạn chỉ giúp mình. Thanks
Dưới đây là code của chương trình:
#include <iostream>
#include <boost/numeric/odeint.hpp>
using namespace std;
using namespace boost::numeric::odeint;
/* we solve the simple ODE x' = 3/(2t^2) + x/(2t)
* with initial condition x(1) = 0.
* Analytic solution is x(t) = sqrt(t) - 1/t
*/
void rhs( const double x , double &dxdt , const double t )
{
dxdt = 3.0/(2.0*t*t) + x/(2.0*t);
}
void write_cout( const double &x , const double t )
{
cout << t << ' ' << x << endl;
}
// state_type = double
typedef runge_kutta_dopri5< double > stepper_type;
int main()
{
double x = 0.0;
integrate_adaptive( make_controlled( 1E-12 , 1E-12 , stepper_type() ) ,
rhs , x , 1.0 , 10.0 , 0.1 , write_cout );
}
Bài liên quan
Bạn có thể ghi ra file từ stdout bằng cách
Cảm ơn bạn, mình đã ghi ra file đc rồi.