【问题标题】:how to solve first order of system of PDEs in MatlabMatlab中如何求解偏微分方程的一阶系统
【发布时间】:2014-01-25 13:55:25
【问题描述】:

我有一组 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. 我有什么方法可以明确计算 AQ。我的意思是在 每个时间步,我从上一个时间步的数据中计算出 AQ 并在等式中添加新值以加快程序运行速度?

【问题讨论】:

    标签: matlab pde


    【解决方案1】:

    PDE 需要有限差分、有限元、边界元等。您还可以使用 Laplace、Fourier 等变换将它们转换为 ODE。使用 ODE 函数解决这些问题,然后再转换回来。两者都不是微不足道的。

    您的方程是非线性瞬态扩散方程。这是一个抛物线偏微分方程。

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

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

    您几乎完成了:接下来要集成 w.r.t.时间使用您选择的方法。

    这不是微不足道的。

    Google 发现了这个:也许它会帮助你。

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

    【讨论】:

    • 我的问题是Matlab中的什么函数可以解决一组一阶偏微分方程。我在Matlab的帮助中没有。
    • 偏微分方程需要有限差分、有限元、边界元等。您也可以使用拉普拉斯、傅立叶等变换将它们转换为 ODE。使用 ODE 函数求解这些,然后再变换回来。两者都不是微不足道的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-01-29
    相关资源
    最近更新 更多