Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // D_URR_Szymanek_Piotr.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- #include <math.h>
- using namespace std;
- double f1(double t, double x, double y);
- double f2(double t, double x, double y);
- void k1(double t, double x, double y);
- void k2(double t, double x, double y);
- void k3(double t, double x, double y);
- void k4(double t, double x, double y);
- void x1();
- int r = 2;
- double h = pow(10, -4);
- double K1[2], K2[2], K3[2], K4[2], X[2] = { 1,1 };
- int main()
- {
- int i = 0;
- double t = 0, t0 = 1;
- while (t != 3)
- {
- t = t0 + i*h;
- k1(t, X[0], X[1]);
- k2(t, X[0], X[1]);
- k3(t, X[0], X[1]);
- k4(t, X[0], X[1]);
- x1();
- i++;
- }
- cout <<"Tk= "<< t << endl;
- cout << "X0= " << X[0] << endl;
- cout << "X1= " << X[1] << endl;
- cout << "h=" << h << endl;
- system("PAUSE");
- return 0;
- }
- double f1(double t, double x, double y)
- {
- return (-x / t)+ y;
- }
- double f2(double t, double x, double y)
- {
- return (-2.0 *x) / (t*t) + y / t;
- }
- void k1(double t, double x, double y)
- {
- double pom = 0;
- for (int i = 0; i<r; i++)
- {
- switch (i)
- {
- case 0: pom = h*f1(t, x, y); break;
- case 1: pom = h*f2(t, x, y); break;
- }
- K1[i] = pom;
- }
- }
- void k2(double t, double x, double y)
- {
- double pom = 0;
- for (int i = 0; i<r; i++)
- {
- switch (i)
- {
- case 0: pom = h*f1(t + 0.5*h, x + 0.5*K1[0], y + 0.5*K1[1]); break;
- case 1: pom = h*f2(t + 0.5*h, x + 0.5*K1[0], y + 0.5*K1[1]); break;
- }
- K2[i] = pom;
- }
- }
- void k3(double t, double x, double y)
- {
- double pom = 0;
- for (int i = 0; i<r; i++)
- {
- switch (i)
- {
- case 0: pom = h*f1(t + 0.5*h, x + 0.5*K2[0], y + 0.5*K2[1]); break;
- case 1: pom = h*f2(t + 0.5*h, x + 0.5*K2[0], y + 0.5*K2[1]); break;
- }
- K3[i] = pom;
- }
- }
- void k4(double t, double x, double y)
- {
- double pom = 0;
- for (int i = 0; i<r; i++)
- {
- switch (i)
- {
- case 0: pom = h*f1(t + h, x + K3[0], y + K3[1]); break;
- case 1: pom = h*f2(t + h, x + K3[0], y + K3[1]); break;
- }
- K4[i] = pom;
- }
- }
- void x1()
- {
- for (int i = 0; i<r; i++)
- X[i] = X[i] + 1.0 / 6 * (K1[i] + 2 * K2[i] + 2 * K3[i] + K4[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement