多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 19.2 一阶微分方程 > 原文: [http://math.mit.edu/~djk/calculus_beginners/chapter19/section02.html](http://math.mit.edu/~djk/calculus_beginners/chapter19/section02.html) 我们将首先处理一阶微分方程,我们的意思是,对于某些函数![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif),具体地说,形式![](https://img.kancloud.cn/a7/b3/a7b367bac66061f73456d3c402865a87_152x18.gif)的方程。进一步假设我们在某个时候知道解决方案![](https://img.kancloud.cn/f5/cc/f5cc9e47883d3f86d5795d82e36323c4_9x8.gif)。 这告诉我们,在![](https://img.kancloud.cn/77/90/7790dd0efb4a03a4c876741804d9b559_10x8.gif)的区间![](https://img.kancloud.cn/f5/cc/f5cc9e47883d3f86d5795d82e36323c4_9x8.gif)开始,到![](https://img.kancloud.cn/46/d9/46d9ef3cad15c7eb22ef0eed5a5bb892_41x15.gif)的区间为非常小的![](https://img.kancloud.cn/da/b8/dab8f201ba10fb5a14e991ab157a9c7c_10x13.gif),我们大约有 ![](https://img.kancloud.cn/8e/57/8e57ed39ca5b546fdce66f1e02e250aa_204x18.gif) 我们可以使用这个“线性近似”来计算![](https://img.kancloud.cn/2a/eb/2aeb4ea731779297766c1af16b1e4d71_63x18.gif),然后继续从中计算![](https://img.kancloud.cn/f4/9d/f49dd3b0f1331a1ba4466775f08d4c58_72x18.gif),依此类推。 这种方法就像做积分的左手规则;唯一的区别是![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)本身出现在![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif)中。 为了实现这一点,你让![](https://img.kancloud.cn/77/90/7790dd0efb4a03a4c876741804d9b559_10x8.gif)从![](https://img.kancloud.cn/da/b8/dab8f201ba10fb5a14e991ab157a9c7c_10x13.gif)的起始值开始从一行增加到另一行,并使![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)增加![](https://img.kancloud.cn/1f/5a/1f5a06142ef1fb8e3ef6f18e5deb31d3_62x18.gif)。 **练习 19.1 为![](https://img.kancloud.cn/a7/3e/a73e51ac2249ee3743bfd3b69c9a26f6_19x12.gif)给出的![](https://img.kancloud.cn/09/22/09221e35b7e1ae92b1461e3fc2899cd1_64x18.gif)设置此项并绘制![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)与![](https://img.kancloud.cn/77/90/7790dd0efb4a03a4c876741804d9b559_10x8.gif)的关系曲线。 (这代表微分方程:![](https://img.kancloud.cn/58/ea/58ea80ab52fc529b31e69ec6751ac5c5_91x12.gif),它有解![](https://img.kancloud.cn/a5/7f/a57fd259b3e2af95d9a420b4f1fc5805_90x17.gif)。从![](https://img.kancloud.cn/7d/31/7d3168f181178f6271b357b781db8910_93x16.gif)开始,从数字上精确地找到![](https://img.kancloud.cn/18/b0/18b02fddaa1975ea5c3dd9088506365f_32x18.gif)并进行比较。** 产生右手规则的类似物,或梯形或辛普森规则要困难一些,因为它们需要评估![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif),因此![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)超出![](https://img.kancloud.cn/f5/cc/f5cc9e47883d3f86d5795d82e36323c4_9x8.gif),我们只从![](https://img.kancloud.cn/2f/a9/2fa9100f4ed82ad28e57a0123ede6c17_32x18.gif)和![](https://img.kancloud.cn/2a/eb/2aeb4ea731779297766c1af16b1e4d71_63x18.gif)开始]是我们想要发现的。如果我们将![](https://img.kancloud.cn/2a/eb/2aeb4ea731779297766c1af16b1e4d71_63x18.gif)放在我们计算![](https://img.kancloud.cn/2a/eb/2aeb4ea731779297766c1af16b1e4d71_63x18.gif)的公式中,计算机将正确地指责我们使用循环引用。 有很多方法可以解决这个问题,并且已知整个公式序列用于评估![](https://img.kancloud.cn/36/25/3625959f0a09594d0d5e7907017a478c_119x18.gif),因为我们的方程式符合![](https://img.kancloud.cn/da/b8/dab8f201ba10fb5a14e991ab157a9c7c_10x13.gif)中的任何顺序。这些被称为 Runge-Kutta 规则,非常有效。您可以在随附的小程序中看到它们的作用。 &lt;iframe frameborder="0" height="620" src="../mathlets/first-order-ode.html" width="100%"&gt;&lt;/iframe&gt; 我们只会描述最简单的校正,即近似![](https://img.kancloud.cn/2a/eb/2aeb4ea731779297766c1af16b1e4d71_63x18.gif) ![](https://img.kancloud.cn/52/d4/52d4923332c7bd6dfae39ad4bd189ed4_468x38.gif) 这意味着我们在![](https://img.kancloud.cn/f5/cc/f5cc9e47883d3f86d5795d82e36323c4_9x8.gif)和![](https://img.kancloud.cn/46/d9/46d9ef3cad15c7eb22ef0eed5a5bb892_41x15.gif)之间的整个区间内使用![](https://img.kancloud.cn/86/e0/86e00324d951e72b41ceb8164da0ed5a_73x18.gif)作为![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif)的导数,其近似于上一个术语中![](https://img.kancloud.cn/2a/eb/2aeb4ea731779297766c1af16b1e4d71_63x18.gif)的值。 这仍然很容易做,并且或多或少类似于梯形规则,区别仅在于我们估计参数![](https://img.kancloud.cn/46/d9/46d9ef3cad15c7eb22ef0eed5a5bb892_41x15.gif)的导数![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif)而不是知道它。 **如果您根本不了解![](https://img.kancloud.cn/2f/a9/2fa9100f4ed82ad28e57a0123ede6c17_32x18.gif),该怎么办?** 您可以通过在二维空间中绘制图来了解所有解决方案,一维是![](https://img.kancloud.cn/f5/cc/f5cc9e47883d3f86d5795d82e36323c4_9x8.gif),另一维是![](https://img.kancloud.cn/2f/a9/2fa9100f4ed82ad28e57a0123ede6c17_32x18.gif)。如果您在此图中选择点网格,则在每个点处您都知道导数![](https://img.kancloud.cn/86/e0/86e00324d951e72b41ceb8164da0ed5a_73x18.gif)。如果您绘制一个指向![](https://img.kancloud.cn/eb/47/eb470bf167c8651d9330c12cbeb136d7_119x38.gif)方向的箭头。然后,您可以连接箭头(如连接点),形成路径,这些路径每个都代表微分方程的解。 这些路径不能交叉。 **练习 19.2:弄清楚为什么路径不能交叉。** 但他们可以有一些有趣的函数。固定点就是这样一个特征,也是我们在[第 18 章](../chapter18/contents.html)中看到的。一个固定点是方程式意味着你留在那里的固定点。一个稳定的固定点是这样的,如果你在它附近,你旋转或螺旋形进入它。还有一些称为吸引子的东西,它们是过去或未来的曲线(当自变量是时间时),许多路径都聚集在这里。稳定的固定点是一种吸引子。 **您告诉我,我可以实现您在电子表格中描述的集成吗?** 是。将第一个订单 ODE 放入 A1; A2 中的 xstart; ystart 进入 A3; d 进入 A4。将您的数据(包括![](https://img.kancloud.cn/77/90/7790dd0efb4a03a4c876741804d9b559_10x8.gif)和![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)的起始值)以及您在 B2,B3 和 B4 中选择![](https://img.kancloud.cn/da/b8/dab8f201ba10fb5a14e991ab157a9c7c_10x13.gif)的数据组成。 然后在 A6,B6,C6 开始列,分别包含![](https://img.kancloud.cn/77/90/7790dd0efb4a03a4c876741804d9b559_10x8.gif)和![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)。在 A6 中,放 x;在 B6 中,放 y(梯形法则);在 C6 中,放 y(左手规则)。 因此,您可以将= B2 放入 A7,将 B3 放入 B7,将= A7 + $ B $ 4 放入 A8 并将其复制到 A 列。 在 B8 中,put = B7 + $ B $ 4/2 *(f(A7,B7)+ f(A7 + $ B $ 4,B7 + f(A7,B7)* d)并将其复制到 B 列。就是这样。 您可以将结果与左手规则计算进行比较,方法是设置 C 列并从= B7 开始进入 C7,但将= C7 + $ B $ 4 * f(A7,C7)放入 C8 并将其复制下来。然后你可以制作所有三列的![](https://img.kancloud.cn/61/41/6141ff672360e1d599330a2b6f77b1a5_27x12.gif)散点图,看看会发生什么。两个计算之间的差异让您对简单的计算有多糟糕。 您可以看到更改函数![](https://img.kancloud.cn/18/8e/188ee644e8202aad30eac11166858841_10x16.gif)需要更多的工作,但很容易改变初始条件。这是![](https://img.kancloud.cn/a4/89/a489ab24fbc7bb87829bd2611ea7a9cd_121x18.gif) ![](https://img.kancloud.cn/5d/41/5d419c6af8570779a44bf340c8c75538_65x14.gif)的结果和![](https://img.kancloud.cn/11/37/1137399450dcbee832c440844615ee83_42x13.gif),![](https://img.kancloud.cn/1d/70/1d70def04cc17717ad3edbc416af80a2_42x16.gif)的起点。 &lt;button aria-controls="first-order-ode-spreadsheet" aria-expanded="false" class="btn bg-light border-secondary" data-target="#first-order-ode-spreadsheet" data-toggle="collapse" id="toggle-spreadsheet-table" type="button"&gt;显示表&lt;/button&gt;[](../download/first-order-ode.xlsx) Number of steps<button aria-expanded="false" aria-haspopup="true" class="btn btn-sm bg-light border-secondary dropdown-toggle" data-toggle="dropdown" id="nbr-steps-btn" type="button" value="25">25</button>[10](#) [25](#) [50](#) [100](#)Number of digits after decimal point<button aria-expanded="false" aria-haspopup="true" class="btn btn-sm bg-light border-secondary dropdown-toggle" data-toggle="dropdown" id="nbr-digits-btn" type="button" value="10">10</button>[5](#) [10](#) [15](#) **练习 19.3 为![](https://img.kancloud.cn/5a/54/5a547cb4d843f5877408f95337687051_103x20.gif)和![](https://img.kancloud.cn/fb/38/fb38daaf0ab8cb88bad46b9abf67284d_152x18.gif)设置此项,从![](https://img.kancloud.cn/45/95/4595996e13d20b2e17b37138f489a0c1_93x16.gif)开始。** **这总能奏效吗?** 不。对于很多有趣的方程式来说很好。但是,有时您的变量![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)可能会变为无穷大,然后计算变得非常不准确。 这可能发生,因为我们允许![](https://img.kancloud.cn/22/1d/221d532f58a41787e4fd7846bbc4fbad_49x12.gif)的任何等式,因此允许![](https://img.kancloud.cn/18/66/18660be3990b6d3ca1d0177cf847d387_127x24.gif)的任何等式。这意味着![](https://img.kancloud.cn/94/b5/94b570ff740c9ef543814fee75ef575c_10x41.gif)有时可能是![](https://img.kancloud.cn/fb/02/fb0294de83ba79f08ad4634c597b108c_9x12.gif)。如果![](https://img.kancloud.cn/94/b5/94b570ff740c9ef543814fee75ef575c_10x41.gif)应该通过![](https://img.kancloud.cn/fb/02/fb0294de83ba79f08ad4634c597b108c_9x12.gif),那么![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)将无任何特殊原因进入无限。 大多数时候你可以通过求解![](https://img.kancloud.cn/94/b5/94b570ff740c9ef543814fee75ef575c_10x41.gif)的微分方程来避免这个困难,同时解决![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)的问题。当![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)变为无穷大时,![](https://img.kancloud.cn/94/b5/94b570ff740c9ef543814fee75ef575c_10x41.gif)非常温和并且接近![](https://img.kancloud.cn/fb/02/fb0294de83ba79f08ad4634c597b108c_9x12.gif)(记住![](https://img.kancloud.cn/18/66/18660be3990b6d3ca1d0177cf847d387_127x24.gif)是![](https://img.kancloud.cn/18/66/18660be3990b6d3ca1d0177cf847d387_127x24.gif),所以如果我们让![](https://img.kancloud.cn/94/b5/94b570ff740c9ef543814fee75ef575c_10x41.gif)成为![](https://img.kancloud.cn/cd/a6/cda6e38fe6d35a0c0edf0fcca33ab533_10x8.gif),那么![](https://img.kancloud.cn/cd/a6/cda6e38fe6d35a0c0edf0fcca33ab533_10x8.gif)服从![](https://img.kancloud.cn/cd/a6/cda6e38fe6d35a0c0edf0fcca33ab533_10x8.gif) HTG10])。如果你这样做,你可以使用从![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)和![](https://img.kancloud.cn/94/b5/94b570ff740c9ef543814fee75ef575c_10x41.gif)中较小的一个中获得的![](https://img.kancloud.cn/6c/70/6c704047d3148fd7a8b563aaf79dd7f4_9x12.gif)值。 无论如何,以这种方式积分微分方程很容易,值得一试。