Решения NDS для трех дифференциальных уравнений в математике - PullRequest
0 голосов
/ 02 февраля 2019

Я все еще очень плохо знаком с работой с Mathematica, и я много перебираю это, и я не очень понимаю, что я (очень четко) делаю неправильно.

Я в основном пыталсявоссоздать результат, получив три функции, которые я называю C1, C2 и f:

Я использую ограничения для производных C1 и C2 и начальное значение для f.Еще одна вещь, о которой мне нужно было позаботиться, это убедиться, что когда f * C22 = 1, что создает деление на ноль, я бы сделал все уравнение для C1 'равным нулю.(Технически теория заключается в том, что вы определяете Lambda / p как нечто, симметричное остальной части второго члена этого уравнения для определенного значения x, где возникает эта особенность).

Я оченьизвините за это, но заранее спасибо.

c = 2; \[Lambda] = 1; k = 1; Dp = 0.5; pm = 1;

NDSolve[{C1'[x] == pm*((1 - f[x]*C2[x]^2)^(-1/2) )* (C2[x]*((C2[x] - c)^2 - C1[x]^2) + 2*(\[Lambda]/k)*C2[x] + (Dp/k) - 2*(1 - f[x]*C2[x]^2)*(C1[x] - C2[x])/f[x]), 
C2'[x] == pm*2*((1 - f[x]*C2[x]^2)^(1/2))*(C1[x] - C2[x])/f[x], 
f'[x] == pm*4*(1 - f[x]*C2[x]^2)^(1/2),
C2'[0.] == (1/3)*C1'[0.], C2'[1] == (1/3)*C1'[1], f[0.] == 0.1, 
WhenEvent[C2[x]^2 == 1/f[x], {C1'[x] == 0.}]},
{C1[x], C2[x], f[x]}, {x, 0., 1}, Method -> {"ExplicitRungeKutta", "DifferenceOrder" -> 4}]
...