Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КМ_ЛР5_БУ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
200.7 Кб
Скачать

3.Примеры программной реализации рассмотренных методов.

Решение системы уравнений методом Кутта-Мерсона

cls

defdbl a-z

print "Решение системы диф. уравнений методом Кутта-Мерсона»

input "введите число уравнений N=",n

dim y(n),w(n),a(n),c(n),d(n),e(n),f(n)

input "Задайте погрешность вычислений e=",e1

input "Задайте начальный шаг h=",h

input "Задайте начальное значение x0=",x

input "Задайте конечное значение x1=",x1

for j=1 to n

print "Введите начальное значение y0(";j;")=";:input ,w(j)

y(j)=w(j)

next j

110 e3=0:gosub 400:d=0

for j=1 to n

a(j)=f(j)*h:y(j)=w(j)+a(j)/3

next j

x=x+h/3:gosub 400

for j=1 to n

y(j)=w(j)+(a(j)+f(j)*h)/6

next j

gosub 400

for j=1 to n

c(j)=f(j)*h

y(j)=w(j)+a(j)/8+0.375*c(j)

next j

x=x+h/6:gosub 400

for j=1 to n

d(j)=f(j)*h:y(j)=w(j)+a(j)/2-1.5*c(j)+2*d(j)

next j

x=x+h/2:gosub 400

for j=1 to n

e(j)=f(j)*h

y(j)=w(j)+(a(j)+4*d(j)+e(j))/6

e2=abs(-2*a(j)+9*c(j)-8*d(j)+e(j))/30

if e2<=e1 then goto 250

e3=1:goto 260

250 if e2<(e1/20) then d=d+1

260 next j

if e3=0 then goto 290

x=x-h

for j=1 to n

y(j)=w(j)

next j

h=h/2: goto 110

290 if d=n then h=h+h

print "x=";x;

for j=1 to n

print "y(";j;")=";y(j);

w(j)=y(j)

next j

if x<x1 then goto 110

print «Работа завершена»

end

400 'задание уравнений

f(1)=y(1)+y(2)-x^2+x-2

f(2)=-2*y(1)+4*y(2)+2*x^2-4*x-7

return

Решение системы диф. уравнений методом Кутта-Фельдберга

cls

defdbl a-z

print "Решение системы диф. Уравнений методом Кутта-Фельдберга"

input "Введите число уравнений N=",n

dim y(n),L(n),w(n),a(n),b(n),c(n),d(n),e(n),f(n)

input "Задайте точность е=»,е1

input "Задайте начальный шаг h=»,h

input "Задайте начальное x0=",x

input "Задайте конечное x1=",x1

for j=1 to n

print "Задайте начальный y0(";j;")=";:input ,w(j)

y(j)=w(j)

next j

110 e3=0:gosub 400:d=0

for j=1 to n

a(j)=f(j)*h:y(j)=w(j)+2*a(j)/9

next j

x=x+2*h/9:gosub 400

for j=1 to n

b(j)=h*f(j):y(j)=w(j)+a(j)/12+b(j)/4

next j

x=x+h/9:gosub 400

for j=1 to n

c(j)=h*f(j):y(j)=w(j)+(34.5*a(j)-121.5*b(j)+135*c(j))/64

next j

x=x+h/2.4:gosub 400

for j=1 to n

d(j)=h*f(j):q=w(j)-17*a(j)/12+6.75*b(j)

y(j)=q-5.4*c(j)+16*d(j)/15

next j

x=x+h/4:gosub 400

for j=1 to n

e(j)=h*f(j):q=w(j)+65*a(j)/432-0.3125*b(j)

y(j)=q+.8125*c(j)+4*d(j)/27+5*e(j)/144

next j

x=x-h/6:gosub 400

for j=1 to n

L(j)=h*f(j):y(j)=w(j)+a(j)/9+.45*c(j)+16*d(j)/45+e(j)/12

q=a(j)/150-.03*c(j)+16*d(j)/75+e(j)/20

e2=abs(q-0.24*L(j)):if e2<e1 then goto 250

e3=1:goto 260

250 if e2<(e1/20) then d=d+1

260 next j

x=x+h/6:gosub 400:if e3=0 then goto 290

x=x-h:

for j=1 to n

y(j)=w(j)

next j

h=h/2:goto 110

290 if d=n then h=h+h

print "x=";x;

for j=1 to n

print "y(";j;")=";y(j)

w(j)=y(j)

next j

if x<x1 then goto 110

print « работа завершена»

end

400 ‘ Задание системы уравнений

f(1)=y(1)+y(2)-x^2+x-2

f(2)=-2*y(1)+4*y(2)+2*x^2-4*x-7

return

4.Задания к выполнению

4.1 . Решить систему дифференциальных уравнений при следующих параметрах шаг 0,1; начальные приближения x=0,2; у1=0,099500833, y2=0.49235

Ответ:

х у1 у2

0,3 0,148367183 0,4830282264

0,4 0,1961203205 0,47011529365

0,5 0,2424068609 0,4537779586

1,0 0,440372468 0,3249711437

4.2. Решить дифференциальное уравнение первого порядка y’=-y при следующих параметрах: шаг=0,1, начальные приближения х0=0, у0=1.

Ответ:

х 0,1 0,2 0,3 0,4 0,5

у 0,904837 0,818731 0,740818 0,67032 0,606531

4.3. Решить дифференциальное уравнение второго порядка у"=-у+(1-у2)*20у' при следующих параметрах: шаг=0,003125, у0=2,077, у'0==0 Ответ:

х у у*

0,003125 2,007690786 -0,00571555801

0,00625 2,007665302 -0,01044479113

0,009375 2,007626354 -0,01435793978

0,0125 2,00757266 -0,01759589125

0,015625 2,007516959 -0,02027523125

4.4. Решить систему дифференциальных уравнений

при следующих параметрах: k=0,1, точность 0,0000001, х0=0, у10=0,у20=2

Ответ:

х у1 у2

0.025 0.000625 2.025

0.05 0.0025 2.05

0.075 0.005625 2.075

0,1 0.01 2.1

0.16 0.0261 2.16

0.32 0.10333 2.32

0.64 0.41271 2.74

0.96 0.93094 2.98

    1. 1.66502 3.33

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]