微积分 · 斜率场

斜率场

斜率场在平面上每一点画一条短线,斜率是微分方程y′ = f(x, y)在那一点规定的值;每一条解都是顺着这些短线走的曲线。拖动起点,看整条解跟着挪;再让欧拉法照着斜率一步步走。

01

斜率场与本页画面

一阶微分方程y′=f(x,y)y' = f(x, y)在平面上每一点规定了一个斜率。它的斜率场(也叫方向场)在网格的每一点把这个斜率画成一条短线。方程的解是一个可导函数y(x)y(x),它的图像处处和短线相切;初值问题要的是经过给定点P=(x0,y0)P = (x_0, y_0)的那一条。f连续、并且对y满足局部利普希茨条件时,过每一点恰好有一条解,存在于x的某个区间上——所以单凭斜率就能定出所有的解。

拖动P,过P的整条曲线连续地跟着挪(在解存在的任何闭区间上)。八个预设方程的曲线是闭式解;你键入的方程用自适应步长的龙格–库塔法数值求解(5(4)阶,相对容差10−810^{-8})。斜率只随x变时,各条解相差一个常数:+C+C就是上下平移。斜率只随y变时,f的零点是水平的平衡解,夹在相邻两条平衡解之间的解互为左右平移。

欧拉法,步长h
yk+1=yk+h f(xk,yk),xk+1=xk+hy_{k+1} = y_k + h\, f(x_k, y_k), \qquad x_{k+1} = x_k + h

欧拉法照着当前这一点的斜率走一步(长h),到了新点再读一次斜率。本页从P走到终点X(最后一步缩短,正好落在X)。解足够光滑时,它在X处的误差大约和h成正比:红键让h逐级减半,每减半一级误差大约减半,相邻两级误差之比趋于2。

02

值得注意的现象

  • 短线等长、没有箭头:只有斜率有意义。斜率场就是向量场(1,f)(1, f)扔掉了每个箭头的长短。
  • 解不一定对所有x都存在。y′=y2y' = y^2过(0, 1)的解是1/(1−x)1/(1-x),x越接近1它越大;页面在虚线处停下,不把它和另一支连起来。y′=−x/yy' = -x/y过(0, 2)的解是半个圆,止于斜率竖直的地方。欧拉法越过这样的点照样给出一个数,这时解的值标为不存在。
  • 没有利普希茨条件,解可以不唯一:y=0y = 0和y=x3y = x^3都是y′=3y2/3y' = 3y^{2/3}过(0, 0)的解,在y = 0上停留一段再离开的曲线也是。从(0, 0)出发的欧拉法不管步长多小都停在0。
  • 等倾线是斜率为常数的曲线f(x,y)=cf(x, y) = c,沿每条等倾线短线都平行,手画斜率场就是这样画的。取h = π/n时,y′=cos⁡xy' = \cos x从(0, 0)走到π,欧拉法得到的恰好是h。
03

操作

  • 点空白处添加一条解曲线(最多6条);最后碰过的那个起点是P,欧拉法从它出发。打开“平移”后,拖动是平移画面。
  • 拖x轴上的▲或转它的滚轮,改欧拉的终点X。红键从当前的h开始;到底了再按,从h = 1重来。“逼近记录”小窗收存每一级的值、误差和比值,关上小窗仍会记录。
04

相关概念

在y′=yy' = y上从(0, 1)走到1,欧拉法得到的正是复利的因子(1+h)1/h(1 + h)^{1/h}。两个方程的方程组画成相图。

延伸阅读:维基百科:斜率场;OpenStax:Calculus Volume 2, 4.2 Direction Fields and Numerical Methods(英文)。