1extern crate numerical_integration;
2
3use numerical_integration::{Integrator, EULER, RK4};
4
5
6fn main() {
7
8 use std::f64::consts::*;
9
10 fn f(t: f64, _y: f64) -> f64 { (-t*t).exp() }
16
17 let n = 1000; let l = 100.0; let dt = l / (n as f64);
20
21 let mut t = -l/2.0;
23 let mut y1 = EULER.init(0.0, dt, &f);
24 let mut y2 = RK4.init(0.0, dt, &f);
25
26 for _ in 0..n {
27 println!("{} {} {}", EULER.step(t, y1.as_mut(), dt, &f), RK4.step(t, y2.as_mut(), dt, &f), PI.sqrt());
28 t += dt;
29 }
30
31 println!("{} {} {}", y1[0]*y1[0], y2[0]*y2[0], PI);
33
34
35}