计算方法_微分方程数值解
微分方程的数值解法

微分方程的数值解法微分方程是自然科学和现代技术领域中一种最基本的数学描述工具,它可以描述物理世界中的各种现象。
微分方程的解析解往往很难求出,因此数值解法成为解决微分方程问题的主要手段之一。
本文将介绍几种常见的微分方程的数值解法。
一、欧拉法欧拉法是微分方程初值问题的最简单的数值方法之一,它是由欧拉提出的。
考虑一阶常微分方程:$y'=f(t,y),y(t_0)=y_0$其中,$f(t,y)$表示$y$对$t$的导数,则$y(t_{i+1})=y(t_i)+hf(t_i,y_i)$其中,$h$为步长,$t_i=t_0+ih$,$y_i$是$y(t_i)$的近似值。
欧拉法的精度较低,误差随着步长的增加而增大,因此不适用于求解精度要求较高的问题。
二、改进欧拉法改进欧拉法又称为Heun方法,它是由Heun提出的。
改进欧拉法是在欧拉法的基础上进行的改进,它在每个步长内提高求解精度。
改进欧拉法的步骤如下:1. 根据当前$t_i$和$y_i$估算$y_{i+1}$:$y^*=y_i+hf(t_i,y_i),t^*=t_i+h$2. 利用$y^*$和$t^*$估算$f(t^*,y^*)$:$f^*=f(t^*,y^*)$3. 利用$y_i$、$f(t_i,y_i)$和$f^*$估算$y_{i+1}$:$y_{i+1}=y_i+\frac{h}{2}(f(t_i,y_i)+f^*)$改进欧拉法具有比欧拉法更高的精度,但是相较于其他更高精度的数值方法,它的精度仍然较低。
三、龙格-库塔法龙格-库塔法是一种广泛使用的高精度数值方法,它不仅能够求解一阶和二阶常微分方程,还能够求解高阶常微分方程和偏微分方程。
其中,经典的四阶龙格-库塔法是最常用的数值方法之一。
四阶龙格-库塔法的步骤如下:1. 根据当前$t_i$和$y_i$估算$k_1$:$k_1=f(t_i,y_i)$2. 根据$k_1$和$y_i$估算$k_2$:$k_2=f(t_i+\frac{h}{2},y_i+\frac{h}{2}k_1)$3. 根据$k_2$和$y_i$估算$k_3$:$k_3=f(t_i+\frac{h}{2},y_i+\frac{h}{2}k_2)$4. 根据$k_3$和$y_i$估算$k_4$:$k_4=f(t_i+h,y_i+hk_3)$5. 根据$k_1$、$k_2$、$k_3$和$k_4$计算$y_{i+1}$:$y_{i+1}=y_i+\frac{h}{6}(k_1+2k_2+2k_3+k_4)$龙格-库塔法的精度较高,在求解一些对精度要求较高的问题时,龙格-库塔法是一个比较好的选择。
求常微分方程的数值解

