石子 发表于 2021-5-2 22:50:10

求助:蛙跳算法计算复数类型的方程出现了发散

本帖最后由 石子 于 2021-5-2 22:55 编辑

用蛙跳算法求解如下方程:
i 2 \frac{\partial \phi}{\partial t}= \phi
\phi=R+i I
其中,R和I分别是φ的实部和虚部,将方程分成实部和虚部分别求解,采用蛙跳算法,实部和虚部分别在不同是时间节点计算,然后进行同步。通过推导可以发现(R**2+I**2)这个量(也就是模平方)是不随时间变化的,可是单独看R或者I的方程,R和I都会随着时间步的推进而增长,具体如下:
\frac{\partial R}{\partial t}=-0.5 I
\frac{\partial I}{\partial t}=0.5 R(这里的时间步长归一化过了,Delta t最小取1,也就意味着R和I都是放大的),且是同时增长,进而会导致模平方的增长。前面提到了,模平方这个量应该是守恒的,因此就出现了发散。请问这种问题应该怎么解决呢,是不是我的求解方法有问题或者是存在其他问题?

风平老涡 发表于 2021-5-4 21:11:07

本帖最后由 风平老涡 于 2021-5-5 02:49 编辑

这是个数学问题。因为单独看R或者I的方程意为着R和I是独立的,相互间没有限制。而推导结果表明这两个变量间是有联系的。可以设定\phi =r(t)e^{i\theta t}进行推导。
页: [1]
查看完整版本: 求助:蛙跳算法计算复数类型的方程出现了发散