Introduction
Introduction Statistics Contact Development Disclaimer Help
tmainC.cpp - numeric - C++ library with numerical algorithms
git clone git://src.adamsgaard.dk/numeric
Log
Files
Refs
LICENSE
---
tmainC.cpp (1342B)
---
1 #include <iostream>
2 #include <vector>
3 #include <complex>
4 #include <cmath>
5 #include "typedefs.h"
6 #include "check.h"
7 #include "ode.h"
8 #include "functions.h"
9
10 int main()
11 {
12 // Namespace declarations
13 using std::cout;
14 using std::vector;
15 using std::complex;
16
17 // Calculate machine precision
18 Floattype eps_machine = 1.0f;
19 while (1.0f + eps_machine != 1.0f)
20 eps_machine /= 2.0f;
21
22 cout << "\n\033[1;33m--- Part C: Solving along a complex path ---\033[…
23 complex<Floattype> a(0.0f, 0.0f); // Lower limit
24 complex<Floattype> b(2.0f*M_PI, 2.0f*M_PI); // Upper limit
25 cout << "Integration path: b-a = " << b-a << '\n';
26 Inttype n_eqs = 2; // Number of equations in ODE system
27 vector<complex<Floattype> > y_start(n_eqs);
28 complex<Floattype> y0(0.0f, 0.0f);
29 complex<Floattype> y1(1.0f, 1.0f);
30 y_start[0] = y0;
31 y_start[1] = y1;
32 Floattype h_start = 0.01f;
33 ODE ode(func1, // ODE system
34 y_start, // Initial values
35 a, // Lower limit
36 b, // Upper limit
37 h_start, // Start value of step size
38 10000, // Max. number of steps
39 eps_machine*1e12f, // Absolute precision
40 eps_machine*1e12f); // Relative precision
41 ode.write("funcC.dat"); // Write solutions to data file
42
43 // Report to stdout
44 cout << "ODE system solved in "
45 << ode.steps() << " steps.\n\n";
46
47 // Return successfully
48 return 0;
49 }
50
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.