常微分方程的边值问题和本征值问?/p>
一、问题描?/p>
利用搜索法和弦割法,得到该常微分方程的本征值,再利用打靶法计算多个本征值?/p>
二、解决方?/p>
(一)搜索法
1.
先随便猜?/p>
k
的一个试验?/p>
,
程序中令
k=1

2.
?/p>
Numerov
算法
根据本题的条件,
kn+1=kn=kn-1=k,s=0,
得到
yn+2,yn+1,yn
间的迭代公式
?/p>
con=(k*h)^2/12
yn+2=2*(1-5*con)*yn+1/(1+con)-yn
3
自己给定
φ
的初始条件,然后利用公式得到边界?/p>
φ
(1)
4.
然后以小的步?/p>
dk
增加
k
值,这里?/p>
dk=1,
每当
φ
(1)
改变符号时,就将步长减半后倒退?/p>
来重?/p>
5.
当步长小于所要求的容许误差时终止程序,此时的
k
值即为所求?/p>
(二)弦割法
1.
随便猜测两个
k
值,这里?/p>
k0=1,k1=2
2.
自己给定
φ
的初始条件,对两?/p>
k
值分别利用上述公式进行迭代,得到边界?/p>
y1(1)
?/p>
y2(1)
?/p>
3.
比较
y1(1)
?/p>
y2(1)
的绝对值大小。若绝对值大,说明对应的
k
值距离本征值距离较远?/p>
4.
将(
k0+k1
?/p>
/2
赋给
k2,
边界值绝对值小的对应的
k
值保持不变,边界值绝对值大的对?/p>
k
值重新定?/p>
k2
的值?/p>
5.
重复进行实验,当
y1(1)
?/p>
y(2)
的差的绝对值小于容许误差时终止程序。此?/p>
k1
的值即
为所求?/p>
当搜索法和弦割法大致求出了一个本征值后?/p>
利用打靶法,
调整
k
值再度进行搜索,
得到?/p>
个本征值,绘出其中一个本征值对应的函数图像,观察其性质?/p>
三、程序实?/p>
1.
搜索?/p>
subroutine
add(t,y0,y1)
!
利用子程序表示函数值的迭代
implicit none
real
(8)::t,h,con,y0,y1,y2