Хорошо, у меня проблема (возможно, проблема новичка), но здесь она идет:
for i=1:1:16;
h=10^(-i);
yDFC2(i)=(1/(2*1*h(i)))*(-1*valX+valX);
end
err2=abs(fDX(x1)-yDFC2);
loglog(h,err2,'b-');
Каждый раз, когда я запускаю этот код, он выдает мне следующую ошибку:
Попытка доступа к h (2);индексировать за пределами границ, потому что цифра (h) = 1
valX
- это переменная, рассчитанная путем определения изображения функции, введенной пользователем;fDX
является производной этой функции (обе работают хорошо).
Это предназначено для построения расстояния (h
) в сравнении с ошибкой в центральных конечных разностях (CFD).Формула внутри цикла - это производная 1-го порядка, рассчитанная CFD для n=2
.
Интервал должен быть с шагом 10^(-i)
.
Если кто-нибудь может помочь мне понять этоЯ был бы очень благодарен.