Как решить пару нелинейных параболических уравнений в частных производных в трех измерениях в MATLAB

У меня есть проблема в решении нелинейного параболического pde следующего вида. (рассмотрите u_x как дифференцирование u по x)

U(1)_t = a1(U(1),x)*U(2)_t + b1(U(1),x,U(3)) = ( D1(x,U(1))*U(1)_x )_x + c1( U(1), U(3))*U(1)_x ---(1)

и его связанное уравнение

U(3)_t = a2(U(1),U(3))*U(2)_t + b2(U(1),x,U(3)) = ( D3*U(3)_x )_x ---(2)

как видите, U(1), U(2), U(3) существуют только с двумя PDE. Это потому, что U(2) не является функцией x и имеет собственное pde как

U(2)_t = (1/r)( D2(U(2))*U(2)_r )_r ---(3)

Теперь (3) разрешима самостоятельно. Я решил это с помощью pdepe в MATLAB. Теперь мне нужно поместить значение U(2)_t в (1) и (2), а затем решить их, что я не мог сделать в pdepe.

Итак, это мой вопрос. Есть ли способ, чтобы после решения (3) значение U(2)_t можно было импортировать в (1) и (2) и решить их одновременно. В качестве альтернативы, есть ли способ, которым я могу включить (3) непосредственно в дифференциальную форму в (1) и (2) и решить полученную связанную систему в MATLAB. Заранее спасибо.


person user1768201    schedule 23.10.2012    source источник


Ответы (1)


Вам придется линеаризовать и выполнить итеративное решение. Метод Ньютона-Рафсона обычно является предпочтительным, хотя некоторым людям нравится метод BFGS.

Я не знаю, как вы формулируете свои УЧП. Конечная разность, конечный элемент, граничный элемент или что-то еще? Просто публикация PDE не говорит мне достаточно.

person duffymo    schedule 23.10.2012