1、20(,),()dyf x yxa bdxy ay数值解法就是要计算出解函数数值解法就是要计算出解函数 y(x)在一系在一系列节点列节点 a=x0 x1 xn=b 处的近似值处的近似值 y0 y1 yn节点间距节点间距 称为步长,称为步长,通常采用通常采用等距节点等距节点,即取,即取 hi=h(常数常数)。)1,.,0(1 nixxhiii一阶常微分方程初值问题一阶常微分方程初值问题 分别将数值微分的向前差商公式、向后差商公式、中心差商公式代替方程左边的导数,就得到显式欧拉公式、隐式欧拉公式、两步欧拉公式:(yn是y(xn)的近似值)100(,),0,1,().nnnnyyh f xynyy
2、x11100(,),0,1,().nnnnyyh f xynyy x112 (,).nnnnyyh f xy1(,)nnnnyhf xyy 111(,)(,)2nnnnnnhyyf xyf xy 欧拉预估、校正公式:11(,),(,),()/2.pnnncnnpnpcyyh f xyyyh f xyyyy或写成:定义定义1 在假设在假设 yj=y(xj),即第即第 j 步计算是精确的前提步计算是精确的前提下,考虑的截断误差下,考虑的截断误差 ej+1=y(xj+1)yj+1 称为称为局部截断局部截断误差误差/*local truncation error*/。定义定义2 若某数值算法的局部截断
3、误差若某数值算法的局部截断误差e(h)满足:满足:e(h)=O(hp+1),则称该算法为则称该算法为p 阶方法,或称该算法阶方法,或称该算法有有p 阶精确度。阶精确度。显式欧拉公式、隐式欧拉显式欧拉公式、隐式欧拉公式的公式的局部截断误差为局部截断误差为O(h2),因此是,因此是1阶方法;阶方法;欧拉预估欧拉预估-校正校正公式的公式的局部局部截断误差为截断误差为O(h3),因此是,因此是2阶方法。阶方法。1()()()(,()nny xy xyfyh0(,),()dyf x yxa bdxy ay一、基本思想一、基本思想1()()(,()nny xy xh fy由微分中值定理存在由微分中值定理存
4、在 使使1,nnxx1*(,(),nnkfyxx称为上的平均斜率。1*(,)nnkkf xy取显式欧拉公式12*()/2-kkk取欧拉预估 校正公式1,*nnxxk设法在内多预报几个点的斜率值,然后将它们加权平均作为平均斜率,构造出更高精度的计算公式。112,nnxxkk(两个点的斜率值和的算术平均)二、二阶龙格二、二阶龙格-库塔公式库塔公式112121(1),(,),(,).nnnnnnyyhkkkf xykf xph yphk112,*,nnxxkkk用两个点的斜率值和的加权平均得到平均斜率即1.2p其中局部截断误差为O(h3),因此是2阶方法。三、高阶龙格三、高阶龙格-库塔公式库塔公式四阶龙格-库塔公式,局部截断误差为O(h5),因此是4阶方法。三阶龙格-库塔公式,局部截断误差为O(h4),因此是3阶方法。Matlab内置函数:ode23,ode45(Multistep Method)线性四步阿达姆斯显式公式,也称为阿达姆斯外插公式,局部截断误差为O(h5),因此是4阶方法。线性三步阿达姆斯公式,也称为阿达姆斯内插公式,也是4阶方法。Matlab中ode113用阿达姆斯内插、外插公式求一阶微分方程(组)初值问题的数值解。