дифференциация в Matlab - PullRequest
       96

дифференциация в Matlab

0 голосов
/ 27 ноября 2011

Мне нужно найти ускорение объекта, формула которого приведена в тексте: 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.

1 Ответ

5 голосов
/ 27 ноября 2011

Это не имеет ничего общего с 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

...