ZKX's LAB

欧拉法和龙格-库塔方法 取h=0.2,用四阶经典的龙格一库塔方法求解下列初值问题;

2020-07-22知识5

用C#编写一段代码,实现欧拉格式和龙格库塔格式。这里有一段C语言的代码,怎么改写成C#? 直接粘过去就行了…只需要把2.0改成2或者(float)2.0就行了使用MATLAB,用龙格库塔求解,要求解小数点后7位 所有的微分方程数值方法都是可以依靠缩短微分步长提高精度的,欧拉法大约每缩短一半步长,误差减少约一半,而四阶龙格库塔法每减少一半步长,误差约减少至1/16,所以你要提高精度,完全就是靠缩短步长即可,它的误差是O(h^4),当h时,它的截断误差已经小于1E-8。绘图简单,就是plot(x,y)取h=0.2,用四阶经典的龙格一库塔方法求解下列初值问题; 数值求解,通俗来讲就是对一个难以得到解析解的方程,通过数学上的一些定理,在离散的点上得到具体的数值。结果必须是具体的数字,同时需要一定的边界条件。以dy/dx=y-2x/y,其中初始条件y(0)=1为例,通过MATLAB编程实现四阶龙格-库塔算法,并将结果与改进的欧拉算法进行对比。这种算法保持了四阶龙格-库塔法精度高的优点,而且数值积分程序计算量小,仿真速度较之一般实时四阶龙格-库塔法可提高约3.5位。扩展资料:注意事项:有更为有效的积分法,其局部误差是二阶或更高阶,如二阶龙格库塔法,只需要把x∧(t+dt):=x∧(t)+fx∧(t),u(t)·dt替换。注意在该表达式中,x∧Et+23dt可以理解为用欧拉法在时间t+23dt进行积分得到的值。方括号内是f(x(t),u(t))的估计值和fx∧t+23dt,ut+23dt的估计值的平均值。其局部误差et是二阶的,因此该积分法具有更好的精度。参考资料来源:-龙格库塔法数值分析计算方法求解 欧拉法的局部截断误差的阶为O(h2);改进欧拉法的局部截断误差的阶为 O(h3);三阶龙格-库塔法的局部截断误差的阶为 O(h4).四阶龙格-库塔法的局部截断误差的阶为 O(h5).欧拉法的绝对稳定实区域为-2

#龙格库塔法

随机阅读

qrcode
访问手机版