- 积分
- 38420
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2011-6-20
- 最后登录
- 1970-1-1
成长值: 0
|
发表于 2012-10-16 09:34:28
|
显示全部楼层
本帖最后由 言深深 于 2012-10-16 09:44 编辑
请问楼主的公式是哪里来的?课本上的还是自己推导的,目测这个迭代式有点儿问题的。
一般而言这样的迭代式,j表示空间,n表示时间,按题中的迭代式,容易出现如下图所示的情况:
其中红色层表示u(n,j)所在层,蓝色表示u(n,j)所在层,很明显的得出,前一层一个格点的信息量分散为三个,这是不妥当的,迭代最终也应该是发散的。
一种可能的解决方案如下图所示,需要给出程序的【初始场】和【边界条件】:
这样程序可以有下面的思路展开进行:
初值需要一个启动方程,设为f(x):
do j=1,m
u(1,j)=f(j)
enddo
边界条件由g(x)限定:
do i=1,n
u(i,0)=g(i)
enddo
这里只是开始,下面的就比较困难了,中间格点如何给定的问题,解决方案如下
对于j=2的时候,由如下方程给定:
do i=2,n
u(i,1)=((1+2niu)*u(i,0)-u(i-1,0))/(niu-lmd/2)
enddo
对于j>2的部分,需要由三项给出
do i=2,n
u(i,j)=((1+2*niu)*u(i,j)-(niu+lmd/2)*u(i,j-1)-u(i-1,j))/(niu-lmd/2)
enddo
自此,所有的分析完毕,可以解出来所有的空间格点,值得注意的是,边界条件中还有一个没有用到,u(i,n+1)请楼主自行思考
附以上pdf格式,方便收藏:
关于差分方程的求解.pdf
(114.9 KB, 下载次数: 18)
|
|