Why am I getting this Error Message?

I am trying to take the second order of central difference derivative of a set data that was provided, why did I get an error message like this? I checked the formula many many times and it is correct. Don't know why, since the first order derivative works perfectly.

1 件のコメント

dpb
dpb 2020 年 6 月 21 日
What is height(j-1) when j==1?

サインインしてコメントする。

回答 (1 件)

Monalisa Pal
Monalisa Pal 2020 年 6 月 21 日

0 投票

Becasue the loop starts from j = 1 and when you are trying to access height(j-1) on line 6 during slope1 evaluation height(0) becomes undefined. You may follow this link for more description: https://www.mathworks.com/matlabcentral/answers/494553-first-and-second-order-central-difference
In short your for loop can start from 2 and you calculate slope(1) separately. Or you may skip slope1 calculation when j = 1 as follows:
for j = 1:length(height)-1
slope(j) = (height(j+1) - height(j))/h;
if j ~=1
slope1(j) = (height(j+1) - 2*height(j) + height(j-1))/h^2;
end
end

1 件のコメント

Zifeng Qiu
Zifeng Qiu 2020 年 6 月 21 日
Thank you, this is super helpful

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

質問済み:

2020 年 6 月 21 日

コメント済み:

2020 年 6 月 21 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by