2-тажриба иши мавзу: Бошланѓич шартли оддий дифференциал тенгламаларни сонли ечиш усуллари



Yüklə 241 Kb.
tarix02.01.2022
ölçüsü241 Kb.
#40056
2-tajriba km


912-17 guruh talabasi

Masharipov Sanjarning

Kompyuterli modellashtirish fanidan
2-ТАЖРИБА ИШИ
Мавзу: Бошланѓич шартли оддий дифференциал тенгламаларни сонли ечиш усуллари.

Керакли техник воситалар:

Шахсий компьютер.

Керакли дастурий воситалар:

Турбо Паскаль дастурлаш системаси ва бошланѓич шартли оддий дифференциал тенгламаларни таќрибий ечиш учун тузилган дастурлар.

Ишнинг маќсади: Талабаларни бошланѓич шартли оддий дифференциал тенгламалар учун Эйлер, Рунге-Кутта усуллари алгоритми билан таништириш ва унга Паскаль тилида тузилган дастурда ишлашга ўргатиш.



Топшириќ.

1-масала. Ќуйидаги Коши масалаларини Эйлер усулида ечинг (n=10; h=0.1).


8. y’=x-1-1-lnx-x+y, y(1)=-1
Dastur kodi(C++)

#include

#include

#include

using namespace std;

double funksiya(double x, double y){

return y - sqrt(pow(x,2)+2*log(x)*(x-1)); // funksiya ifodasi

}

main(){



double a, b, n, y0;

cout << "a = "; cin >> a;

cout << "b = "; cin >> b;

cout << "n = "; cin >> n;

cout << "y0 = "; cin >> y0;

double h, x;

h = (b - a) / n;

x = a;


cout << "x = " << x << " y = " << y0 << endl;

for(int i = 1; i <= n; i++){

y0 = funksiya(x, y0) * h + y0;

x = x + h;

cout << "x = " << x << " y = " << y0 << endl;

}

}


2-масала. Ќуйидаги Коши масалаларини Рунге-Кутта усулида ечинг(n=10; h=0.1).

8.
#include

#include

#include

using namespace std;

int nurav = 2;

double y[3], yz[3];

int n;

double a, b, x0, x1, h;



void pv(double x, double y[3], double *dy){

dy[1] = 2 * exp(-x) - y[1];

}

void rungikyyta(double x, double yn[3], double *dy){



double v3[3], fc[3], fk1[3], fk2[3], fk3[3], fk4[3];

pv(x, yn, fc);

for(int i = 1; i <= nurav; i++){

fk1[i] = h * fc[i];++

v3[i] = yn[i] + 0.5 * fk1[i];

}

x = x + 0.5 * h;



pv(x, v3, fc);

for(int i = 1; i <= nurav; i++){

fk2[i] = h * fc[i];

v3[i] = yn[i] + fk2[i];

}

pv(x, v3, fc);



for(int i = 1; i <= nurav; i++){

fk3[i] = h * fc[i];

v3[i] = yn[i] + fk2[i];

}

x = x + 0.5 * h;



pv(x, v3, fc);

for(int i = 1; i <= nurav; i++){

fk4[i] = h * fc[i];

dy[i] = yn[i] + 0.1666666666667 * (fk1[i] + 2 * fk2[i] + 2 * fk3[i] + fk4[i]);

}

}

main(){



cout << "a = "; cin >> a;

cout << "b = "; cin >> b;

cout << "n = "; cin >> n;

h = (b - a) / n;

x0 = a;

for(int i = 1; i <= nurav; i++){

cout << "y0[" << i << "] = "; cin >> yz[i];

}

cout << endl << "x = " << x0 << endl;



for(int i = 1; i <= nurav; i++) cout << "y[" << i << "] = " << y0[i] << endl;

cout << endl;

x1 = a;

for(int j = 1; j <= n; j++){

rungikyyta(x1, yz, y);;

x1 = a + j * h;

cout << "x = " << x1 << " ";

for(int i = 1; i <= nurav; i++) cout << "y[" << i << "] = " << y[i] << " ";

cout << endl;

x0 = x1;


for(int i = 1; i <= nurav; i++)

yz[i] = y[i];



}

}


Yüklə 241 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin