一、基本概念
1. 数值解的概念
数值解(numerical solution)是指在特定条件下通过近似计算得出来的一个数值,是采用某种计算方法,如有限元的方法、 数值逼近、插值的方法 得到的解。
例如,求微分方程的初值问题
的解,可以从初值条件出发,按照一定的步长h,依据某种方法逐步计算微分方程解y(x)的近似解,这里 。这样求出的解称为数值解。
2. 解析解的概念
解析解(analytical solution),就是给出解的具体函数形式,从解的表达式中就可以算出任何对应值。即包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。给出解的具体函数形式,从解的表达式中就可以算出任何对应值。用来求得解析解的方法称为解析法,解析法是常见的微积分技巧,如分离变量法等。
二、数值解法优势及常用方法
1. 欧拉法
2. 龙格-库塔法
龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。
该算法是构建在泰勒级数的基础之上的。对于一阶精度的拉格朗日中值定理有:
对于微分方程:y'=f(x,y)
y(i+1)=y(i)+h*K1
K1=f(xi,yi)
当用点xi处的斜率近似值K1与右端点xi+1处的斜率K2的算术平均值作为平均斜率K*的近似值,那么就会得到二阶精度的改进拉格朗日中值定理:
y(i+1)=y(i)+[h*( K1+ K2)/2]
K1=f(xi,yi)
K2=f(x(i)+h,y(i)+h*K1)
依次类推,如果在区间[xi,xi+1]内多预估几个点上的斜率值K1、K2、……Km,并用他们的加权平均数作为平均斜率K*的近似值,显然能构造出具有很高精度的高阶计算公式。经数学推导、求解,可以得出四阶龙格-库塔公式,也就是在工程中应用广泛的经典龙格-库塔算法:
y(i+1)=y(i)+h*( K1+ 2*K2 +2*K3+ K4)/6
K1=f(x(i),y(i))
K2=f(x(i)+h/2,y(i)+h*K1/2)
K3=f(x(i)+h/2,y(i)+h*K2/2)
K4=f(x(i)+h,y(i)+h*K3)
通常所说的龙格-库塔法是指四阶而言的,我们可以仿二阶、三阶的情形推导出常用的标准四阶龙格-库塔法公式。
三、解析解法优势及常用方法