Я пытаюсь написать программу в 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 по-другому, левая сторона правильная? так далее
Любой отзыв поможет. заранее спасибо
h
? - person EdR   schedule 01.05.2018