second order finite difference scheme
Afficher commentaires plus anciens
I am given data t=[0 1 2 3 4 5] and y(t)=[1 2.7 5.8 6.6 7.5 9.9] and have to evaluate the derivative of y at each given t value using the following finite difference schemes.
(y(t+h)−y(t−h))/2h =y′(t)+O(h^2)
(−y(t+2h)+4y(t+h)−3y(t))/2h =y′(t)+O(h^2)
(y(t−2h)−4y(t−h)+3y(t))/2h =y′(t)+O(h^2)
I started the code, but I haven't learned what to do in the second order case. This what I have so far for the first given equation:
t= 0: 1: 5;
y(t)= [1 2.7 5.8 6.6 7.5 9.9];
n=length(y);
dfdx=zeros(n,1);
dfdx(t)=(y(2)-y(1))/(t(2)-t(1));
for i=2:n-1
dfdx(1)=(y(i+1)-y(i-1))/(t(i+1)-t(i-1));
end
dfdx(n)=(y(n)-y(n-1))/(t(n)-t(n-1));
the error that returns is "Subscript indices must either be real positive integers or logicals." referencing my use of y(t). How do I fix this to make my code correct?
1 commentaire
Rena Berman
le 14 Mai 2020
(Answers Dev) Restored edit
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!