功能: 5(6)阶自动步长龙格库塔法求解常微分方程

格式:
ODESolverByRK56(f, x0, y0, x, yName)
ODESolverByRK56(f, x0, y0, x, yName, xName)
ODESolverByRK56(f, x0, y0, x, yName, xName, eps)

f : 符号矩阵变量, 里面存储一阶导表达式
x0: 数值, 表示自变量初值
y0: 矩阵变量, 里面存储x0对应的y值
x : 矩阵变量, 表示待求解点位值
yName: 字符串变量, 里面存储多个变量名称,每个名称以都号分隔,其个数与y0一致
xName: x变量名称, 默认为空
eps  : 数值, 求解时控制的相对误差,默认为1e-15

说明:
1. 本函数主要求解一阶常微分初值问题.
2. f里表达式个数必须与y0里元素个数一致, 且一一对应.
3. yName里名称个数必须与y0里元素个数一致, 且一一对应.
4. x里面的值可以乱序, 返回的结果每行与x一一对应.
5. 算法采用自动步长求解.
6. 本函数采用{RK56<http://www.peterstone.name/Maplepgs/Maple/nmthds/RKcoeff/Runge_Kutta_schemes/RK6/RKcoeff6e_4.pdf>}算法求解.

例子:
//已知x,y,z,t满足如下表达式, 现在需要求解t=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1]时对应的x,y,z值
$$
\begin{cases}
x'&=2ty
\\
y'&=-2tx
\\
z'&=2x+4t^2y+6tx
\\
x(0)&=0
\\
y(0)&=1
\\
z(0)&=-3
\end{cases}
$$
//这里执行如下代码
f = {SymMatrix<矩阵运算\SymMatrix>}([2*t*y
-2*t*x
2*x+4*t^2*y+6*t*x]);
t0   = 0;
xyz0 = [0,1,-3];
t = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];
xyz = ODESolverByRK56(f, t0, xyz0, t, "x,y,z", "t")//回车得到如下结果
xyz =
[ 0.00999983333416    0.99995000041666   -2.99785003458316
  0.03998933418663    0.99920010666097   -2.98160458630828
  0.08987854919801    0.99595273301199   -2.93393106951718
  0.15931820661424    0.98722728337562   -2.83422728483548
  0.24740395925452    0.96891242171064   -2.65933330587741
  0.35227423327509    0.93589682367793   -2.38496139110370
  0.47062588817115    0.88233285861012   -1.98812233239074
  0.59719544136239    0.80209575788429   -1.45077456747305
  0.72428717437014    0.68949843295174   -0.76477838498898
  0.84147098480789    0.54030230586814    0.06203505201137 ]

//可以将t带入下面理论表达式进行验证
$$
\begin{cases}
x &=\sin(t^2)
\\
y &= \cos(t^2)
\\
z &= 2t\sin(t^2)-3\cos(t^2)
\end{cases}
$$