如何在Matlab中解决PDE系统的一阶问题

时间:2014-01-25 13:55:25

标签: matlab pde

我有一套4个PDE:

du/dt + A(u) * du/dx = Q(u)

其中, u 是一个矩阵并包含:

u=[u1;u2;u3;u4]

A 是一个4 * 4矩阵。 Q 是4 * 1。 A和Q是 u = [u1; u2; u3; u4] 的函数。

但我的问题是:

  1. 如何在MATLAB中求解上述等式?
  2. 如果我通过Matlab的 PDE 函数解决了它,我可以将其转换为 从Matlab的就绪函数中没有使用的简单函数?
  3. 有没有办法明确计算 A Q 。我的意思是 每一步,我从前一时间步的数据计算 A Q 并在导致程序运行速度更快的等式中加入新的价值?

1 个答案:

答案 0 :(得分:0)

偏微分方法需要有限差分,有限元,边界元素等。您还可以使用拉普拉斯,傅立叶等变换将它们转换为ODE。使用ODE函数解决那些然后转换回来。两者都不是微不足道的。

你的方程是一个非线性瞬态扩散方程。这是一个抛物线PDE。

您发布的等式具有非线性的额外难度,因为A矩阵和Q向量都是自变量q的函数。您必须从线性化方程式开始。解决你的增量而不是你自己。

完成后,使用有限差分,有限元或边界元素对du / dx项进行离散化。您应该从加权残差积分公式开始。

你差不多完成了:接下来整合w.r.t.时间使用您选择的方法。

这不是微不足道的。

谷歌发现了这一点:也许它会对你有帮助。

http://www.mathworks.com/matlabcentral/fileexchange/3710-nonlinear-diffusion-toolbox