Numerit[WIN32][1700][1703]C"  gsl\gsl qffffff)@j@fffffvq@?@ffffff9@?@ffffff9@ffffff)@ffffff)@         Times New RomanArialSymbol Courier New )G c@ffffffI@yy0tt>@>@>@>@>@>@>@ >@ >@ >@>@>@>@>@>@ >@  >==>>?? 0.010.01 0.010.01G c@ffffffI@yy1tt>@>@>@>@>@>@>@ >@ >@ >@>@>@>@>@>@ >@  >==>>?? 0.010.01 0.010.01vvv vvv vvv vvv vvv vvv %vvv ODE - Ordinary Differential Equationsvvv vvv B avvv Solution of the Van der Pol oscillator equation using Prince-Dormand 8th order Runge-Kuttavvv vvv vvv C vvv The derivativevvv  a0ffffff)@k@fffffvq@?@ffffff9@`ffff0@ffffff9@ffffff)@ffffff)@         Times New RomanArialSymbol Courier New j?` This sample program demonstrates a Dynamic-Link Library call.J` Ordinary Differential Equations - from The Gnu Scientific Library (GSL).>` - see GSL Reference Manual: Ordinary Differential Equations.4` gsldemo.dll and this program are distributed under4` the terms of the GNU General Public License (GPL).6` see gpl.txt or http://www.gnu.org/copyleft/gpl.html.*` -> Run and see the results in the Report0This example solves the second-order nonlinear Van der Pol oscillator equation:&x"(t) + m x'(t)(x(t)^2 - 1) + x(t) = 0-which is converted into a first order system:x' = yy' = -x + m y (1-x^2)/` The order, order^2, and parameters-array size3` must be defined in the global variables 'ode_ord'4` 'ode_ord2' and 'ode_size' that are used in the DLL2` functions declarations below (to define the size7` of arrays in the callback functions 'fun' and 'jac'). ode_ord = 2ode_ord2 = ode_ord*ode_ord ode_size = 1(dll "gsldemo.dll" ` declare the libraryVdvar ptr gsl_odeiv_step_rk8pd():_gsl_odeiv_step_rk8pd ` declare a DLL global variable-dfunc ` declare the DLL functons` our error handler#void num_gsl_error():_num_gsl_error` GSL ODE functions5ptr gsl_set_error_handler(ptr):_gsl_set_error_handler=ptr gsl_odeiv_step_alloc(ptr T, uint n):_gsl_odeiv_step_allocTptr gsl_odeiv_control_y_new(double eps_abs, double eps_rel):_gsl_odeiv_control_y_new>ptr gsl_odeiv_evolve_alloc(uint dimen):_gsl_odeiv_evolve_alloc6int gsl_odeiv_evolve_apply(ptr ev, ptr con, ptr step,\] {int func fun(double t, double y[ode_ord]~, double dydt[ode_ord], double mu[ode_size]~),\t int func jac(double t, double y[ode_ord]~, double dfdy[ode_ord2], double dfdt[ode_ord], double mu[ode_size]~),\ uint dimen,\ double mu[]},\I double& t, double t1, double& h, double y[]):_gsl_odeiv_evolve_apply6void gsl_odeiv_evolve_free(ptr):_gsl_odeiv_evolve_free8void gsl_odeiv_control_free(ptr):_gsl_odeiv_control_free3void gsl_odeiv_step_free(ptr):_gsl_odeiv_step_free/` Set our error handler; num_gsl_error actually0` calls Numerit's error handler (see numerror.c)%gsl_set_error_handler(@num_gsl_error)` the functionfunc fun(t,y,f,mu) f[1] = y[2])f[2] = -y[1] - mu[1]*y[2]*(y[1]*y[1] - 1) return 0` the Jacobianfunc jac(t,y,dfdy,dfdt,mu) dfdy[1] = 0 dfdy[2] = 1 dfdy[3] = -2*mu[1]*y[1]*y[2] - 1 dfdy[4] = -mu[1]*(y[1]*y[1] - 1) dfdt[1] = 0 dfdt[2] = 0 return 0` allocate ODE parametersIT = gsl_odeiv_step_rk8pd() ` get step type (a pointer variable)Mst = gsl_odeiv_step_alloc(T,2) ` allocate instance of stepping function>ct = gsl_odeiv_control_y_new(1e-6,0) ` create a control objectNev = gsl_odeiv_evolve_alloc(2) ` allocate instance of evolution function ` initialize?mu[1] = 5 ` only one value in this case (but must be an array)t = 0t1 = 100 h = 1e-6y = 1,0` solve:` The function gsl_odeiv_evolve_apply advances the system.;` Note how the Numerit functions 'fun' and 'jac' are passed:` to gsl_odeiv_evolve_apply as callback functions inside a?` structure argument (gsl_odeiv_system in GSL). The first three=` arguments (ev,ct,st) were allocated above and are passed as ` pointers.i = 1 while t < t1Estatus = gsl_odeiv_evolve_apply(ev,ct,st,{@fun,@jac,2,mu},t,t1,h,y)if status <> 0 break` keep results tt[i] = t yy0[i] = y[1] yy1[i] = y[2]i += 1` free allocated objectsgsl_odeiv_evolve_free(ev)gsl_odeiv_control_free(ct)gsl_odeiv_step_free(st)c:\num\num1.7\samples\ ode_ord ode_ord2 ode_size@num_gsl_errorqTstctevmutt1hyistatus@fun @jac tt yy0 yy1  u  B 5 <?I<J  <K  <L <O 4 P  Q  R  S  5 \  ] Y7^        <_  ]76a 4 b 4 4 c 4 4 d N 6g <?h < ?i < ?7hPgsl_odeiv_step_rk8pd_gsl_odeiv_step_rk8pdnum_gsl_error_num_gsl_errorgsl_set_error_handler_gsl_set_error_handlergsl_odeiv_step_alloc_gsl_odeiv_step_allocgsl_odeiv_control_y_new_gsl_odeiv_control_y_newgsl_odeiv_evolve_alloc_gsl_odeiv_evolve_allocgsl_odeiv_evolve_apply _gsl_odeiv_evolve_apply   $gsl_odeiv_evolve_free_gsl_odeiv_evolve_freegsl_odeiv_control_free_gsl_odeiv_control_freegsl_odeiv_step_free_gsl_odeiv_step_free funfuntyfmu (9: 4 4; 4 4G 4 4B 4 4B ABA< ==> jacjactydfdydfdtmu A?@ 4 A 4 B 4 G 4B 4B 4B AC 4 4G 4 4B ABD 4 E 4 F =G> 2@1? gsldemo.dll03@4@1e-6ư>5@100Y@  gsldemo.dll