Я пытаюсь написать программу в matlab, которая проверяет, насколько непротиворечивым становится определение производной:
(f(x+h)-f(x))/h ~= f'(x)
когда h
достаточно мало. Пока у меня есть это:
function [errList] = diffConsistency(f,df,x,iMax,h0)
h=h0;
for i=1:iMax
leftSide = (f(x+h) - f(x)) / h;
rightSide = df(x);
errList = abs(leftSide - rightSide);
h = h*10^(-1);
end
Затем я использую f=@(x)sin(x)
и df=@(x)cosx
, я новичок в использовании дескрипторов функций, так что это может быть неправильно. iMax
имеет значение 10
и h0 = 1
, x=rand(10)
Может ли кто-нибудь проверить, является ли это хотя бы дистанционно правильным. Особенно использование функции обрабатывает внутри функции diffConsistency и использование rand
.
Должен ли я определить x по-другому, правая сторона слева правильна? и т.д.
Любая обратная связь поможет.
Заранее спасибо