一类s级p阶显式格式的计算精度推导

  • 引子
  • 初描述
  • 正文
    • (一)格式介绍
    • (二)计算优化
    • (三)一元泰勒展式
    • (四)最终测试
  • 结束语

引子

为活跃氛围,Maple技术交互研讨群(QQ836204107)于20年春节期间特地举办一场符号推导比赛,内容如下:

初描述

本文数值计算中提到的增量函数,本质上不出泰勒展式之右。在精度阶数推导中,主要思路仍是泰勒展开,只是展开项中带有也精度限制。纯粹暴力展开会计算过多不必要项,例如以下展开式中只需最高次数为5的项:
(anΔt5+anΔt4+anΔt3+anΔt2+anΔt+an)5\left( a_{n}\,{\Delta t}^{5}+a_{n}\,{\Delta t}^{4}+a_{n}\,{\Delta t}^ {3}+a_{n}\,{\Delta t}^{2}+a_{n}\,\Delta t+a_{n} \right) ^{5}(an​Δt5+an​Δt4+an​Δt3+an​Δt2+an​Δt+an​)5
然而在Maple中只使用expand+coeff提取指定项系数,将面对全部展开的巨大计算负担。同时,仅人为手动计算规避冗余将遭遇繁琐计算。因此,使用Maple之前有必要进行理论上的计算优化。在证明完毕之后,感兴趣朋友进一步研究新格式的系数设置

正文

(一)格式介绍

常微分方程数值求解中,除龙格库塔之外,存在不少同级不同阶或者不同级不同阶的计算格式,不同之处在于增量函数中的不同系数,相同之处在于将增量函数泰勒展开后都指向确定精度。以下展示3-5阶格式对应的系数a,b,c,部分涉及到自适应步长带有第四中系数cs.

restart:
#1 is Bogacki_Shampine3(2) methed
wholechoice[1]:=[0,1/2,3/4,1],[0,[1/2],[0,3/4],[2/9,1/3,4/9]],[2/9,1/3,4/9,0],[7/24,1/4,1/3,1/8]:#2 is classic Runge_Kutta4 methed
wholechoice[2]:=[0,1/2,1/2,1],[0,[1/2],[0,1/2],[0,0,1]],[1/6,2/6,2/6,1/6],[]:#3 is Kutta4 methed
wholechoice[3]:=[0,1/3,2/3,1],[0,[1/3],[-1/3,1],[1,-1,1]],[1/8,3/8,3/8,1/8],[]:#4 is Fehlberg4(5) methed
wholechoice[4]:=[0,1/4,3/8,12/13,1,1/2],[0,[1/4],[3/32,9/32],[1932/2197,-7200/2197,7296/2197],[439/216,-8,3680/513,-845/4104],[-8/27,2,-3544/2565,1859/4104,-11/40]],[25/216,0,1408/2565,2197/4104,-1/5,0],[16/135,0,6656/12825,28561/56430,-9/50,2/55]:#5 is Dormand_Prince5(4) methed
wholechoice[5]:=[0,1/5,3/10,4/5,8/9,1,1],[0,[1/5],[3/40,9/40],[44/45,-56/15,32/9],[19372/6561,-25360/2187,64448/6561,-212/729],[9017/3168,-355/33,46732/5247,49/176,-5103/18656],[35/384,0,500/1113,125/192,-2187/6784,11/84]],[35/384,0,500/1113,125/192,-2187/6784,11/84,0],[5179/57600,0,7571/16695,393/640,-92097/339200,187/2100,1/40]:

(二)计算优化