求常微分方程的数值解一、背景介绍常微分方程(Ordinary Differential Equation,ODE)是描述自然界中变化的数学模型。
常微分方程的解析解往往难以求得,因此需要寻找数值解来近似地描述其行为。
求解常微分方程的数值方法主要有欧拉法、改进欧拉法、龙格-库塔法等。
二、数值方法1. 欧拉法欧拉法是最简单的求解常微分方程的数值方法之一。
它基于导数的定义,将微分方程转化为差分方程,通过迭代计算得到近似解。
欧拉法的公式如下:$$y_{n+1}=y_n+f(t_n,y_n)\Delta t$$其中,$y_n$表示第$n$个时间步长处的函数值,$f(t_n,y_n)$表示在$(t_n,y_n)$处的导数,$\Delta t$表示时间步长。
欧拉法具有易于实现和理解的优点,但精度较低。
2. 改进欧拉法(Heun方法)改进欧拉法又称Heun方法或两步龙格-库塔方法,是对欧拉法进行了精度上提升后得到的一种方法。
它利用两个斜率来近似函数值,并通过加权平均来计算下一个时间步长处的函数值。
改进欧拉法的公式如下:$$k_1=f(t_n,y_n)$$$$k_2=f(t_n+\Delta t,y_n+k_1\Delta t)$$$$y_{n+1}=y_n+\frac{1}{2}(k_1+k_2)\Delta t$$改进欧拉法比欧拉法精度更高,但计算量也更大。
3. 龙格-库塔法(RK4方法)龙格-库塔法是求解常微分方程中最常用的数值方法之一。
它通过计算多个斜率来近似函数值,并通过加权平均来计算下一个时间步长处的函数值。
RK4方法是龙格-库塔法中最常用的一种方法,其公式如下:$$k_1=f(t_n,y_n)$$$$k_2=f(t_n+\frac{\Delta t}{2},y_n+\frac{k_1\Delta t}{2})$$ $$k_3=f(t_n+\frac{\Delta t}{2},y_n+\frac{k_2\Delta t}{2})$$ $$k_4=f(t_n+\Delta t,y_n+k_3\Delta t)$$$$y_{n+1}=y_n+\frac{1}{6}(k_1+2k_2+2k_3+k_4)\Delta t$$三、数值求解步骤对于给定的常微分方程,可以通过以下步骤求解其数值解:1. 确定初值条件:确定$t=0$时刻的函数值$y(0)$。
微分方程的数值解法

微分方程的数值解法微分方程是描述自然界中众多现象和规律的重要数学工具。
然而,许多微分方程是很难或者无法直接求解的,因此需要使用数值解法来近似求解。
本文将介绍几种常见的微分方程数值解法。
1. 欧拉方法欧拉方法是最简单的数值解法之一。
它将微分方程转化为差分方程,通过计算离散点上的导数来逼近原方程的解。
欧拉方法的基本思想是利用当前点的导数值来估计下一个点的函数值。
具体步骤如下:首先,将自变量区间等分为一系列的小区间。
然后,根据微分方程的初始条件,在起始点确定初始函数值。
接下来,根据导数的定义,计算每个小区间上函数值的斜率。
最后,根据初始函数值和斜率,递推计算得到每个小区间上的函数值。
2. 龙格-库塔方法龙格-库塔方法是一种常用的高阶精度数值解法。
它通过进行多次逼近和修正来提高近似解的准确性。
相比于欧拉方法,龙格-库塔方法在同样的步长下可以获得更精确的解。
具体步骤如下:首先,确定在每个小区间上的步长。
然后,根据微分方程的初始条件,在起始点确定初始函数值。
接下来,根据当前点的导数值,使用权重系数计算多个中间点的函数值。
最后,根据所有中间点的函数值,计算出当前点的函数值。
3. 改进欧拉方法(改进的欧拉-克罗默法)改进欧拉方法是一种中阶精度数值解法,介于欧拉方法和龙格-库塔方法之间。
它通过使用两公式递推来提高精度,并减少计算量。
改进欧拉方法相对于欧拉方法而言,增加了一个估计项,从而减小了局部截断误差。
具体步骤如下:首先,确定在每个小区间上的步长。
然后,根据微分方程的初始条件,在起始点确定初始函数值。
接下来,利用欧拉方法计算出中间点的函数值。
最后,利用中间点的函数值和斜率,计算出当前点的函数值。
总结:微分方程的数值解法为我们研究和解决实际问题提供了有力的工具。
本文介绍了欧拉方法、龙格-库塔方法和改进欧拉方法这几种常见的数值解法。
选择合适的数值解法取决于微分方程的性质以及对解的精确性要求。
在实际应用中,我们应该根据具体情况选择最合适的数值解法,并注意控制步长以尽可能减小误差。
微分方程数值解使用数值方法求解微分方程

