SHOW:
|
|
- or go back to the newest paste.
1 | - | /*#include <iostream> |
1 | + | #include <iostream> |
2 | #include <vector> | |
3 | ||
4 | using namespace std; | |
5 | ||
6 | ||
7 | vector<double> y = { 1, 1, 1 }; | |
8 | ||
9 | ||
10 | vector<double> k1(3, 0), k2(3, 0), k3(3, 0), k4(3, 0); | |
11 | ||
12 | double e = 0.001; | |
13 | ||
14 | vector<vector<double>> A = { | |
15 | { -1.f / e, 1.f / e, 1.f / e }, | |
16 | { 0, 1.f - 1.f / e, 0 }, | |
17 | { 0, 0, 1.f } | |
18 | }; | |
19 | ||
20 | double h; | |
21 | double step = 0.1f; | |
22 | ||
23 | auto getK1() { | |
24 | vector<double> result(3, 0); | |
25 | for (int i = 0; i < 3; i++) { | |
26 | result[i] = step * (A[i][0] * y[0] + A[i][1] * y[1] + A[i][2] * y[2]); | |
27 | } | |
28 | return result; | |
29 | } | |
30 | ||
31 | auto getK2() { | |
32 | vector<double> result(3, 0); | |
33 | for (int i = 0; i < 3; i++) { | |
34 | result[i] = step * (A[i][0] * (y[0] + k1[0]) + A[i][1] * (y[1] + k1[1]) + A[i][2] * (y[2] + k1[2])); | |
35 | } | |
36 | return result; | |
37 | } | |
38 | ||
39 | auto getY() { | |
40 | vector<double> result(3, 0); | |
41 | for (int i = 0; i < 3; i++) { | |
42 | result[i] = y[i] + 1.f / 2.f * (k1[i] + k2[i]); | |
43 | } | |
44 | return result; | |
45 | } | |
46 | ||
47 | int main() { | |
48 | for (h = 0 + step; h < 1; h += step) { | |
49 | k1 = getK1(); | |
50 | k2 = getK2(); | |
51 | y = getY(); | |
52 | cout << h << ";" << (double)y[0] << ";" << (double)y[1] << ";" << (double)y[2] << endl << endl; | |
53 | } | |
54 | system("pause"); | |
55 | return 0; | |
56 | - | }*/ |
56 | + | } |