Я пытаюсь решить следующую систему 6 ODE, которая представляет поведение пространственных свойств турбулентного потока внутри плоского канала. Это проблема начальных ценностей. Домен разделен на две части (для которых есть небольшие расхождения в значениях некоторых констант), поэтому я создал два метода решения, по одному на каждую.
function dz = solve6ode1(t,z)
sigma_k = 0.7194;
sigma_eps = 0.7194;
C_mu = 0.0845;
C_eps_1 = 1.42;
C_eps_2 = 1.68;
#z(6) = 2.5/t;
dz(1) = z(3);
dz(2) = z(4);
dz(3) = -2*z(3)^2/z(1) + z(3)*z(4)/z(2) - sigma_k*z(6)^2 + sigma_k/C_mu*z(2)^2/z(1)^2;
dz(4) = -2*z(3)*z(4)/z(1) + z(4)^2/z(2) - C_eps_1*sigma_eps*z(6)^2*z(2)/z(1) + C_eps_2*sigma_eps/C_mu * (z(2)/z(1))^3;
dz(5) = z(6);
dz(6) = [-2*10^-8 - C_mu*z(6) * ( 2*z(1)*z(3)/z(2) - z(1)^2*z(4)/z(2)^2 ) ] * 1/( 1 + C_mu*z(1)^2/z(2));
end
Эти две функции (я опубликовал только одну ) вызываются двумя ode45 в основной программе.
[T1,Y1] = ode45(@solve6ode1,[150:-0.1:30],[0.7 0.006 0 0 17 0]);
[T2,Y2] = ode45(@solve6ode2,[30:-0.1:0],Y1(end,:));
Как видите, я дал 6 начальных условий, по одному для каждой переменной. Код выполняется, но проблема заключается в следующем:
>> disp(Y1)
0.70000 0.00600 0.00000 0.00000 17.00000 0.00000
0.70000 0.00600 -0.00006 -0.00000 17.00000 0.00000
0.70001 0.00600 -0.00013 -0.00000 17.00000 0.00000
0.70003 0.00600 -0.00019 -0.00000 17.00000 0.00000
0.70005 0.00600 -0.00025 -0.00000 17.00000 0.00000
0.70008 0.00600 -0.00031 -0.00000 17.00000 0.00000
0.70011 0.00600 -0.00038 -0.00001 17.00000 0.00000
0.70015 0.00600 -0.00044 -0.00001 17.00000 0.00000
0.70020 0.00600 -0.00050 -0.00001 17.00000 0.00000
0.70025 0.00600 -0.00056 -0.00001 17.00000 0.00000
0.70031 0.00600 -0.00063 -0.00001 17.00000 0.00000
0.70038 0.00601 -0.00069 -0.00001 17.00000 0.00000
0.70045 0.00601 -0.00075 -0.00001 17.00000 0.00000
0.70053 0.00601 -0.00081 -0.00001 17.00000 0.00000
0.70061 0.00601 -0.00088 -0.00001 17.00000 0.00000
0.70070 0.00601 -0.00094 -0.00001 17.00000 0.00000
0.70080 0.00601 -0.00100 -0.00001 17.00000 0.00000
0.70090 0.00601 -0.00106 -0.00002 17.00000 0.00000
0.70101 0.00601 -0.00113 -0.00002 17.00000 0.00000
0.70113 0.00602 -0.00119 -0.00002 17.00000 0.00000
0.70125 0.00602 -0.00125 -0.00002 17.00000 0.00000
0.70138 0.00602 -0.00131 -0.00002 17.00000 0.00000
0.70151 0.00602 -0.00138 -0.00002 17.00000 0.00000
0.70165 0.00602 -0.00144 -0.00002 17.00000 0.00000
0.70180 0.00603 -0.00150 -0.00002 17.00000 0.00000
0.70196 0.00603 -0.00156 -0.00002 17.00000 0.00000
0.70211 0.00603 -0.00163 -0.00002 17.00000 0.00000
0.70228 0.00603 -0.00169 -0.00002 17.00000 0.00000
0.70245 0.00604 -0.00175 -0.00003 17.00000 0.00000
0.70263 0.00604 -0.00182 -0.00003 17.00000 0.00000
0.70282 0.00604 -0.00188 -0.00003 17.00000 0.00000
0.70301 0.00604 -0.00194 -0.00003 17.00000 0.00000
0.70320 0.00605 -0.00200 -0.00003 17.00000 0.00000
0.70341 0.00605 -0.00207 -0.00003 17.00000 0.00000
0.70362 0.00605 -0.00213 -0.00003 17.00000 0.00000
0.70383 0.00606 -0.00219 -0.00003 17.00000 0.00000
0.70406 0.00606 -0.00225 -0.00003 17.00000 0.00000
0.70428 0.00606 -0.00232 -0.00003 17.00000 0.00000
0.70452 0.00607 -0.00238 -0.00003 17.00000 0.00000
0.70476 0.00607 -0.00244 -0.00004 17.00000 0.00000
0.70501 0.00607 -0.00251 -0.00004 17.00000 0.00000
0.70526 0.00608 -0.00257 -0.00004 17.00000 0.00000
0.70552 0.00608 -0.00263 -0.00004 17.00000 0.00000
0.70579 0.00608 -0.00269 -0.00004 17.00000 0.00000
0.70606 0.00609 -0.00276 -0.00004 17.00000 0.00000
0.70634 0.00609 -0.00282 -0.00004 17.00000 0.00000
0.70663 0.00610 -0.00288 -0.00004 17.00000 0.00000
0.70692 0.00610 -0.00295 -0.00004 17.00000 0.00000
0.70721 0.00610 -0.00301 -0.00004 17.00000 0.00000
0.70752 0.00611 -0.00307 -0.00004 17.00000 0.00000
0.70783 0.00611 -0.00314 -0.00005 17.00000 0.00000
0.70815 0.00612 -0.00320 -0.00005 17.00000 0.00000
0.70847 0.00612 -0.00326 -0.00005 17.00000 0.00000
0.70880 0.00613 -0.00332 -0.00005 17.00000 0.00000
0.70913 0.00613 -0.00339 -0.00005 17.00000 0.00000
0.70948 0.00614 -0.00345 -0.00005 17.00000 0.00000
0.70982 0.00614 -0.00351 -0.00005 17.00000 0.00000
0.71018 0.00615 -0.00358 -0.00005 17.00000 0.00000
0.71054 0.00615 -0.00364 -0.00005 17.00000 0.00000
0.71091 0.00616 -0.00370 -0.00005 17.00000 0.00000
0.71128 0.00616 -0.00377 -0.00005 17.00000 0.00000
0.71166 0.00617 -0.00383 -0.00006 17.00000 0.00000
0.71205 0.00617 -0.00389 -0.00006 17.00000 0.00000
0.71244 0.00618 -0.00396 -0.00006 17.00000 0.00000
0.71244 0.00618 -0.00396 -0.00006 17.00000 0.00000
0.71284 0.00619 -0.00402 -0.00006 17.00000 0.00000
0.71324 0.00619 -0.00408 -0.00006 17.00000 0.00000
0.71365 0.00620 -0.00415 -0.00006 17.00000 0.00000
0.71407 0.00620 -0.00421 -0.00006 17.00000 0.00000
0.71450 0.00621 -0.00427 -0.00006 17.00000 0.00000
0.71493 0.00622 -0.00434 -0.00006 17.00000 0.00000
0.71536 0.00622 -0.00440 -0.00006 17.00000 0.00000
0.71581 0.00623 -0.00446 -0.00006 17.00000 0.00000
0.71626 0.00623 -0.00453 -0.00007 17.00000 0.00000
0.71671 0.00624 -0.00459 -0.00007 17.00000 0.00000
0.71718 0.00625 -0.00465 -0.00007 17.00000 0.00000
0.71764 0.00625 -0.00472 -0.00007 17.00000 0.00000
0.71812 0.00626 -0.00478 -0.00007 17.00000 0.00000
0.71860 0.00627 -0.00485 -0.00007 17.00000 0.00000
0.71909 0.00628 -0.00491 -0.00007 17.00000 0.00000
0.71958 0.00628 -0.00497 -0.00007 17.00000 0.00000
0.72008 0.00629 -0.00504 -0.00007 17.00000 0.00000
0.72059 0.00630 -0.00510 -0.00007 17.00000 0.00000
0.72110 0.00630 -0.00516 -0.00007 17.00000 0.00000
0.72162 0.00631 -0.00523 -0.00008 17.00000 0.00000
0.72215 0.00632 -0.00529 -0.00008 17.00000 0.00000
0.72268 0.00633 -0.00536 -0.00008 17.00000 0.00000
0.72322 0.00634 -0.00542 -0.00008 17.00000 0.00000
0.72377 0.00634 -0.00548 -0.00008 17.00000 0.00000
0.72432 0.00635 -0.00555 -0.00008 17.00000 0.00000
0.72487 0.00636 -0.00561 -0.00008 17.00000 0.00000
0.72544 0.00637 -0.00568 -0.00008 17.00000 0.00000
0.72601 0.00638 -0.00574 -0.00008 17.00000 0.00000
0.72659 0.00638 -0.00580 -0.00008 17.00000 0.00000
0.72717 0.00639 -0.00587 -0.00009 17.00000 0.00000
0.72776 0.00640 -0.00593 -0.00009 17.00000 0.00000
Последние две переменные остаются неизменными, со значением, взятым из их начальных условий, чего не следует ожидать. Я запустил аналогичный код, но только с 4 ODE, и в этом случае он работал отлично. Какую ошибку я мог совершить?
Заранее спасибо
(Это мой первый вопрос, а английский sh не мой родной язык, поэтому будьте добры, ха-ха)