Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- #define AMOUNT 1000
- int main() { //явный метод эйлера. след. итерация вычисляется на основе пред. значения
- //одношаговый
- double a = 0.9, b = 0.1, h = 0.01, Y[AMOUNT];
- Y[0] = 1;
- ofstream file;
- file.open("zopka.txt", fstream::trunc);
- //4islennij
- //cout << "y_0: " << Y[0] << endl;
- for (int i = 1; i < AMOUNT; i++) {
- Y[i] = Y[i - 1] + h * (a * Y[i - 1] - b * pow(Y[i - 1], 2));
- if (AMOUNT == 1000) {
- if (i % 2 != 0) {
- //cout << "y_" << i << ": " << Y[i] << endl;
- file << Y[i] << endl;
- }
- }
- else {
- //cout << "y_" << i << ": " << Y[i] << endl;
- file << Y[i] << endl;
- }
- }
- int x = a / h;
- //cout << endl << "Result" << endl;
- //cout << endl << "Analyth y_" << x << " (t) = " << (Y[0] * a * exp(a * h)) / (a + b * Y[0] * (exp(a * h) - 1)) << endl;
- //cout << endl << "Euler method y_" << x << " (t) = " << Y[x] << endl<<endl;
- // analyth
- ofstream file1;
- file1.open("zopka2.txt", fstream::trunc);
- //cout << "y_0: " << Y[0] << endl;
- for (int j = 1; j < AMOUNT; j++) {
- Y[j] = (Y[0] * a * exp(a * h * j)) / (a + b * Y[0] * (exp(a * h * j) - 1));
- if (AMOUNT == 1000) {
- if (j % 2 != 0) {
- //cout << "y_" << j << ": " << Y[j] << endl;
- file1 << Y[j] << endl;
- }
- }
- else {
- //cout << "y_" << j << ": " << Y[j] << endl;
- file1 << Y[j] << endl;
- }
- }
- file.close();
- file1.close();
- system("PAUSE");
- }
- //метод ад.башфорда неявный, многошаговый
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement