Жесткие задачи для систем ОДУ
Метод Гира
Входные параметры: n – порядок системы; y0 – массив из n чисел, содержащий решение в начальной точке; eps – интегрирования; masq – массив размерности n´n, содержащий матрицу системы.
Выходные параметры: res – массив из n чисел, содержащий решение системы.
Схема алгоритма показана на рисунке 36.
Пример. Решить задачу Коши для системы
при начальных условиях у1(0)=1, у2(0)=0.
Текст программы:
procedure gira(a,b:real;n,kolfun:integer;x:real;var y_1:TFunZnach);
var fun:array[1..NumFun,1..4] of real;
h:real;
begin
h:=(b-a)/n;
for i:=1 to 4 do
begin runge_ku(a,b,1,1,x,y_1); x:=x+h;
for k:=1 to kolfun do fun[k,i]:=y_1[k];
end;
for i:=5 to n do
begin
for k:=1 to kolfun do begin
y_1[k]:=fun[k,4]; runge_ku(a,b,1,1,x,y_1);
y_1[k]:=1/25*(48*fun[k,4]-36*fun[k,3]+16*fun[k,2]-3*fun[k,1]+12*h*f(y_1[k],x));
fun[k,1]:=fun[k,2]; fun[k,2]:=fun[k,3]; fun[k,3]:=fun[k,4]; fun[k,4]:=y_1[k];
end;
x:=x+h;
end;
end;
Вычисления по программе привели к следующим результатам:
Х
| У(1)
| у(2)
| .10000Е+00
| .48703Е+00
| .34270Е+00
| .20000Е+00
| .35432Е+00
| .32700Е+00
| .30000Е+00
| .28565Е+00
| .27417Е+00
| .40000Е+00
| .23483Е+00
| .22550Е+00
| .50000Е+00
| .19396Е+00
| .18492Е+00
| .60000Е+00
| .16060Е+00
| .15159Е+00
| .70000Е+00
| .13330Е+00
| .12430Е+00
| .80000Е+00
| .11095Е+00
| .10195Е+00
| .90000Е+00
| .83650Е-01
| .82750Е-01
| .10000Е+01
| .68668Е-01
| .67768Е-01
| .11000Е+01
| .56402Е-01
| .55502Е-01
| .12000Е+01
| .46359Е-01
| .45459Е-01
| .13000Е+01
| .38137Е-01
| .37237Е-01
| .14000Е+01
| .31405Е-01
| .30505Е-01
| .15000Е+01
| .25894Е-01
| .24994Е-01
| .16000Е+01
| .21381Е-01
| .20481Е-01
| .17000Е+01
| .17687Е-01
| .16787Е-01
| .18000Е+01
| .14662Е-01
| .13762Е-01
| .19000Е+01
| .12185Е-01
| .11285Е-01
| .20000Е+01
| .92579Е-02
| .91678Е-02
| .
Рисунок 36 - Схема алгоритма метода Гира
Варианты заданий для решения Жестких задач для систем ОДУ приведены в таблице 8.
Метод Ракитского (матричной экспоненты).
Входные параметры: n – порядок системы; x – начальное значение x;
h – шаг интегрирования h; Q – массив из n чисел, содержащий решение в начальной точке; F – массив размерности n´n, содержащий матрицу системы.
Выходные параметры: X – массив из n чисел, содержащий решение системы.
Схема алгоритма показана на рисунке 37.
Пример. Решить задачу Коши для системы
при начальных условиях у1(0)=1, у2(0)=0.
Текст программы:
Procedure MetRak(N:Word;Var H:Real;A:MasReal;Var F,Q:MasReal;Nts,Ind:Integer);
Var
RabMas1: MasReal;
RabMas2: MasReal;
S,Fak: Real;
i,j,k: Byte;
BEGIN
IF Ind=0 Then
Begin
S:=0;
For i:= 1 To N Do
For j:= 1 To N Do S:=S+A[i,j]*A[i,j];
S:=Sqrt(S); H:=0.1/S; Nts:= 0; RabMas1:= A;
For I:= 1 To N Do
Begin
For J:= 1 To N Do Begin
Q[i][j]:= A[i][j]*H/2; F[i][j]:= A[i][j]*H
End;
Q[i][i]:= Q[i][i] + 1; F[i][i]:= F[i][i] + 1
End;
Fak:= 1;
For K:= 2 To 4 Do
Begin Fak:= Fak*k; MulMat(N, RabMas1, A, RabMas2);
For I:= 1 To N Do
For J:= 1 To N Do
Begin
F[i][j]:= F[i][j] + RabMas2[i][j]*Step(H, k)/Fak;
IF k < 4 Then Q[i][j]:= Q[i][j] + RabMas2[i][j]*Step(H, k)/(Fak*(k+1));
End;
RabMas1:= RabMas2
End;
MulConst(N, h, Q)
End;
IF Nts > 0 Then
Begin
H:= H*Step(2,Nts); MulMat(N, F, F, RabMas1);
RabMas2:= F; F:= RabMas1;
For I:= 1 To N Do RabMas2[i][i]:= RabMas2[i][i] + 1;
MulMat(N, Q, RabMas2, RabMas1);
Q:= RabMas1
End;
End;
Вычисления по программе привели к следующим результатам:
х
| у(1)
| у(2)
| .10000Е+00
| .47703Е+00
| .34170Е+00
| .20000Е+00
| .34432Е+00
| .32600Е+00
| .30000Е+00
| .27565Е+00
| .27317Е+00
| .40000Е+00
| .22483Е+00
| .22450Е+00
| .50000Е+00
| .18396Е+00
| .18392Е+00
| .60000Е+00
| .15060Е+00
| .15059Е+00
| .70000Е+00
| .12330Е+00
| .12330Е+00
| .80000Е+00
| .10095Е+00
| .10095Е+00
| .90000Е+00
| .82650Е-01
| .82650Е-01
| .10000Е+01
| .67668Е-01
| .67668Е-01
| .11000Е+01
| .55402Е-01
| .55402Е-01
| .12000Е+01
| .45359Е-01
| .45359Е-01
| .13000Е+01
| .37137Е-01
| .37137Е-01
| .14000Е+01
| .30405Е-01
| .30405Е-01
| .15000Е+01
| .24894Е-01
| .24894Е-01
| .16000Е+01
| .20381Е-01
| .20381Е-01
| .17000Е+01
| .16687Е-01
| .16687Е-01
| .18000Е+01
| .13662Е-01
| .13662Е-01
| .19000Е+01
| .11185Е-01
| .11185Е-01
| .20000Е+01
| .91579Е-02
| .91578Е-02
|
Рисунок 37 - Схема алгоритма метода Ракитского
Варианты заданий
Таблица 8
№ вари-
анта
| Матрица системы
| Вектор начальных условий
|
|
|
|
| -.18000Е + 01
-.51350Е + 02
.12175Е + 02
.51650Е + 02
| .23200Е+02
-.41500Е+02
-.25000Е+00
.16800Е+02
| .97000Е + 01
-.40000Е + 02
.50000Е + 01
.30300Е + 02
| .83500Е + 01
-.31350Е + 02
.21750Е + 01
.21500Е + 02
| .8415Е+00
.5403Е+00
-.4161Е+00
.9093Е+00
|
| .22600Е + 02
-.26800Е + 02
-.46000Е + 01.22000Е + 01
| .47600Е+02
-.22000Е+02
-.17000Е+02
-.27600Е+02
| .29600Е + 02
-.20000Е + 02
-.10000Е + 02
-.96000Е + 01
| .27800Е + 02
-.16800Е + 02
-.96000Е + 01
-.1ЗОООЕ+02
| .9093Е+00
-.4161Е+00
-.6536Е+00
-.7568Е+00
|
| .37000Е + 02
-.18917Е + 02
-.13042E + 02
-.20583Е + 02
| .65333Е+02
-.15833Е+02
-.27083E+02
-.52000Е+02
| .42833Е + 02
-.1ЗЗЗЗЕ + 02
-.18333E + 02
-.29500Е + 02
| .40583Е + 02
-.12250Е + 02
-.16375E + 02
-.30833Е + 02
| .1411Е+00
-.9900Е+00
.9602E+00
-.2794Е+00
|
| .48900Е + 02
-.15200Е + 02
-.19400Е + 02
-.36700Е + 02
| .81400Е+02
-.13000Е+02
-.35500Е+02
-.71400Е+02
| .54400Е + 02
-.10000Е + 02
-.25000Е + 02
-.44400Е + 02
| .51700Е + 02
-.10200Е + 02
-.21900Е + 02
-.44500Е + 02
| -.7568Е+00
-.6536Е+00
-.1455Е+00
.9894Е+00
|
| .59800Е + 02
.13150Е + 02
-.24925Е + 02
-.50150Е + 02
| .96800Е+02
-.11500Е+02
-.43250Е+02
-.88800Е+02
| .65300Е + 02
-.80000Е + 01
-.З1000Е + 02
-.57300Е + 02
| .62150Е + 02
-.91500Е + 01
-.26925Е + 02
-.56500Е + 02
| -.9589Е+00
.2837Е+00
-.8391Е+00
-.5440Е+00
|
| .70200Е + 02
-.11933Е + 02
-.30033Е + 02
-.62267Е + 02
| .11187Е+03
-.10667Е+02
-.50667Е+02
-.10520Е+03
| .75867Е + 02
-.66667Е + 01
-.36667Е + 02
-.69200Е + 02
| .72267Е + 02
-.86000Е + 01
-.31700Е + 02
-.67667Е + 02
| .9602Е+00
.9602Е+00
.8439Е+00
-.5366Е+00
| 7
| .80314Е + 02
.11193Е + 02
-.34904Е + 02
-.73621Е + 02
| .12674Е+02
-.10214Е+02
-.57893Е+02
-.12103Е+03
| .86243Е + 02
-.57143Е + 01
.42143Е + 02
-.80529Е + 02
| .82193Е + 02
-.83357Е + 01
-.36332Е + 02
-.78357Е + 02
| .6570Е+00
.7539Е+00
.1367Е+00
.9906Е+00
| 8
| .90250Е + 02 -.10750Е + 02
-.39625Е + 02
-.84500Е + 02
| .14150Е+03
-.1000Е+02
-.65000Е+02
-.13650Е+03
| .96500Е + 02
-.50000Е + 01
-.47500Е + 02
-.91500Е + 02
| .92000Е + 02
-.82500Е + 01
-.40875Е + 02
-.88750Е + 02
| .9894Е+00
-.1455Е+00
-.9577Е+00
-.2879Е+00
|
| .10007Е + 03
-.10506Е + 02
-.44247Е + 02
-.95061Е + 02
| .15618Е+03
-.99444Е+01
-.72028Е+02
-.15173Е+03
| .10668Е + 03
-.44444Е + 01
-.52778Е+02
-.10223Е + 03
| .10173Е + 03
-.82833Е + 01
-.45358Е + 02
-.98944Е + 02
| .4121Е+00
-.9111Е+00
.6603Е+00
-.7510Е+00
| Продолжение таблицы 8
|
|
|
|
|
|
|
| .10980Е + 03
-.10400Е + 02
-.48800Е + 02
-.10540Е + 03
| .17080Е+03
-.1000Е+02
-.79000Е+02
-.16680Е+03
| .11680Е + 03
-.40000Е + 01
-.58000Е + 02
-.11280Е + 03
| .11140Е + 03
-.84000Е + 01
-.49800Е + 02
-.10900Е + 03
| -.5440Е+00
-.8391Е+00
.4081Е+00
.9129Е+00
|
| .11947Е + 03
-.10395Е + 02
-.53302Е + 02
-.11558Е + 03
| .18538Е+03
-.10136Е+02
-.85932Е+02
-.18175Е+03
| .12688Е + 03
-.36364Е + 01
-.63182Е + 02
-.12325Е + 03
| .12103Е + 03
-.85773Е + 01
-.54211Е + 02
-.11895Е + 03
| -.1000Е+01
.4426Е-02
-.1000Е+01
-.8851Е-02
|
| .12910Е + 03
-.10467Е + 02
-.57767Е + 02
-.12563Е + 03
| .19993Е+03
-.10333Е+02
-.92833Е+02
-.19660Е+03
| .13693Е + 03
-.33333Е + 01
-.68333Е + 02
-.13360Е + 03
| .13063Е + 03
-.88000Е + 01
-.58600Е + 02
-.12883Е + 03
| -.5366Е+00
.8439Е+00
.4242Е+00
-.9056Е+00
|
| .13869Е + 03
-.10596Е + 02
-.62202Е + 02
-.13560Е + 03
| .21446Е+03
-.10577Е+02
-.99712Е+02
-.21138Е+03
| .14696Е + 03
-.30769Е + 01
-.73462Е + 02
-.14388Е + 03
| .14021Е + 03
-.90577Е + 01
-.62971 Е + 02
-.13865Е + 03
| .4202Е+00
.9074Е+00
.6469Е+00
.7626Е+00
|
| .14826Е + 03
.10983Е + 02
| .22897Е+03
-.10857Е+02
| .15697Е + 03
-.28571Е + 01
| .14977Е+03
-.93429Е + 01
| .9906Е+00
.1367Е+00
|
| -.66614Е + 02
-.14549Е + 03
| -.10657Е+03
-.22611Е+03
| -.78571Е + 02 -.15411Е + 03
| -.67329Е + 02
-.14843Е + 03
| -.9626Е+00
.2709E+00
|
| .15780Е + 03
-.10983Е + 02
| .24347Е+03
-.11167Е+02
| .16697Е + 03
-.26667Е + 01
| .15932Е + 03
-.96500Е + 01
| .6503Е+00
-.7597Е+00
|
| -.71008Е + 02
-.15532Е + 03
| -.11342Е+03
-.24080Е+03
| -.83667Е + 02
-.16430Е + 03
| -.71675Е + 02
-.15817Е + 03
| .1543Е+00
-.9880Е+00
|
| .16732Е + 03
-.11225Е + 02
| .25795Е+03
-.11500Е+02
| .17695Е + 03
-.25000Е + 01
| .16885Е + 03
-.99750Е + 01
| -.2879Е+00
-.9577Е+00
|
| -.75387Е + 02
-.16510Е + 03
| -.12025Е+03
-.25545Е+03
| -.8875Е + 02
-.17445Е + 03
| -.76013Е + 02
-.16788Е + 03
| .8342Е+00
.5514Е+00
|
| .17684Е + 03
-.11491Е + 02
-.79754Е + 02
-.17484Е + 03
| .27242Е+03
-.11853Е+02
-.12707Е+03
-.27007Е+03
| .18692Е + 03
-.23529Е + 01
-.93824Е + 02
-.18457Е + 03
| .17837Е + 03
-.10315Е + 02
-.80343Е + 02
-.17756Е + 03
| -.9614Е+00
-.2752Е+00
-.8486Е+00
.5291Е+00
|
| .18633Е + 03
-.11778Е + 02
-.84111Е + 02
-.18456Е + 03
| .28689Е+03
-.12222Е+02
-.13389Е+03
-.28467Е+03
| .19689Е + 03
-.22222Е + 01
-.98889Е + 02
-.19467Е + 03
| .18789Е + 03
-.10667Е + 02
- 84667Е + 02
-.18722Е + 03
| -.7510Е+00
.6603Е+00
-.1280Е+00
-.9918Е+00
|
| .19582Е + 03
-.12082Е + 02
| .30135Е+03
-.12605Е+02
| .20685Е + 03
-.21053Е + 02
| .19740Е + 03
-.11029Е + 02
| .1499Е+00
.9887Е+00
|
| -.88459Е + 02 -.19424Е + 03
| -.14070Е+03
-.29924Е+03
| -.10395Е + 03
-.20474Е + 03
| -.88986Е + 02
-.19687Е + 03
| .9551Е+00
.2964Е+00
|
| .20530Е + 03
-.12400Е + 02
| .31580Е+03
-.13000Е+02
| .21680Е + 03
-.20000Е + 01
| .20690E + 03
-.11400Е + 02
| .9129Е+00
.4081Е+00
| Продолжение таблицы 8
|
|
|
|
|
|
|
| -.92800Е + 02
-.20390Е + 03
| -.14750Е+03
-.31380Е+03
| -.10900Е + 03
-.21480Е + 03
| -.93300Е + 02
-.20650Е + 03
| -.6669Е+00
.7451Е+00
|
| .21477Е + 03
-.12731Е + 02
-.97135Е + 02
-.21354Е + 03
| .33025Е+03
-.13405Е+02
-.15430Е+03
-.32834Е+03
| .22675Е + 03
-.19048Е + 01
-.11405Е + 03
-.22484Е + 03
| .21640Е + 03
-.11779Е + 02
-.97611Е + 02
-.21612Е + 03
| .8367Е+00
-.5477Е+00
-.4000Е+00
-.9165Е+00
|
| .22424Е + 03
-.13073Е + 02
-.10146Е + 03
-.22316Е + 03
| .34469Е+03
-.13818Е+02
-.16109Е+03
-.34287Е+03
| .23669Е + 03
-.18182Е + 01
-.11909Е + 03
-.23487Е + 03
| .22589Е + 03
-.12164Е + 02
-.10192Е + 03
-.22573Е + 03
| -.8851Е-02
-.1000Е+01
.9998Е+00
.1770Е-01
|
| .23370Е + 03
-.13424Е + 02
| .35913Е+03
-.14239Е+02
| .24663Е+03
-.17391Е + 01
| .23538Е+03
-.12554Е + 02
| -.8462Е+00
-.5328Е+00
|
| -.10579Е + 03
-.23277Е + 03
| -.16788Е+03
-.35739Е+03
| -.12413Е + 03
-.24489Е + 03
| -.10622Е + 03
-.23533Е + 03
| -.4322Е+00
.9018Е+00
|
| .24315Е + 03
-.13783Е + 02
-.11011Е + 03
-.24237Е + 03
| .37357Е+03
-.14667Е+02
-.17467Е+03
-.37190Е+03
| .25657Е + 03
-.16667Е + 01
-.12917Е + 03
-.25490Е + 03
| .24487Е + 03
-.12950Е + 02
-.11053Е + 03
-.24492Е + 03
| -.9056Е+00
.4242Е+00
-.6401Е+00
-.7683Е+00
|
| .25260Е + 03
-.14150Е + 02
-.11443Е + 03
-.25195Е + 03
| .38800Е+03
-.15100Е+02
-.18145Е+03
-.38640Е+03
| .26650Е + 03
-.16000Е + 01
-.13420Е + 03
-.26490Е + 03
| .25435Е + 03
-.13350Е + 02
-.11482Е + 03
-.25450Е + 03
| -.1324Е+00
.9912Е+00
.9650Е+00
-.2624Е+00
|
| .26205Е + 03
-.14523Е + 02
-.11874Е + 03
-.26152Е + 03
| .40243Е-03
-.15538Е+02
-.18823Е+03
-.40089Е+03
| .27643Е + 03
-.15385Е + 01
-.13923Е + 03
-.27489Е + 03
| .26383Е + 03
-.13754Е + 02
-.11912Е + 03
-.26408Е + 03
| .7626Е+00
.6469Е+00
-.1630Е+00
.9866Е+00
|
| .27149Е + 03
-.14523Е + 02
| .41686Е+03
-.15981Е+02
| .28636Е + 03
-.14815Е + 01
| .27331Е + 03
-.14161Е + 02
| .9564Е+00
-.2921Е+00
|
| -.12305Е + 03
-.27109Е + 03
| -.19501Е+03
-.41538Е+03
| -.14426Е + 03
-.28488Е + 03
| -Л2342Е+03 -.27365Е+03
| -.8293Е+00
-.5588Е+00
|
| .28093Е + 03
-.15286Е + 02
| .43129Е+03
-.16429Е+02
| .29629Е + 03
-.14286Е + 01
| .28279Е + 03
-.14571Е + 02
| .2709Е+00
-.9626Е+00
|
| -.12736Е + 03
-.28064Е + 03
| -.20179Е+03
-.42986Е+03
| -.14929Е + 03
-.29486Е + 03
| -.12771Е + 03
-.28321Е + 03
| .8532Е+00
-.5216Е+00
|
| .29037Е + 03
-.15674Е + 02
-13166Е + 03
-.29019Е + 03
| .44571Е+03
-.16879Е+02
-.20856Е+03
-.44433Е+03
| .30621Е + 03
-.13793Е + 01
-.15431Е + 03
-.30483Е + 03
| .29226Е + 03
-.14984Е + 02
-.13201Е + 03
-.29278Е + 03
| -.6636Е+00
-.7481Е+00
.1192Е+00.9929Е+00
|
| .29980Е + 03
-.16067Е + 02
-.13597Е + 03
-.29973Е + 03
| .46013Е+03
-.17333Е+02
-.21533Е+03
-.45880Е+03
| .31613Е + 03
-.13333Е - 0l
-.15933Е + 03
-.31480Е + 03
| .30173Е + 03
-.15400Е + 02
-.13630Е + 03
-.30233Е + 03
| -.9880Е+00
.1543Е+00
-.9524Е+00
-.3048Е+00
| | | | | | | | | | | Список использованной литературы
1. Амосов А.А., Дубинский Ю.А., Конченова Н.В. Вычислительные методы для инженеров – М.: Высшая школа, 1994 – 544 с.
2. Бахвалов Н.С. Численные методы – М.: Наука, 1973 – 631 с.
3. Волков Е.А. Численные методы – М.: Наука, 1987 – 256 с.
4. Воробьева Г.Н., Данилова А.Н. Практика по численным методам – М.: Высшая школа, 1979 – 184 с.
5. Демидович Б.П., Марон И.А., Шувалова Э.З. - Численные методы анализа – М.: Наука, 1967 – 368 с.
6. Калиткин Н.Н. Численные методы – М.: Наука, 1978 – 512 с.
7. Конченова Н.В., Марон И.А. Вычислительная математика в примерах и задачах - М.: Наука, 1972 – 246 с.
8. Марчук Г.И. Методы вычислительной математики – М.: Наука, 1989 – 372 с.
9. Плис А.И., Сливина Н.А. Лабораторный практикум по высшей математике – М.: Высшая школа, 1994 – 416 с.
10. Самарский А.А. Введение в численные методы - М.: Наука, 1982 – 287 с.
11. Самарский А.А., Гулин А.В. Численные методы - М.: Наука, 1989 – 429 с.
12. Хемминг Р.В. Численные методы для научных работников и инженеров - М.: Наука, 1972 – 400 с.
|