微分方程数值解使用数值方法求解微分方程微分方程是描述自然现象中变化的数学模型,它是数学和科学研究中的重要工具。
然而,许多微分方程并没有精确的解析解,因此需要使用数值方法来近似求解。
本文将介绍一些常用的数值方法来求解微分方程,包括欧拉方法、改进的欧拉方法和龙格-库塔方法。
一、欧拉方法欧拉方法是最简单、最基础的数值方法之一。
它基于微分方程解的定义,通过离散化自变量和因变量来逼近解析解。
假设我们要求解的微分方程为dy/dx = f(x, y),初始条件为y(x0) = y0。
将自变量x分割成若干个小区间,步长为h,得到x0, x1, x2, ..., xn。
根据微分方程的定义,我们可以得到递推公式 yn+1 = yn + h*f(xn, yn)。
用代码表示即为:```def euler_method(f, x0, y0, h, n):x = [x0]y = [y0]for i in range(n):xn = x[i]yn = y[i]fn = f(xn, yn)xn1 = xn + hyn1 = yn + h*fnx.append(xn1)y.append(yn1)return x, y```二、改进的欧拉方法欧拉方法存在着局部截断误差,即在每个小区间上的误差。
改进的欧拉方法是对欧拉方法的改进,可以减小截断误差。
它的递推公式为yn+1 = yn + h*(f(xn, yn) + f(xn+1, yn+1))/2。
用代码表示即为:```def improved_euler_method(f, x0, y0, h, n):x = [x0]y = [y0]for i in range(n):xn = x[i]yn = y[i]fn = f(xn, yn)xn1 = xn + hyn1 = yn + h*(fn + f(xn1, yn + h*fn))/2x.append(xn1)y.append(yn1)return x, y```三、龙格-库塔方法龙格-库塔方法是一种更加精确的数值方法,它通过计算多个递推式的加权平均值来逼近解析解。
求解微分方程的常用方法

求解微分方程的常用方法微分方程是数学的一个重要领域,在各个科学领域中都有着广泛的应用。
求解微分方程是解决实际问题的重要方法之一。
本文将介绍一些求解微分方程的常用方法。
一、解析解法解析解法是指用变量分离、母函数法、变量代换等方法,将微分方程转化为一些已知函数的方程,从而求得方程的解。
变量分离法是一种常见的解析解法。
对于形如y'=f(x)g(y)的微分方程,可以将其变为dy/g(y)=f(x)dx的形式,进而通过积分得到y的解。
母函数法是将微分方程变成一个恒等式的形式,从而求出微分方程的通解。
变量代换法则是通过适当的变量代换,使微分方程变为已知形式的微分方程,进而求出其解。
二、初值问题法初值问题法通常用于求解一阶微分方程的初值问题。
该方法的基本思路是先求得微分方程的通解,然后利用给定的初始条件(即初值),确定通解中的任意常数,从而得到特解。
三、数值解法数值解法是指将微分方程转化为一个差分方程,利用数值方法求得近似解。
数值解法的基本思路是将区间分为若干小段,然后在每一小段上通过近似计算求得微分方程的解。
常用的数值方法包括欧拉法、梯形法、龙格-库塔法等。
这些方法的特点是简单易实现,但对于复杂的微分方程而言,计算量较大,精度也有限。
四、级数解法级数解法是将微分方程的解表示为幂级数的形式,从而求解微分方程。
这种方法的思路是假设微分方程的解为幂级数的形式,然后代入微分方程得到一组关于幂级数系数的递推公式,进而求得幂级数的系数,并由此得出微分方程的解。
五、特殊函数解法特殊函数解法是指利用已知的特殊函数求解微分方程。
一些常见的特殊函数包括贝塞尔函数、连带勒让德函数、超几何函数等。
这些特殊函数有着特殊的性质,可以用于求解某些类型的微分方程。
例如,我们可以用贝塞尔函数求解振动问题中的一些微分方程。
六、变分法变分法是一种通过变分原理,求解微分方程的方法。
变分法需要通过变分原理,利用根据函数微小变化的变分量所对应的增量来导出微分方程的一些重要性质。
微分方程的数值解法

