常微分方程的数值方法--单步法

本文介绍了常微分方程数值解的几种Runge-Kutta方法,包括Euler方法、Heun方法(二阶Runge-Kutta)和四阶Runge-Kutta方法。通过泰勒展开式和Lipschitz条件,讨论了解的存在性和唯一性,以及各种方法的截断误差和舍入误差。最后,展示了Runge-Kutta方法的代码实现,并简要总结了二阶及更高阶方法的策略。
摘要由CSDN通过智能技术生成

我们的问题

一般地,我们有如下形式的带有Dirichlet类型边界条件的常微分方程(组):

x ˙ = f ( t , x ) x ( t 0 ) = x 0 \dot{x} = f(t,x) \\x(t_0) = x_0 x˙=f(t,x)x(t0)=x0

通常地,我们把一个微分方程的边界条件分成如下三类:
1)Dirichlet条件:已知边界上的函数值;
x ( t 0 ) = x 0 x(t_0) = x_0 x(t0)=x0
2)Neumann条件:已知边界上的导数值;
x ˙ ( t 0 ) = x 0 \dot{x}(t_0) = x_0 x˙(t0)=x0
3)Rodin条件:前两者的线性组合。

Neumann边界条件在通常情况下,我们使用泰勒展开式做一个高阶的近似来处理,将它转换成一个类似Dirichlet边界条件的定值。对于一个给定边界条件的常微分方程,想要给出解析解或者数值解,第一步应该研究它的解的存在性和唯一性。并不是所有形如开头给出的常微分方程都有解,或者说,都有唯一解。关于带边界条件的常微分方程的解的唯一存在性,我们有解的唯一存在性定理来证明该函数存在而且唯一。

对于微分方程中的 f f f a ≤ t ≤ b , − ∞ < x < + ∞ a\leq t\leq b,-\infin<x<+\infin atb,<x<+内连续并且满足Lipschitz条件
∣ f ( t , x 1 ) − f ( t , x 2 ) ∣ ≤ L ∣ x 1 − x 2 ∣ |f(t,x_1) - f(t,x_2)|\leq L|x_1 - x_2| f(t,x1)f(t,x2)Lx1x2
则初值问题在区间 [ a , b ] [a,b] [a,b]上有唯一解。

原本给出的第一存在性定理和唯一性定理强调函数或者和其导数的连续性,并且在邻域所圈定的边界内。这里用一个比其更强的条件来证明唯一性和存在性,即Lipschitz条件。

Euler方法

基于泰勒展开式和数值方法的理论,我们对常微分方程的数值解提供了一些单步的解法。首先给出泰勒展开的公式:

x ( t + h ) = x ( t ) + h x ˙ ( t ) + h 2 2 ! x ¨ ( t ) + h 3 3 ! x ( 3 ) ( t ) + h 4 4 ! x ( 4 ) ( t ) + . . . x(t+h) = x(t)+h\dot{x}(t)+\frac{h^2}{2!}\ddot{x}(t)+\frac{h^3}{3!}x^{(3)}(t)+\frac{h^4}{4!}x^{(4)}(t)+... x(t+h)=x(t)+hx˙(t)+2!h2x¨(t)+3!h3x(3)(t)+4!h4x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值