使用有限差分法求解非线性 BVP

计算科学 有限差分 非线性方程
2021-11-30 11:03:51

我正在尝试使用有限差分法编写代码来解决非线性 BVP。BVP 是:
(T2)2Tx2+T(Tx)2+Q=0
边界条件为狄利克雷x=0和罗宾在x=L. 参数Q是一个常数。

我的(可能是幼稚的)方法如下:

  1. 对一阶和二阶导数使用二阶精确近似。
  2. 使用离散形式生成空间点的耦合方程组。
  3. 构造一个线性系统的形式Ax=b, 在哪里x是一个向量T在每个空间点x0,,xL,A是系数的矩阵T由离散化产生,和b是包含源项的解向量Q.
  4. 求解线性系统x不知何故,我还没有走到这一步。

我真的不知道如何处理非线性。我的第一个问题出现在平方一阶导数上。如果我将有限差分近似应用于一阶导数,我得到:
Ti(Ti+1Ti12Δx)2
开发上述术语产生:
Ti(Ti+122Ti+1Ti1+Ti124Δx2)

我不知道如何处理这个术语。我需要在某个时候(在离散化之前或之后?)线性化某些东西,但我不确定如何。假设我想出了一种处理平方一阶导数的方法,我不知道如何处理Ti在它面前。

我的问题是:你如何离散化然后线性化(反之亦然)这些非线性项?

感谢您的时间。请让我知道我是否应该澄清任何事情。

1个回答

感谢评论中的帮助,我解决了这个问题。我将空间域划分为N网格点并离散化 PDE(没有任何线性化),这导致N1每个网格点的温度的非线性代数方程(如 Geoff 建议的那样)。

然后我采用了牛顿的方法(同样,正如 Geoff 所建议的那样):

  1. 实施边界条件N1方程
  2. 开发一个物理上合理的初始猜测F(x0)
  3. 计算雅可比行列式N1方程,导致N1×N1三对角矩阵
  4. 执行牛顿迭代求解ΔT

该方法很快收敛,我得到了正确的温度分布。

感谢您对这个问题的帮助。