Это не имеет ничего общего с 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 || )
с ||.||
, обозначающим супремум-норму функции (то есть четвертая производная от L должна быть ограничена).В случае, если это правда, вы можете использовать эту формулу, чтобы вычислить, как мало h нужно выбрать, чтобы получить результат, который вы готовы принять.Обратите внимание, однако, что это только теоретическая ошибка, которая является следствием анализа приближения Тейлора L, см. [1] или [2] - это то, где я получил это мгновение назад - или любой другойвводная книга по численной математике.Вы можете получить дополнительные ошибки в зависимости от качества оценки L;также, если |L(x-h) - L(x)|
очень мало, численное вычитание может быть плохо обусловлено.
[1] Кнабнер, Ангерманн;Нумерик ПартиеллерSpringer
[2] http://math.fullerton.edu/mathews/n2003/numericaldiffmod.html