问题描述
对于一阶的方程:
{
y′=f(x,y)(a⩽x⩽b)y(a)=η
所谓的数值解法,就是寻求解 y(x) 在一系列离散的点上 a=x0<x1<x2<...<xn=b 上的近似值 y0,y1,y2,...,yn 。
相邻两个节点之间的间距 hi=xi+1−xi 是步长,一般是常数,这时节点为 xi=x0+ih(i=0,1,2,...,n) 。
欧拉方法
普通的欧拉方法使用欧拉公式计算:
yi+1=yi+hf(xi,yi) ,此时 y0=y(x0)=y(a)=η
还有一种是改进欧拉公式:它是把欧拉公式与梯形公式联合使用。
⎧⎩⎨⎪⎪⎪⎪⎪⎪yp=yi+hf(xi,yi)yc=yi+hf(xi+1,yp)yi+1=12(yp+yc)
龙格-库塔方法
这个公式根据精度,有二阶及更高阶的,实际生活中常用四阶龙格-库塔公式。
⎧⎩⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪y