diff --git a/Modele_rozprzestrzeniania_sie_infekcji-_program.cpp b/Modele_rozprzestrzeniania_sie_infekcji-_program.cpp new file mode 100644 index 0000000000000000000000000000000000000000..af319252b9336d90aabae8258fc779188691425d --- /dev/null +++ b/Modele_rozprzestrzeniania_sie_infekcji-_program.cpp @@ -0,0 +1,95 @@ +/* +Projekt specjalnosciowy + +"Modele rozprzestrzeniania sie infekcji" +Mirella Narewska, Laura Mieczkowska, Konrad Korejwo + +*/ + + + +#include<iostream> +#include<fstream> + +using namespace std; + +float dhdt(float N, float bHN, float adH, float t, float C, float H) { + + + return (H * (bHN * (N - C - H) - adH)); +} + +float dcdt(float N, float bCN, float adC, float t, float C, float H) { + return (C * (bCN * (N - C - H) - adC)); +} + +void RK4(float N, float bHN, float bCN, float adH, float adC, + float t0, float H0, float C0, float t, float h) { + int n = (int)((t - t0) / h); + float k1, k2, k3, k4, k5, l1, l2, l3, l4; + float H = H0; + float C = C0; + + cout << "t\tH\tC\n" << endl; + for (int i = 1; i <= n; i++) { + + k1 = h * dhdt(N, bHN, adH, t0, C, H); + l1 = h * dcdt(N, bCN, adC, t0, C, H); + + k2 = h * dhdt(N, bHN, adH, t0 + 0.5 * h, C + 0.5 * l1, H + 0.5 * k1); + l2 = h * dcdt(N, bCN, adC, t0 + 0.5 * h, C + 0.5 * l1, H + 0.5 * k1); + + k3 = h * dhdt(N, bHN, adH, t0 + 0.5 * h, C + 0.5 * l2, H + 0.5 * k2); + l3 = h * dcdt(N, bCN, adC, t0 + 0.5 * h, C + 0.5 * l2, H + 0.5 * k2); + + k4 = h * dhdt(N, bHN, adH, t0 + h, C + l3, H + k3); + l4 = h * dcdt(N, bCN, adC, t0 + h, C + l3, H + k3); + + H = H + (1.0 / 6.0) * (k1 + 2 * k2 + 2 * k3 + k4); + C = C + (1.0 / 6.0) * (l1 + 2 * l2 + 2 * l3 + l4); + + t0 = t0 + h; + + cout << t0 << "\t" << H << "\t" << C << endl; + + fstream plik1; + fstream plik2; + + plik1.open("dane_HA.txt", ios::out|ios::app); + plik1 << t0 << "\t" << H << endl; + plik1.close(); + + plik2.open("dane_CA.txt", ios::out | ios::app); + plik2 << t0 << "\t" << C << endl; + plik2.close(); + } +} + +int main() { + float t0 = 0, t = 170, H0 = 90, C0 = 90, h = 0.5; //beth israel deconess- c=1, h=1 + float beta_h, N, alfa_h, delta_h, beta_c, alfa_c, delta_c; + + cout << "Wielkosc populacji: "; + cin >> N; + cout << "\n---SZCZEP HA-MRSA---" << endl; + cout << "Czestotliwosc rozprzestrzeniania sie: "; + cin >> beta_h; + cout << "Czestotliwosc opuszczania szpitala przez zarazonych pacjentow: "; + cin >> delta_h; + cout << "Czestotliwosc skutecznego przechodzenia leczenia przez zarazonych pacjentow: "; + cin >> alfa_h; + + float bHN = beta_h / N; + float adH = alfa_h + delta_h; + cout << "\n---SZCZEP CA-MRSA---" << endl; + cout << "Czestotliwosc rozprzestrzeniania sie: "; + cin >> beta_c; + cout << "Czestotliwosc opuszczania szpitala przez zarazonych pacjentow: "; + cin >> delta_c; + cout << "Czestotliwosc skutecznego przechodzenia leczenia przez zarazonych pacjentow: "; + cin >> alfa_c; + + float bCN = beta_c / N; + float adC = alfa_c + delta_c; + RK4(N, bHN, bCN, adH, adC, t0, H0, C0, t, h); +} \ No newline at end of file