Системная интеграция 6 ODE на Octave - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь решить следующую систему 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 не мой родной язык, поэтому будьте добры, ха-ха)

...