Fortran Coder

查看: 5742|回复: 1
打印 上一主题 下一主题

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

[复制链接]

23

帖子

10

主题

0

精华

专家

F 币
422 元
贡献
373 点
跳转到指定楼层
楼主
发表于 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都是放大的),且是同时增长,进而会导致模平方的增长。前面提到了,模平方这个量应该是守恒的,因此就出现了发散。请问这种问题应该怎么解决呢,是不是我的求解方法有问题或者是存在其他问题?

分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩
欢迎交流
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-4 13:51

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表