核心部分中,增量函数中最重要的是每个k,如果证明计算精度为p,我们只需将它在(t,u)处展开到0~p次项。进而可以控制所有k皆展到0~p次项。以下是计算的优化理论部分与相关代码,测试时以7级5阶的Dormand_Prince格式为例。
k=f(t+aΔt,u+BΔt),B=∑j=1pbj(Δt)j−1k=f(t,u)+∑n=1p1n!(aΔt∂∂t+BΔt∂∂u)n(f)(t,u)+o(Δt)p=f(t,u)+∑n=1p(Δt)nn!∑k=0nCnkakBn−k∂nf(t,u)∂tk∂un−k+o(Δt)p=(f(t,u)+∑n=1p((Δt)nn!∑k=0n(Cnkak(∂n∂un−k∂tkf(t,u))(∑j=1p−n+1bj(Δt)j−1)n−k))+o(Δt)p)k = f(t + a\Delta t,u + B\Delta t), B = \sum\limits_{j = 1}^p {{b_j}} {(\Delta t)^{j - 1}}\\k = f(t,u) + \sum\limits_{n = 1}^p {\frac{1}{{n!}}{{(a\Delta t\frac{\partial }{{\partial t}} + B\Delta t\frac{\partial }{{\partial u}})}^n}(f)(t,u) + o{{(\Delta t)}^p}}\\\quad= f(t,u) +\sum\limits_{n = 1}^p\frac{{{{(\Delta t)}^n}}}{{n!}}\sum\limits_{k = 0}^n{C_n^k{a^k}{B^{n - k}}\frac{{{\partial ^n}f(t,u)}}{{\partial {t^k}\partial {u^{n - k}}}}}+o{{(\Delta t)}^p}\\\color{red}=\left(f \left( t,u \right)+\sum _{n=1}^{p} \left( {\frac { \left( \Delta\,t \right) ^{n}}{n!}\sum _{k=0}^{n} \left( {C_{{n}}}^{k}{a}^{k} \left( {\frac {\partial ^{n}}{\partial {u}^{n-k}\partial {t}^{k}}}f \left( t,u\right) \right) \left( \sum _{j=1}^{p-n+1}b_{{j}} \left( \Delta\,t \right) ^{j-1} \right) ^{n-k} \right) } \right)+o{{(\Delta t)}^p}\right)k=f(t+aΔt,u+BΔt),B=j=1∑p​bj​(Δt)j−1k=f(t,u)+n=1∑p​n!1​(aΔt∂t∂​+BΔt∂u∂​)n(f)(t,u)+o(Δt)p=f(t,u)+n=1∑p​n!(Δt)n​k=0∑n​Cnk​akBn−k∂tk∂un−k∂nf(t,u)​+o(Δt)p=⎝⎛​f(t,u)+n=1∑p​⎝⎛​n!(Δt)n​k=0∑n​⎝⎛​Cn​kak(∂un−k∂tk∂n​f(t,u))(j=1∑p−n+1​bj​(Δt)j−1)n−k⎠⎞​⎠⎞​+o(Δt)p⎠⎞​

#阶数与格式选择
p,methedchoice:=5,5:
#计算优化部分的Maple实现,特别要注意学会unapply这个函数的使用
expand_series:=f(t,u)+add(dt^n/n!*add(binomial(n,k)*a^k*D[1$k,2$(n-k)](f)(t,u)*(add(b[j]*dt^(j-1),j=1..p-n+1))^(n-k),k=0..n),n=1..p):
coeffs_series:=coeff~(expand_series,dt,[seq](0..p)):
Strong_Taylor_series_expand:=unapply(coeffs_series,[a,b]):
#获取格式下系数
a,b,c,cs:=wholechoice[methedchoice]:
#计算格式级数
stage:=numelems(wholechoice[methedchoice][1]):
#k1赋值
k[1]:=[f(t,u),0$p]:
#计算剩余k
for i from 2 to stage dok[i]:=Strong_Taylor_series_expand(a[i],add(b[i][ha]*k[ha],ha=1..i-1));
end do:
#计算增量函数
test_coeff:=add(c[ha]*k[ha],ha=1..stage):

(三)一元泰勒展式

