Smoothing Numerical Differentiation Result

8 ビュー (過去 30 日間)
Ahmed Zankoor
Ahmed Zankoor 2018 年 4 月 23 日
コメント済み: Ahmed Zankoor 2018 年 4 月 26 日
I want to get the derivative of this S-shaped curve this way (x*(dy/dx)) which is expected to be like the normal distribution bell-shaped curve, I used x(2:end).*diff(y)./diff(x) , gradient function and central difference method. but the result was very noisy since it is a numerical differentiation. My question, is there a way to smooth the result to get a better derivative curve?

採用された回答

Jim Riggs
Jim Riggs 2018 年 4 月 23 日
編集済み: Jim Riggs 2018 年 4 月 23 日
The attached file contains some higher-order methods for computing numerical derivatives. You can start with this. For very well behaved data, further smoothing might be achieved by curve fitting a function to the data and using the function derivative. If a more general method is desired, there are a number of ways to filter noisy data (for example, Matlab function "filter").
  4 件のコメント
Ahmed Zankoor
Ahmed Zankoor 2018 年 4 月 25 日
The problem that I can not understand is that the data I want to find the derivative for is not that noisy yet I get a bad derivative, you can see the attached figures. So I do not think it needs filtering.
Ahmed Zankoor
Ahmed Zankoor 2018 年 4 月 26 日
I found the problem, the x variable is generated using normrnd (random variables following normal distribution) and the differences between the values vary greatly. for example dx=[.2 .01 ...] that is why when we compute the derivative its values show heavy noise.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeInterpolation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by