微分方程的数值解法微分方程(Differential Equation)是描述自然界中变化的现象的重要工具,具有广泛的应用范围。
对于一般的微分方程,往往很难找到解析解,这时候就需要使用数值解法来近似求解微分方程。
本文将介绍几种常见的微分方程数值解法及其原理。
一、欧拉方法(Euler's Method)欧拉方法是最基本也是最容易理解的数值解法之一。
它的基本思想是将微分方程转化为差分方程,通过给定的初始条件,在离散的点上逐步计算出函数的近似值。
对于一阶常微分方程dy/dx = f(x, y),利用欧拉方法可以得到近似解:y_n+1 = y_n + h * f(x_n, y_n)其中,h是步长,x_n和y_n是已知点的坐标。
欧拉方法的优点在于简单易懂,但是由于是一阶方法,误差较大,对于复杂的微分方程可能不够准确。
二、改进的欧拉方法(Improved Euler's Method)改进的欧拉方法又称为改进的欧拉-柯西方法,是对欧拉方法的一种改进。
它通过在每一步计算中利用两个不同点的斜率来更准确地逼近函数的值。
对于一阶常微分方程dy/dx = f(x, y),改进的欧拉方法的迭代公式为:y_n+1 = y_n + (h/2) * [f(x_n, y_n) + f(x_n+1, y_n + h * f(x_n, y_n))]相较于欧拉方法,改进的欧拉方法具有更高的精度,在同样的步长下得到的结果更接近真实解。
三、四阶龙格-库塔方法(Fourth-Order Runge-Kutta Method)四阶龙格-库塔方法是一种更高阶的数值解法,通过计算多个点的斜率进行加权平均,得到更为准确的解。
对于一阶常微分方程dy/dx = f(x, y),四阶龙格-库塔方法的迭代公式为:k1 = h * f(x_n, y_n)k2 = h * f(x_n + h/2, y_n + k1/2)k3 = h * f(x_n + h/2, y_n + k2/2)k4 = h * f(x_n + h, y_n + k3)y_n+1 = y_n + (k1 + 2k2 + 2k3 + k4)/6四阶龙格-库塔方法是数值解法中精度最高的方法之一,它的计算复杂度较高,但是能够提供更为准确的结果。
微分方程的数值解法与程序实现

微分方程的数值解法与程序实现微分方程是数学中的重要概念,广泛应用于各个领域。
解微分方程有多种方法,其中一种常用的方法是数值解法。
本文将介绍微分方程的数值解法以及如何用程序实现。
我们来了解一下微分方程的概念。
微分方程描述了变量之间的关系,其中包含了未知函数及其导数。
一般形式的微分方程可以写作:dy/dx = f(x, y)其中,y是未知函数,x是自变量,f(x, y)是已知函数。
解微分方程的目标是找到函数y(x)的表达式,使得方程左边的导数等于右边的已知函数。
对于一些简单的微分方程,可以通过代数方法求解得到解析解。
但是,对于复杂的微分方程,往往很难找到解析解。
这时候就需要使用数值解法来近似求解。
数值解法的基本思路是将微分方程转化为差分方程,然后通过逐步逼近的方法求解。
差分方程是离散的,可以使用计算机程序来实现。
常用的数值解法有欧拉法、改进的欧拉法、龙格-库塔法等。
以欧拉法为例,我们来看一下具体的实现过程。
欧拉法的基本思想是通过一阶导数来表示微分方程的变化率。
具体步骤如下:1. 将微分方程转化为差分方程:dy/dx ≈ (y(i+1) - y(i)) / Δx,其中Δx是步长。
2. 根据初始条件,设置初始值y(0)。
3. 通过迭代计算,求解差分方程:y(i+1) = y(i) + f(x(i), y(i)) * Δx,其中f(x(i), y(i))是在(x(i), y(i))处的导数值。
4. 重复步骤3,直到达到所需的精度或计算次数。
通过上述步骤,我们可以得到微分方程的数值解。
下面,我们来具体实现一个用于求解微分方程的程序。
假设我们要求解的微分方程为dy/dx = x^2,初始条件为y(0) = 1,步长Δx = 0.1。
程序的实现如下:```pythondef euler_method(x0, y0, dx, n):x = [x0]y = [y0]for i in range(n):x.append(x[i] + dx)y.append(y[i] + dx * x[i]**2)return x, yx0 = 0y0 = 1dx = 0.1n = 10x, y = euler_method(x0, y0, dx, n)for i in range(n+1):print("x = {:.1f}, y = {:.4f}".format(x[i], y[i]))```运行以上程序,将得到微分方程的数值解。
微分方程数值解法

微分方程数值解法微分方程是数学中的重要概念,它描述了物理系统中变量之间的关系。
解微分方程是许多科学领域中常见的问题,其中又可以分为解析解和数值解两种方法。
本文将重点介绍微分方程的数值解法,并详细讨论其中的常用方法和应用。
一、微分方程的数值解法概述微分方程的解析解往往较为复杂,难以直接求解。
在实际问题中,我们通常利用计算机进行数值计算,以获得方程的数值解。
数值解法的基本思想是将微分方程转化为一组离散的数值问题,通过逼近连续函数来获得数值解。
二、常见的数值解法1. 欧拉法欧拉法是最基础的数值解法之一,其核心思想是将微分方程转化为差分方程,通过逼近连续函数来获得数值解。
欧拉法的基本形式为:yn+1 = yn + h·f(xn, yn)其中,yn表示第n个时间步的数值解,h为时间步长,f为微分方程右端的函数。
欧拉法的精度较低,但计算简单,适用于初步估计或简单系统的求解。
2. 改进的欧拉法(Heun法)改进的欧拉法(Heun法)是对欧拉法的改进,其关键在于求解下一个时间步的近似值时,利用了两个斜率的平均值。
Heun法的基本形式为:yn+1 = yn + (h/2)·(k1 + k2)k1 = f(xn, yn),k2 = f(xn+h, yn+h·k1)Heun法较欧拉法的精度更高,但计算量较大。
3. 龙格-库塔法(RK方法)龙格-库塔法是一类常用的数值解法,包含了多个不同阶数的方法。
其中,最常用的是经典四阶龙格-库塔法(RK4法),其基本形式为:k1 = f(xn, yn)k2 = f(xn + h/2, yn + (h/2)·k1)k3 = f(xn + h/2, yn + (h/2)·k2)k4 = f(xn + h, yn + h·k3)yn+1 = yn + (h/6)·(k1 + 2k2 + 2k3 + k4)RK4法实现较为复杂,但精度较高,适用于解决大多数常微分方程问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
120第6章 常微分方程初值问题数值解法6.1 问题的描述和基本概念1、常微分方程初值问题● 一般形式0(,)()y f x y y a y '=⎧⎨=⎩式中(,)f x y 已知,0()y a y =称为初值条件. ● 初值问题的数值方法和数值解求函数()y y x =在若干离散点k x 上的近似值(0,1,)k y k = 的方法称为初值问题的数值方法,而称(0,1,)k y k = 为初值问题的数值解.1212. 建立数值解法的思想与方法用离散化方法将初值问题化为差分方程, 然后再求解.设节点为011n n a x x x x +=<<<<<距离1k k k h x x +=-称为步长.求数值解一般是从0y 开使逐次顺序求出12,,y y . 初值问题的解法有单步法和多步法两种: ● 单步法:计算1k y +时只用到k y 一个值;● 多步法:计算1k y +时要用1,,,k k k l y y y -- 多个值。
数值解法还有显格式和隐格式之分。
122微分方程离散化方法主要有数值微分法,数值积分法和Taylor 展开法1) 数值微分法由'()(,())k k k y x f x y x =,用数值微分的2点前差公式代替'()k y x ,得近似离散化方程记1k k h x x +=-,做k k ,“”,得差分方程1(,)k k k k y y f x y h+-= 即 1(,)k k k k y y hf x y +=+(Euler 公式)由初值条件0()y y a =及Euler 公式可求出数值解12,,,,n y y y .Euler 公式是显式单步法.1232)数值积分法在1[,]k k x x +上对'(,)y f x y =两边取定积分,得 111()()'(,())kk k k x x k k x x y x y x y dx f x y x dx +++-==⎰⎰右端积分用左矩形公式(数值积分公式)得1()()(,())k k k k y x y x hf x y x +-≈于是得到求初值问题的Euler 方法1(,)k k k k y y hf x y +=+124右端积分用右矩形公式(数值积分公式)得111()()(,())k k k k y x y x hf x y x +++-≈于是得到求初值问题的后退Euler 方法1+1+1(,)k k k k y y hf x y +=+后退Euler 方法是隐式的.右端积分用梯形公式(数值积分公式)得近似离散化方程:于是得到求初值问题的梯形方法该公式是隐式单步法.1251263)Taylor 展开法因为初值问题中函数(,)f x y 是已知函数,由(,)y f x y '=,可以计算''y ,'''y ,…, 于是有函数()y y x =在k x 处的Taylor 展式取上式右端前若干项,得近似离散化方程. 例如取前两项有1()()(,())k k k k y x y x hf x y x +≈+于是又得到Euler 公式:1(,)k k k k y y hf x y +=+.1273. 数值解法的误差、阶与绝对稳定性单步法数学描述为11(,,,)k k k k k y y h x y y h ϕ++=+显式:1(,,)k k k k y y h x y h ϕ+=+其中(,,)x y h ϕ称为增量函数.128显式单步法的一些概念定义1 称111()k k k e y x y +++=-为单步法在节点1k x +的整体截断误差,而称11()()(,(),)k k k k k T y x y x h x y x h ϕ++=--为在1k x +点的局部截断误差。
()k y x 表示解()y x 在k x 的值,是准确值,没有误差; k y 表示由数值解公式得出()k y x 的近似值,是数值解,有截断误差.129 局部截断误差1k T +的理解假设在计算()k y x 时没有误差(()k k y y x =)下,计算出的1k y +(1()(,(),)k k k k y y x h x y x h ϕ+=+)与1()k y x +的误差()111k k k T y x y +++=-(计算一步的误差).定义2 如果数值解法的局部截断误差为11()P k T O h ++=则称该方法具有p 阶精度或该方法是p 阶方法.方法的阶越高,方法越好.130局部截断误差的主项如果某方法是p 阶方法,11()P k T O h ++=按h 可展为 1121()(,())()P P P k k k T O h g x y x h O h ++++==+ 则称1(,())P k k g x y x h +为局部截断误差的主项.在同阶方法中,局部截断误差的主项越小,方法越好.对Euler 方法1(,)k k k k y y hf x y +=+,有 1()()(,())k k k k k T y x h y x hf x y x +=+-- 将()k y x h +在k x 点展开,有2()()'()''()2!k k k k hy x h y x hy x y x +=+++2()(,())''()2!k k k k h y x hf x y x y x =+++ 故有231()().2k k y x T h O h +''=+Euler 方法是一阶方法.131例1 试求梯形方法的阶和局部截断误差主项. 解 该单步公式的局部截断误差是111()()((,())(,()))2k k k k k k k hT y x h y x f x y x f x y x +++=+--+ 1()()(()())2k k k k h y x h y x y x y x +''=+--+ 23()()()(()()23!2k k k k k h h hy x h y x y x y x y x ''''''''=++-+ 24()())()2k k h y x h y x O h '''''+++34()().12k h y x O h '''=-+ 故局部截断误差主项是3()12k h y x '''-,方法是二阶的.132定义3 设某种数值方法在k y 上大小为δ的扰动,于以后各()n y n k >上产生的偏差均不超过δ,则称该数值方法是稳定的。
通常用试验方程'y y λ= (λ为复数)来讨论求解数值方法绝对稳定性.Euler 方法稳定性将Euler 公式用于试验方程'y y λ=,得到1(1)k k k k y y h y h y λλ+=+=+设计算k y 时有误差,k ε则有11(1)()k k k k y h y ελε+++=++得1(1)k k h ελε+=+要想1k k εε+≤,只须11h λ+≤,因此Euler 方法在11h λ+≤时是绝对稳定的,其绝对稳定域为复平面h λ上以(-1,0)为中心的单位圆盘.绝对稳定区间为20.h λ-≤≤1336.2 Runge-Kutta 方法()11111,,(2,3,,)m k k i i i k k r rk r k rj j j y y h c K K f x y K f x a h y h b K r m +=-=⎧⎪=+⎪⎪=⎨⎪⎛⎫⎪=++= ⎪⎪⎝⎭⎩∑∑称为m 级R-K 方法.增量函数是()()1,,,,mi i i x y h c K x y h ϕ==∑134构造过程以2m =来说明Runge-Kutta 方法的构造方法和过程,对一般的Runge-Kutta 方法可类似处理.2m =的Runge-Kutta 公式为()11122k k y y h c K c K +=++式中 ()1,k k K f x y =,()22211,k k K f x a h y hb K =++.由(),y f x y '=,可得()()()(),(),(),()x y y x f x y x f x y x f x y x ''''=+ 在k x 处做Taylor 展开,有()()()()()()(2322!(,())(,())2!k k k k k k k x k k y x y x h y x y x h h O h h y x hf x y x f x y x '''+=+++'=++)()3(,())(,())y k k k k f x y x f x y x O h '++对()(),,k k x y x h ϕ在(,())k k x y x 做二元Taylor 展开,有()()(12,,(,())(,())k k k k k k x y x h c f x y x c f x y x ϕ=+21(,())(,())y k k k k hb f x y x f x y x '+)22(,())()x k k a hf x y x O h '++12()(,())k k c c f x y x =+(221(,())(,())y k k k k c b f x y x f x y x '+)22(,())()x k k a f x y x h O h '++由135()()()()1,,k k k k k T y x h y x h x y x h ϕ+=+--, 有()1122211(,())()(,())2k k k x k k T c c f x y x h c a f x y x +⎛'=--+- ⎝ 232211()(,())(,())()2y kk k k c b f x y x f x y x h O h ⎫'+-+⎪⎭选1222221111,0,022c c c a c b +=-=-=有局部截断误差()3T O h =,这样可得到二阶Runge-Kutta 公式.取20c t =≠,则式(6.13)的解为11c t =-,22112a b t==取不同的t 可得出不同的二阶Runge-Kutta 公式.如取12t =时,得到改进的Euler 公式()()()1,,,2k k k k k k k k h y y f x y f x h y hf x y +⎡⎤=++++⎣⎦ 1t =时,得到中点公式1(,(,)).22k k k k k k h h y y hf x y f x y +=+++136经典Runge-Kutta 公式()()()112341213243226,,22,22,k k k k k k k k k k hy y K K K K K f x y h h K f x y K h h K f x y K K f x h y hK +⎧=++++⎪⎪⎪=⎪⎪⎛⎫=++⎨ ⎪⎝⎭⎪⎪⎛⎫=++⎪ ⎪⎝⎭⎪⎪=++⎩四阶方法.137例1 设初值问题为()100y y y '=-+⎧⎪⎨=⎪⎩()00.4x ≤≤ 分别用Euler 方法(0.025h =),改进Euler 方法(0.05h =)和经典Runge-Kutta 方法(0.1h =)计算。