第六章边值问题差分法简介.doc
文本预览下载声明
第六章 边值问题差分法简介
我们考虑如下简单边值问题。
其中,为已知函数,(为了解方程收敛)。
为已知常数。
我们要求函数,实质是关心两个数域之间的对应关系:
所以我们知道一系列对应的就足够了,
所以这类问题解决思路是将方程离散化,转化为解一个现行方程组。
首先,用分点
将区间n等分,h为步长,称为节点。
其次在[a,b]内每个内部节点 上用数值微分公式。
替代原方程中的二阶导数得在节点满足的关系是式:
注意:上式是关于未知数为的线性方程。
我们有n-1个这样的方程,组成方程组。
未知数,共n+1个。
再加上边值条件,n+1个未知数,n+1个方程,方程组封闭。
解此线性方程组,得到问题的数值解。
方程组为:
矩阵形式:
由于
所以,对角占优矩阵,用追赶法求解。
解决实际问题,
首先,用分点
将区间n等分;
再直接计算得到线性方程组出发,解之。
例:一维无限深势阱
边值问题为:
令,则有:
设a=1 故区间为[-1,1]
离散化 N=10,步长
即
常数
*
非零解=
**
解出近似本征值代入*,解出yi
白色
REAL AA(120,120),BB(120),Y(120)
G(x)=-10.
F(x)=0.
A=-1.
B=1.
D1=0
D2=0
N=100
H=(B-A)/N
h=0.02
ETT=-(2-h*h)
ett=-1.5
write(*,*)ett=,ett
DO I=1,N-1
DO J=1,N-1
AA(I,J)=0.
IF(ABS(J-I).EQ.1) AA(I,J)=1.
ENDDO
AA(I,I)=-1.0*(2.+h*h*G(A+I*H))
BB(I)=H*H*F(A+I*H)
ENDDO
BB(1)=BB(1)-D1
BB(N-1)=BB(N-1)-D2
Y(1)=1.0
Y(2)=-1.0*ETT*Y(1)
c y(2)=1.
DO I=3,N-1
Y(I)=-1.0*Y(I-2)-ETT*Y(I-1)
ENDDO
DO 200 I=1,N-1
200 WRITE(*,*) A+I*H,y(I)
STOP
END
显示全部