开启辅助访问 切换到窄版
搜索

Fortran Coder

 找回密码
 极速注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: 薛定谔方程
[复制链接]
kerb 发表于 2017-1-5 22:39:40
[Fortran] 纯文本查看 复制代码
do j=1,n-1
        do i=2,m-1
            x(i)=i*h
            t(j+1)=(j+1)*tao
            y(i,j+1)=y(i,j)+tao*((y(i+1,j)-2*y(i,j)+y(i-1,j))/(h**2))
            write(22,*) x(i),t(j+1),y(i,j+1)
        end do
    end do

这样求解不行
试一下这样
[Fortran] 纯文本查看 复制代码
do k=1,m*n
do j=1,n-1
        do i=2,m-1
            x(i)=i*h
            t(j+1)=(j+1)*tao
            y(i,j+1)=y(i,j)+tao*((y(i+1,j)-2*y(i,j)+y(i-1,j))/(h**2))
            if(k==m*n)write(22,*) x(i),t(j+1),y(i,j+1)
        end do
    end do
enddo
回复 支持 反对

使用道具 举报

薛定谔方程  楼主 发表于 2017-1-5 23:22:03
kerb 发表于 2017-1-5 22:39
do j=1,n-1
        do i=2,m-1
            x(i)=i*h

加个k的目的是什么?感觉除了一直算下去、然后输出同样的结果,并没有什么区别呀?另外,电脑已经算10分钟了
明天起床看看库朗条件吧,谢谢啦
kerb 发表于 2017-1-6 11:48:11
你是用迭代法求解,你只迭代了一次,对于AX=B这样的方程至少要迭代A的阶数次才能得到近似解,你的那两层循环只是把边值在整个区域“匀和”了一次,你需要“匀和”N次结果才能比较接近解
或说回来,如果你先形成细数矩阵A,然后用直接法求解,X=A^{-1}B就不会有问题
薛定谔方程  楼主 发表于 2017-1-6 16:26:57 来自移动端
并不是太理解您的意思,但我还是让电脑算了一下,结果和以前一样(昨天可能运行其他内容,所以速度较慢吧,今天挺快的)。库朗条件貌似没有应用到复数范围内的吧?fdtd倒是有篇论文,或许可以借鉴一下,正在研究
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则 长代码粘贴

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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