-1

我需要找到一个物体的加速度,文本中给出的公式是 a = d^2(L)/d(T)^2 ,其中 L= 长度和 T= 时间我在 matlab 中使用这个等式计算了这个

a = (1/(T3-T1))*(((L3-L2)/(T3-T2))-((L2-L1)/(T2-T1))) 

或者

a = (v2-v1)/(T2-T1) 

但我没有得到正确的答案,任何人都可以告诉我如何通过 matlab 中的任何其他方法找到(a)。

4

1 回答 1

5

这与matlab无关,您只是想对一个函数进行两次数值微分。根据函数的较高(3 次、4 次)导数的行为,这将或不会产生合理的结果。|T3 - T1|^2假设 L 是四次可微的,您还必须预期使用与您使用的公式类似的公式会出现顺序错误。您可以尝试使用对称近似值,而不是使用不同大小的间隔,例如

v (x) = (L(x-h) - L(x+h))/ 2h
a (x) = (L(x-h) - 2 L(x) + L(x+h))/ h^2 

从我的数值数学讲座中回忆起,这更适合高阶导数的数值计算。您仍然会收到订单错误

C |h|^2, with C = O( ||d^4 L / dt^4 || )

with||.||表示函数的上范数(即 L 的四阶导数需要有界)。如果这是真的,您可以使用该公式来计算必须选择多小的 h 才能产生您愿意接受的结果。但是请注意,这只是理论误差,它是对 L 的泰勒近似分析的结果,请参见 [1] 或 [2]——这是我刚才得到它的地方——或任何其他数值数学入门书。根据 L 的评估质量,您可能会得到额外的错误;此外,如果|L(x-h) - L(x)|是非常小的数值减法可能是病态的。

[1] 克纳布纳,安格曼;Numerik partieller Differentialgleichungen; 施普林格

[2] http://math.fullerton.edu/mathews/n2003/numericaldiffmod.html

于 2011-11-27T14:20:01.430 回答