B] кесмани n та тенг бўлакка бўлиб бўлиниш нуқталари орасидаги қадам


Download 55.44 Kb.
Sana07.12.2020
Hajmi55.44 Kb.
#161441
Bog'liq
Эйлер усули


Эйлер усули

Берилган [x0,b] кесмани n та тенг бўлакка бўлиб бўлиниш нуқталари орасидаги қадам

h=(b-x0)/n (9.3)

бўлганда, бу нуқталар координаталари



xi=xi-1+ h, i=1, 2, ….n (9.4)



бўлади. Бошланғич шартдаги x0 ва y0 лардан фойдаланиб тенглама ечимининг қийматларини тақрибан қуйидагича ҳисоблаймиз.

y1=y0+hf (x0,y0)

y2=y1+hf (x1,y1)

y3=y2+hf (x2,y2) (9.5)

- - - - - - - - -



yn=yn-1+hf (x n-1,y n-1)

натижада изланаётган ечимни қаноатлантирувчи



(x0;y0), (x1;y1), (x2;y2), ……, (xn;yn)

нуқталарни аниқлаймиз. Бу нуқталарни туташтирувчи синик чизиқ Эйлер чизиғи деб аталади ва у тенглама ечимининг тақрибий графигини ифодалайди.



9.1-масала. Қуйидаги.


биринчи тартибли дифференциал тенгламанинг



x0=1.8 y0=2.6

бошланғич шартни қаноатлантирувчи [1.8, 2.8] оралиқда ечимини h=0.1 қадами билан, e=0.001 аниқликда:

Эйлер усули;

Ечиш.

1. Берилган дифференциал тенгламани Эйлер усулида йечамиз.

Бунинг учун [1.8, 2.8] оралиқни

яъни, n=10 та бўлакка ажратамиз. Бўлиниш нуқталарини:

xi=xi-1+h, i=1,2,...,10

формулага асосан топамиз.



x1=x0+h=1.8+0.1=1.9

x2=x1+h=1.9+0.1=2.0

шунингдек

x3=2.1, x4=2.2, x5=2.3, x6=2.4, x7=2.5, x8=2.6, x9=2.7, x10=2.8

Берилган тенгламанинг ўнг томонидаги



F(x;y)=x+cos(y/)

функцияга асосан, Эйлер қоидаси билан қуйидаги

yi+1=yi+ h f(xi;yi), i=1,2,...,10

формулага асосан берилган дифференциал тенглама ечимининг қийматларини қуйидагича топамиз.



y1=y0+hf (x0, y0)=y0+h (x0+cos(y0/))=

=2.6+ 0.1(1.8+cos(26/))=2.6+0.1(18+0.3968)=2.81968

y2=y1+h f (x1,y1)=y1+h(x1+cos(y1/))=

=2.819+ 0.1(1.9+cos(9.819/))=2.819+0.1(1.9+0.3968)=3.03948

Шунингдек, қуйидагиларни топамиз:



y3=3.261, y4=3.4831, y5=3.7045, y6=3.926

y7=4.1478, y8=4.3701, y9=4.5931, y10=4.8173

Бу усул ёрдамида ҳисоблаш қуйидагича дастур асосида берилган.



#include

using namespace std;

float x, y, h, b, EPS;

int i, n;

float funk(float x1, float y1)

{

return (x1+cos(y1/sqrt(5)));

}

int main()

{

cout << " x = " ;

cin >> x;

cout << " y = " ;

cin >> y;

cout << " h = " ;

cin >> h;

cout << " b = ";

cin >> b;

n = ceil((b-x)/h);

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

{

y = y + h * funk(x,y);

x = x + h;

cout << "x ("<< i << ") = " << x << "\n";

cout << "y ("<< i << ") = " << y << "\n";

}

}
Download 55.44 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling