Как я могу использовать матрицу NxM в качестве начального условия в 'pdepe'

Я использую решатель pdepe, чтобы решить 4 PDE одновременно. Теперь я хочу использовать решение в качестве начального граничного условия для следующего шага, например, u0(1,:)= sol(end,:,1). Это работает довольно хорошо, пока я просто использую одно значение для начального условие, например, u0(1)=sol(end,end,1), но не выполняется, как только я пробую весь вектор.

Похоже, на самом деле это довольно похоже, но в моем случае это не сработало: как я могу использовать матрицу NxM, чтобы быть моим начальным условием в `pdepe`

sol = pdepe(m,...,@(x)icfun(x,sol)...
...

%icfun
u0=icfun(x,sol)

u0(1,:)=sol(end,:,1)
u0(2,:)=sol(end,:,2)
u0(3,:)=sol(end,:,3)
u0(4,:)=sol(end,:,4)

end

Что не сработало, так это подсказка по ссылке выше в том виде, как я ее интерпретировал.

A=sol;
a=sol(end,:,1);

sol = pdepe(m,...,@(x)interp1(a,A',x,'pchip')'....

Я ожидал, что смогу использовать вектор в качестве начального граничного условия только для одного pde, что дает матрицу NxM для 4 PDE. Вместо этого возникает ошибка, утверждающая, что начальные граничные условия должны быть вектором столбца.

'Ошибка использования pdepe (строка 231) Неверный вывод ICFUN. ICFUN должен вернуть вектор столбца.'

Как можно передать целые векторы вместо отдельных значений?

0 ответов

Другие вопросы по тегам