非线性动力系统基础1——数值解和解析解的区别

一、基本概念

1. 数值解的概念

数值解(numerical solution)是指在特定条件下通过近似计算得出来的一个数值,是采用某种计算方法,如有限元的方法、 数值逼近、插值的方法 得到的解。

例如,求微分方程的初值问题

                                                                      \frac{dy}{dx}=f(x,y), y(x_{0})=y_{0}

的解y=y(x),可以从初值条件y(x_{0})=y_{0}出发,按照一定的步长h,依据某种方法逐步计算微分方程解y(x)的近似解y_{n}\approx y(x_{_{n}}),这里x_{n}=x_{0}+n\cdot h 。这样求出的解称为数值解。

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)

通常所说的龙格-库塔法是指四阶而言的,我们可以仿二阶、三阶的情形推导出常用的标准四阶龙格-库塔法公式。

三、解析解法优势及常用方法

 

你可能感兴趣的:(非线性动力系统)