在“核心部分”中,为得到关于u的2~p阶表达式,我们不断对初始方程不断求导。高阶导数需要前几阶导数计算值,因此需要不断代换更新值。

ode[1]:=diff(u(t),t)=f(t,u(t)):
taylor_coeff[1]:=f(t,u):
subscombination:=ode[1]:
for i from 2 to p+1 doode[i]:=diff(u(t),t$i)=subs([subscombination],rhs(diff(ode[i-1],t)));taylor_coeff[i]:=subs(u(t)=u,rhs(ode[i]))/i!;#print(%);subscombination:=subscombination,ode[i];
end do:
standard_coeff:=[seq](taylor_coeff[i],i=1..p+1):

(四)最终测试

不出意外,对于p阶格式的精度证明,standard_coeff与test_coeff做差结果是前p项均为0。在结果表示中,D为微分算子,Dn个1,m个2表示对第一个变量求n阶导且对第二个变量求m阶导。注意第p项表达式极为复杂,完全查看请在PC端浏览

simplify(standard_coeff-test_coeff)

[0,0,0,0,0,(D2,2,2,2,2)(f)(t,u)(f(t,u))5648000+(10(D2,2,2)(f)(t,u)(D2,2)(f)(t,u)+5(D2,2,2,2)(f)(t,u)D2(f)(t,u)+5(D1,2,2,2,2)(f)(t,u))(f(t,u))4648000+(−15(D2,2,2)(f)(t,u)(D2(f)(t,u))2+(−10((D2,2)(f)(t,u))2+10(D1,2,2,2)(f)(t,u))D2(f)(t,u)+20(D1,2,2)(f)(t,u)(D2,2)(f)(t,u)+20(D2,2,2)(f)(t,u)(D1,2)(f)(t,u)+10(D2,2,2,2)(f)(t,u)D1(f)(t,u)+10(D1,1,2,2,2)(f)(t,u))(f(t,u))3648000+(165(D2(f)(t,u))3(D2,2)(f)(t,u)−45(D1,2,2)(f)(t,u)(D2(f)(t,u))2−40D2(f)(t,u)(D1,2)(f)(t,u)(D2,2)(f)(t,u)+(10((D2,2)(f)(t,u))2+30(D1,2,2,2)(f)(t,u))D1(f)(t,u)+40(D1,2,2)(f)(t,u)(D1,2)(f)(t,u)+10(D2,2,2)(f)(t,u)(D1,1)(f)(t,u)+10(D2,2)(f)(t,u)(D1,1,2)(f)(t,u)+10(D1,1,1,2,2)(f)(t,u))(f(t,u))2648000+(−180(D2(f)(t,u))5+180(D2(f)(t,u))3(D1,2)(f)(t,u)+(150D1(f)(t,u)(D2,2)(f)(t,u)−30(D1,1,2)(f)(t,u))(D2(f)(t,u))2+(−30(D1,2,2)(f)(t,u)D1(f)(t,u)−10(D1,1)(f)(t,u)(D2,2)(f)(t,u)−40((D1,2)(f)(t,u))2−10(D1,1,1,2)(f)(t,u))D2(f)(t,u)+15(D2,2,2)(f)(t,u)(D1(f)(t,u))2+(20(D1,2)(f)(t,u)(D2,2)(f)(t,u)+30(D1,1,2,2)(f)(t,u))D1(f)(t,u)+20(D1,2,2)(f)(t,u)(D1,1)(f)(t,u)+20(D1,2)(f)(t,u)(D1,1,2)(f)(t,u)+5(D1,1,1,1,2)(f)(t,u))f(t,u)648000−(D2(f)(t,u))4D1(f)(t,u)3600+(D2(f)(t,u))2(D1,2)(f)(t,u)D1(f)(t,u)3600+(−15(D1(f)(t,u))2(D2,2)(f)(t,u)−30(D1,1,2)(f)(t,u)D1(f)(t,u)−20(D1,1)(f)(t,u)(D1,2)(f)(t,u)−5(D1,1,1,1)(f)(t,u))D2(f)(t,u)648000+(D1,2,2)(f)(t,u)(D1(f)(t,u))243200+(10(D1,1)(f)(t,u)(D2,2)(f)(t,u)+10(D1,1,1,2)(f)(t,u))D1(f)(t,u)648000+(D1,1,2)(f)(t,u)(D1,1)(f)(t,u)64800+(D1,1,1,1,1)(f)(t,u)648000][0,0,0,0,0,{\frac { \left( D_{{2,2,2,2,2}} \right) \left( f \right) \left( t,u \right) \left( f \left( t,u \right) \right) ^{5}}{648000 }}+{\frac { \left( 10\, \left( D_{{2,2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) +5\, \left( D_{{2,2,2,2}} \right) \left( f \right) \left( t,u \right) D_{{2}} \left( f \right) \left( t,u \right) +5\, \left( D_{{1,2,2,2,2}} \right) \left( f \right) \left( t,u \right) \right) \left( f \left( t,u \right) \right) ^{4 }}{648000}}+{\frac { \left( -15\, \left( D_{{2,2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{2}+ \left( -10\, \left( \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) \right) ^{2}+10\, \left( D_{{1,2,2,2}} \right) \left( f \right) \left( t,u \right) \right) D_{{2}} \left( f \right) \left( t,u \right) +20\, \left( D_{ {1,2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{2,2 }} \right) \left( f \right) \left( t,u \right) +20\, \left( D_{{2,2, 2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1,2}} \right) \left( f \right) \left( t,u \right) +10\, \left( D_{{2,2,2, 2}} \right) \left( f \right) \left( t,u \right) D_{{1}} \left( f \right) \left( t,u \right) +10\, \left( D_{{1,1,2,2,2}} \right) \left( f \right) \left( t,u \right) \right) \left( f \left( t,u \right) \right) ^{3}}{648000}}+{\frac { \left( 165\, \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{3} \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) -45\, \left( D_{{1,2,2} } \right) \left( f \right) \left( t,u \right) \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{2}-40\,D_{{2}} \left( f \right) \left( t,u \right) \left( D_{{1,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) + \left( 10\, \left( \left( D_{ {2,2}} \right) \left( f \right) \left( t,u \right) \right) ^{2}+30 \, \left( D_{{1,2,2,2}} \right) \left( f \right) \left( t,u \right) \right) D_{{1}} \left( f \right) \left( t,u \right) +40\, \left( D_{ {1,2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1,2 }} \right) \left( f \right) \left( t,u \right) +10\, \left( D_{{2,2, 2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1,1}} \right) \left( f \right) \left( t,u \right) +10\, \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1,1,2}} \right) \left( f \right) \left( t,u \right) +10\, \left( D_{{1,1,1, 2,2}} \right) \left( f \right) \left( t,u \right) \right) \left( f \left( t,u \right) \right) ^{2}}{648000}}+{\frac { \left( -180\, \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{5}+180 \, \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{3} \left( D_{{1,2}} \right) \left( f \right) \left( t,u \right) + \left( 150\,D_{{1}} \left( f \right) \left( t,u \right) \left( D_{{ 2,2}} \right) \left( f \right) \left( t,u \right) -30\, \left( D_{{1 ,1,2}} \right) \left( f \right) \left( t,u \right) \right) \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{2}+ \left( -30 \, \left( D_{{1,2,2}} \right) \left( f \right) \left( t,u \right) D_ {{1}} \left( f \right) \left( t,u \right) -10\, \left( D_{{1,1}} \right) \left( f \right) \left( t,u \right) \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) -40\, \left( \left( D_ {{1,2}} \right) \left( f \right) \left( t,u \right) \right) ^{2}-10 \, \left( D_{{1,1,1,2}} \right) \left( f \right) \left( t,u \right) \right) D_{{2}} \left( f \right) \left( t,u \right) +15\, \left( D_{ {2,2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1}} \left( f \right) \left( t,u \right) \right) ^{2}+ \left( 20\, \left( D_{{1,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) +30\, \left( D_{{1,1,2,2}} \right) \left( f \right) \left( t,u \right) \right) D_{{1}} \left( f \right) \left( t,u \right) +20\, \left( D_{ {1,2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1,1 }} \right) \left( f \right) \left( t,u \right) +20\, \left( D_{{1,2} } \right) \left( f \right) \left( t,u \right) \left( D_{{1,1,2}} \right) \left( f \right) \left( t,u \right) +5\, \left( D_{{1,1,1,1 ,2}} \right) \left( f \right) \left( t,u \right) \right) f \left( t ,u \right) }{648000}}-{\frac { \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{4}D_{{1}} \left( f \right) \left( t,u \right) }{3600}}+{\frac { \left( D_{{2}} \left( f \right) \left( t,u \right) \right) ^{2} \left( D_{{1,2}} \right) \left( f \right) \left( t,u \right) D_{{1}} \left( f \right) \left( t,u \right) }{ 3600}}+{\frac { \left( -15\, \left( D_{{1}} \left( f \right) \left( t ,u \right) \right) ^{2} \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) -30\, \left( D_{{1,1,2}} \right) \left( f \right) \left( t,u \right) D_{{1}} \left( f \right) \left( t,u \right) -20\, \left( D_{{1,1}} \right) \left( f \right) \left( t,u \right) \left( D_{{1,2}} \right) \left( f \right) \left( t,u \right) -5\, \left( D_{{1,1,1,1}} \right) \left( f \right) \left( t ,u \right) \right) D_{{2}} \left( f \right) \left( t,u \right) }{ 648000}}+{\frac { \left( D_{{1,2,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1}} \left( f \right) \left( t,u \right) \right) ^{2}}{43200}}+{\frac { \left( 10\, \left( D_{{1,1}} \right) \left( f \right) \left( t,u \right) \left( D_{{2,2}} \right) \left( f \right) \left( t,u \right) +10\, \left( D_{{1,1,1, 2}} \right) \left( f \right) \left( t,u \right) \right) D_{{1}} \left( f \right) \left( t,u \right) }{648000}}+{\frac { \left( D_{{1 ,1,2}} \right) \left( f \right) \left( t,u \right) \left( D_{{1,1}} \right) \left( f \right) \left( t,u \right) }{64800}}+{\frac { \left( D_{{1,1,1,1,1}} \right) \left( f \right) \left( t,u \right) }{648000}}][0,0,0,0,0,648000(D2,2,2,2,2​)(f)(t,u)(f(t,u))5​+648000(10(D2,2,2​)(f)(t,u)(D2,2​)(f)(t,u)+5(D2,2,2,2​)(f)(t,u)D2​(f)(t,u)+5(D1,2,2,2,2​)(f)(t,u))(f(t,u))4​+648000(−15(D2,2,2​)(f)(t,u)(D2​(f)(t,u))2+(−10((D2,2​)(f)(t,u))2+10(D1,2,2,2​)(f)(t,u))D2​(f)(t,u)+20(D1,2,2​)(f)(t,u)(D2,2​)(f)(t,u)+20(D2,2,2​)(f)(t,u)(D1,2​)(f)(t,u)+10(D2,2,2,2​)(f)(t,u)D1​(f)(t,u)+10(D1,1,2,2,2​)(f)(t,u))(f(t,u))3​+648000(165(D2​(f)(t,u))3(D2,2​)(f)(t,u)−45(D1,2,2​)(f)(t,u)(D2​(f)(t,u))2−40D2​(f)(t,u)(D1,2​)(f)(t,u)(D2,2​)(f)(t,u)+(10((D2,2​)(f)(t,u))2+30(D1,2,2,2​)(f)(t,u))D1​(f)(t,u)+40(D1,2,2​)(f)(t,u)(D1,2​)(f)(t,u)+10(D2,2,2​)(f)(t,u)(D1,1​)(f)(t,u)+10(D2,2​)(f)(t,u)(D1,1,2​)(f)(t,u)+10(D1,1,1,2,2​)(f)(t,u))(f(t,u))2​+648000(−180(D2​(f)(t,u))5+180(D2​(f)(t,u))3(D1,2​)(f)(t,u)+(150D1​(f)(t,u)(D2,2​)(f)(t,u)−30(D1,1,2​)(f)(t,u))(D2​(f)(t,u))2+(−30(D1,2,2​)(f)(t,u)D1​(f)(t,u)−10(D1,1​)(f)(t,u)(D2,2​)(f)(t,u)−40((D1,2​)(f)(t,u))2−10(D1,1,1,2​)(f)(t,u))D2​(f)(t,u)+15(D2,2,2​)(f)(t,u)(D1​(f)(t,u))2+(20(D1,2​)(f)(t,u)(D2,2​)(f)(t,u)+30(D1,1,2,2​)(f)(t,u))D1​(f)(t,u)+20(D1,2,2​)(f)(t,u)(D1,1​)(f)(t,u)+20(D1,2​)(f)(t,u)(D1,1,2​)(f)(t,u)+5(D1,1,1,1,2​)(f)(t,u))f(t,u)​−3600(D2​(f)(t,u))4D1​(f)(t,u)​+3600(D2​(f)(t,u))2(D1,2​)(f)(t,u)D1​(f)(t,u)​+648000(−15(D1​(f)(t,u))2(D2,2​)(f)(t,u)−30(D1,1,2​)(f)(t,u)D1​(f)(t,u)−20(D1,1​)(f)(t,u)(D1,2​)(f)(t,u)−5(D1,1,1,1​)(f)(t,u))D2​(f)(t,u)​+43200(D1,2,2​)(f)(t,u)(D1​(f)(t,u))2​+648000(10(D1,1​)(f)(t,u)(D2,2​)(f)(t,u)+10(D1,1,1,2​)(f)(t,u))D1​(f)(t,u)​+64800(D1,1,2​)(f)(t,u)(D1,1​)(f)(t,u)​+648000(D1,1,1,1,1​)(f)(t,u)​]

结束语

以上。如果有感兴趣朋友,可以进QQ群836204107获取更多Maple相关资源。Maple技术交互研讨群欢迎每一位志同道合朋友!

龙格库塔格式的计算精度推导相关推荐

  1. 4阶经典龙格库塔格式

    %用途:4阶经典龙格库塔格式解常微分方程组y'=f(x,y),y(x0)=y0 %格式:[x,y]=marunge4s(dyfun,xspan,y0,h) %dyfun为向量函数f(x,y),xspa ...

  2. 龙格库塔法matlab求解微分方程组,微分方程组的龙格库塔公式求解matlab版.pdf

    微分方程组的龙格库塔公式求解matlab版 微分方程组的龙格-库塔公式求解matlab版 南京大学 王寻 1. 一阶常微分方程组 考虑方程组     y'f x,y,z , y x y ...

  3. 二阶龙格库塔公式推导_二阶龙格—库塔公式.PPT

    二阶龙格-库塔公式 第一节 常微分方程 第二节 欧拉方法 第三节 龙格-库塔法 在上一节中,我们得到了一些求微分方程近似解的数值方法,这些方法的局部截断误差较大,精度较低,我们希望得到有更高阶精度的方 ...

  4. [计算机数值分析]四阶龙格-库塔经典格式解常微分方程的初值问题

    龙格-库塔方法的设计思想: 四阶龙格-库塔方法的经典格式: 程序设计框图: 例:设取步长h=0.2,从x=0到x=1用四阶经典格式解决以下常微分方程的初值问题. 运行示例: 源码: #include& ...

  5. 四阶龙格库塔方程(Rungekutta)解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Matlab代码

    今年年初的时候给师姐做了DDPG算法的船舶减横摇控制算法,师姐还有想法要让我把纵摇-埀荡两个自由度的减摇也做出来,这个任务归我了.实际上不管是多少个自由度的减摇,其实都需要解运动方程,当初做单自由度横 ...

  6. 四阶龙格库塔方程解二阶常微分方程组并计算船舶在迎浪下的纵摇埀荡耦合运动方程-附Python代码

    0 写在前面 这篇博客是在将我上一篇博客的matlab代码移植到python中,应为后续要开展深度强化学习下的船舶减摇研究,总的来说还是在python上做这项工作比较合适.具体方程的解法和背景不在赘述 ...

  7. 一阶欧拉近似matlab,MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程.doc

    MATLAB改进欧拉法与四阶龙格-库塔求解一阶常微分方程 姓名:樊元君 学号:2012200902 日期:2012.11.06 一.实验目的 掌握改进欧拉法与四阶龙格-库塔求解一阶常微分方程的初值问题 ...

  8. 龙格-库塔(Runge-Kutta)方法数学原理及实现

    参考:https://blog.csdn.net/u013007900/article/details/45922331 龙格-库塔(Runge-Kutta)方法 龙格-库塔(Runge-Kutta) ...

  9. [常微分方程的数值解法系列五] 龙格-库塔(RK4)法

    龙格-库塔法 简介 基本思想 具体方法 一阶 二阶 求解参数 特殊二阶 三阶 高阶 步长选择 例子 在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其 ...

  10. 常见的数值积分方法_欧拉积分/中值积分/龙格-库塔积分

    参考:常见的数值积分方法 (欧拉.中值.龙格-库塔,[常用于IMU中]) 1. 积分基本概念 设F(x)为函数f(x)的一个原函数,我们把函数f(x)的所有原函数F(x)+C(C为任意常数)叫做函数f ...

最新文章

  1. 【c语言】蓝桥杯基础练习 时间转换
  2. git如何强制用远程分支更新本地
  3. 台湾高僧称游戏中杀人是罪业死后要下地狱
  4. 使用设备mac好还是随机mac好_省4000我给MBP16搭配了一块2T SSD:希捷 酷鱼飞翼 Fast SSD使用测评...
  5. 自己写一个java.lang.reflect.Proxy代理的实现
  6. GARFIELD@11-11-2004
  7. layUI数据表格可编辑扩展日期框
  8. java核心技术卷——学习笔记(一)
  9. 推荐一款.NET开源免费的图表控件ScottPlot
  10. 短信验证码功能(阿里云版)
  11. Java日期查询:日、周、旬、月、季度、年等时间操作
  12. 网站文章采集与伪原创技巧
  13. 树莓派homebridge开机启动和后台运行
  14. 计算机应用基础(专)【9】
  15. [问题]mpu9250+bmp280数据读取
  16. 通过icon hash查IP地址
  17. android Toast
  18. 超市进销存管理系统软件(JFrame简版)
  19. 云安全问题及其解决方案
  20. 进不去chatgpt来加入新必应new bing吧,怎么申请newbing,出错了怎么解决

热门文章

  1. Cisco Packet Tracer教程
  2. Eplan教学视频合集-百度网盘-收集于网络,供参考
  3. pano2VR只更换全景图片
  4. 自动驾驶技术之——无人驾驶中的CAN总线
  5. xshell通过隧道连接_如何在xshell中创建一个SSH隧道
  6. 60个经典的电脑技巧!每一个都超实用!
  7. python实现手机通讯录_Python 实现简单的电话本功能
  8. 微信公众号开发(1)微信公众号简介
  9. 开源项目推荐:SCADA组态软件Qt,kanzi,C#,MFC和WEB大全(收藏版)
  10. 吉林大学 校园网 认证相关 (SUSPEND)