<aside> <img src="/icons/condense_yellow.svg" alt="/icons/condense_yellow.svg" width="40px" /> Python | 物理 | 有限差分 | 常微分方程 | 偏微分方程 | 求解器 | 三维 | 二维 | 动画 | 可视化 | 数值 | 符号 | 泰勒序列 | 显性/隐性方法 | 欧拉法 | 离散 | 傅里叶 | 龙格-库塔 | 收敛 | 交错网格 | 线性 | 二次函数 | 阻尼 | 自由体图 | 模拟 | 弹性 | 波形 | 反射 | 网格 | 频率 | 数值色散关系 | 矢量化 | 高斯函数 | 扩散 | 平流 | 非线性 | 数学
</aside>
pie title 语言分比
"Python":90
"C++":30
pie title 内容分比
"物理、数学":90
"振动常微分方程":60
"波形运动偏微分方程":50
"扩散偏微分方程":50
"平流方程":30
"算法":40
热方程基本上是一个偏微分方程,即:
$$ \frac{\partial u}{\partial t}-\alpha \nabla u=0 $$
如果我们想用二维(笛卡尔)求解,我们可以这样写上面的热方程
$$ \frac{\partial u}{\partial t}-\alpha\left(\frac{\partial^2 u}{\partial x}+\frac{\partial^2 u}{\partial y}\right)=0 $$
其中u是我们想要知道的数量,t是时间变量,x和y是空间变量,$\alpha$是扩散常数。所以基本上我们希望在 x 和 y 中的任何地方以及随着时间的 t 找到解决方案 u。现在让我们简单地了解一下有限差分法。有限差分法是一种通过有限差分逼近导数来求解微分方程的数值方法。请记住导数的定义是:
$$ f^{\prime}(a)=\lim _{h \rightarrow 0} \frac{f(a+h)-f(a)}{h} $$
在有限差分法中,我们对其进行近似并去除限制。 因此,我们不使用微分和极限符号,而是使用 delta 符号,即有限差分。 请注意,这过于简单化了,因为我们必须使用泰勒级数展开,并通过假设某些项足够小来推导出它,但我们得到了该方法背后的粗略想法。
$$ f^{\prime}(a) \approx \frac{f(a+h)-f(a)}{h} $$
在有限差分方法中,我们将“离散化”空间域和时间间隔 x、y 和 t。我们可以这样写
$$ \begin{aligned} &x_i=i \Delta x\\ &y_j=j \Delta y\\ &t_k=k \Delta t \end{aligned} $$
正如我们所看到的,i、j 和 k 分别是 x、y 和 t 的每个差异的步骤。我们想要的是解u,即
$$ u(x, y, t)=u_{i, j}^k $$
请注意,k 是上标,表示 u 的时间步长。我们可以使用有限差分法写出上面的热方程,如下所示