2025-11-08 05:30:50
matlab用固定步长计算是因为数值积分和微分方程这类运算需要按预设间隔逐点推进,就像走路要固定迈步大小。步长不同就像有人走小碎步有人大跨步,小步长虽然精确但计算量翻倍,大步长虽然快但容易出错。比如积分sin(t)从0到pi,步长0.1用100步算误差才0.002,而步长1.0用10步算误差就到了0.3,这就像用不同密度的棉被盖人,薄的被不够保暖,厚的被反而压人。
这答案是因为数值计算本质是无限精度问题的有限近似。步长越小,计算点越密,越接近真实函数曲线,但计算量呈指数级增长。比如微分方程dy/dt=1,步长0.1用100步算,y终值约10.005;步长0.5用20步算,y终值约10.502,误差0.497。根据龙格-库塔公式,步长和误差呈1/2次方关系,当步长从0.1变0.5,误差理论值会扩大4倍。但实际计算中步长过小可能触发浮点精度问题,比如步长1e-8时积分结果反而出现震荡,这就像用放大镜看水波纹,反而看不实波动。
本题链接: