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 | + | } |