APP下载

浅析数值方法在求解物理方程中的应用

2019-03-25郝健翔

中国科技纵横 2019年2期
关键词:常微分方程二分法

郝健翔

摘 要:数值方法是从求解实际问题中发展起来的。迭代是数值方法的核心,在满足收敛准则的条件下,数值方法通过迭代近似求解问题。物理学中,对方程求解是非常普遍但又极其重要的任务。然而,许多物理方程很难解析求解或者没有解析解,数值方法是求解这类问题的重要工具。

关键词:数值方法;二分法;欧拉法;超越方程;常微分方程

中图分类号:O175 文献标识码:A 文章编号:1671-2064(2019)02-0240-02

0 引言

利用Python语言去实现这两类重要的数值方法。选择Python语言的原因主要包括:第一,Python软件免费,易安装、容易学习;第二,Python语言具有非常丰富的科学计算工具包,能够满足科学计算中的一般要求。基于这两点原因,本论文利用Python语言实现二分法和欧拉法,并给出了这两类方法在求解超越方程和常微分方程中的两个物理实例:地月系统中L1拉格朗日点的计算和落体运动的动力学方程。

1 二分法与欧拉法

数值方法求解方程的根通常是一个迭代过程,在迭代之前我们首先需要一个初始解作为方程的近似解。随着迭代次数的增多,近似解会越来越接近于真实解,当达到一定的收敛要求时,停止计算过程,这是数值方法求解方程的一般思路。

1.1 二分法

利用二分法求解超越方程首先需要找一个有根区间,即方程在某个区间内部至少有一个解,这就限定了求解的范围。如果能够计算找出一个非常小的有根区间,区间的中点则是方程根的很好近似。求方程=0的零点,首先确定一个有根区间,使得在上是连续的,且。由连续函数的性质可以知道=0在区间上必然有解。求解=0的零点是通过不断地把函数的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方法叫二分法。设为R的闭区间,二分法就是造出如下的区间序列():,且对任一自然数n,要么等于,或者等于,其中cn表示的中点。对于给定的精确度,用二分法求函数=0的零点通常包括如下4个步骤:

(1)确定一个有根区间,使得在上是连续的,且;(2)求区间的中点c;(3)若,则c就是函数的零点;若,则令;否则;(4)判断是否达到给定的精确度:如果满足,则得到的值a(或b)近似为方程的零点,否则重复步骤2-4。

1.2 欧拉法

微分方程是指含有参数,未知函数和未知函数导数 (或微分)的方程。未知函数是一元函数的微分方程称作常微分方程,一般的常微分方程具有(1)的形式,是微分方程的初始解,。

(1)

大多数常微分方程都无法求出解析解,只能得到解的数值近似。在物理学中,描述系统演化的过程通常需要由微分方程来描述,因此本部分给出欧拉法求解常微分方程的一般迭代表达式(2):

(2)

其中,为区间的等分次数,的大小可以根据计算精度自己设定;,从(2)可知,知道该常微分方程的初始值和等分次数,即可求出微分方程在任意点的近似值,因此以近似常微分方程的解。

2 二分法与欧拉法在求解物理方程中的实例

2.1 二分法在求解L1拉格朗日点

拉格朗日点:地球和月球之间有一个神奇的点,称为L1拉格朗日点,L1拉格朗日点始终位于月球与地球的连线上。卫星处于L1拉格朗日点时,卫星绕地球运行的向心力由地球的向内拉力和月球的向外拉力的合力提供。若假设卫星的轨道是圆形轨道,并且假设地球比月球或卫星大得多,此时卫星的运行方程可由方程(3)描述,其中分别是万有引力常数、地球质量、月球质量,月球绕地球运动的轨道半径和卫星绕地球运动的角速度,这些常数均可以查表获取。

(3)

很明显,方程(3)不能解析求解,但可以利用二分法来近似求解。令函数,即是求解方程的零点。二分法求解方程(3)的Python代码如下:

运行整个程序,计算机求得的=297663863.44米,此时,可知二分法能够很好的求解此方程的根。

2.2 歐拉法求解物体的动力学方程

实际问题中的动力学方程通常是微分方程,大多数微分方程通常不能解析求解,或者求解相对较麻烦。欧拉法是近似求解常微分方程的一类重要方法。在高中物理教学中,落体运动常常忽略掉空气阻力,然而实际的空气阻力不可能避免。如果考虑物体下落的过程中所受的阻力与其下落速度成正比,比例系数为,那么初速度为零的落体运动的牛顿方程应该满足如下常微分方程(4):

(4)

假设物体的质量为2千克,g=9.8m/s,k=10,求解前5秒内的速度变化关系。根据欧拉法求解的迭代表示式(2),取,则常微分方程(4)的迭代表达式为式(5)。利用(5),可以迭代求得秒时对应的速度。

(5)

为了更直观的观察到速度的变化,我们将速度和时间的关系可视化。对于微分方程(4),利用微积分的知识可以求得其精确解为(6)。因此,为了便于将欧拉法求得的近似解与精确解进行比较,可将近似解与精确解在同一张图上可视化。

(6)

欧拉法的求解过程与可视化可用如下Python代码实现:

运行结果如图2。从图中我们可以发现,用欧拉法近似求得的值与解析解对应的值符合的非常好,这说明,用欧拉法求解常微分方程是可行的。

3 总结与展望

数值方法作为一种从实际问题中发展起来的方法,在现在的科学与工程中具有重要的应用。数值方法的用途也远远不止用于求解上述两类方程。从二分法求解超越方程和欧拉法求解常微分方程的研究案例中,我们发现,这两类方法虽然很简单,但是对我们高中生的物理学习却非常有帮助。

然而,在处理上述实际问题中,二分法虽然能够求解超越方程,但是使用二分法需要先找到一个有根区间,并且还需要在这个有根区间内我们研究的函数是连续函数,这就为研究问题带来了不方便。很多时候,要找到有根区间和在该区间上的连续函数很困难。欧拉法求解常微分过程中,我们需要指定的大小,通常情况下,的大小选择对近似解的准确性有影响。为了使近似解与真实解尽可能接近,一般做法是采用尽可能小的,这与研究的实际问题有关。

总而言之,二分法和欧拉法作为两类数值方法,简单实用。将数值方法与计算机的计算速度结合起来,同时利用好计算机的可视化功能,将有助于我们解决、理解更加复杂的物理问题,有助于我们的物理学习。

参考文献

[1] 关治,陆金甫.数值方法[M].北京:清华大学出版社,2006.

[2] 喻文健.数值分析与算法[M].北京:清华大学出版社,2015.

[3] 刘延柱.关于地月系统的拉格朗日点[J].力学与实践,2015,37(6):765-768.

[4] 李佳宇.零基础入门学习Python[M].北京:清华大学出版社,2016.

[5] 舒幼生,陈秉乾,胡望雨.高等数学[M].安徽:中国科学技术大学出版社,2014.

猜你喜欢

常微分方程二分法
基于二进制/二分法的ETC状态名单查找算法
“二分法”求解加速度的分析策略
“二分法”求解加速度的分析策略
基于深度学习的数学教学思考——以“用二分法求方程的近似解”为例
估算的妙招——“二分法”
浅谈常微分方程与大学生创新培养的联系
基于常微分方程的数学建模问题的求解
常微分方程的教学探讨
数学建模在高数教学中的应用
“二分法”教学中的几个问题