interp1 fails to interpolate correctly
8 ビュー (過去 30 日間)
古いコメントを表示
I have a set of input data which the function interp1 is incorrectly interpolating.
For a statement Vq = interp1(X,V,Xq), I have
X =
-0.0124393747904463
0.0134396235257952
0.0344412390769423
0.0850313641677704
0.0850004675375172
0.126329531171773
V =
-4
-2
0
2
4
6
Clq =
0.0772456107479591
The result interp1 gives me is Vq = 3.3864734865877. This is clearly wrong, but may be related to the face that between V = 4 and V =6, X is not monotonically increasing/decreasing. Can someone help me understand why this is failing?
0 件のコメント
採用された回答
その他の回答 (1 件)
Vladimir Sovkov
2019 年 11 月 18 日
Why do you consider it is wrong? In the plot (see the attachment) this result looks quite reasonable.
5 件のコメント
Walter Roberson
2019 年 11 月 19 日
polynomial fits cannot solve double-valued functions.
Sometimes you should use a function of two variables instead.
Sometimes you can rewrite as a parameteric function.
Sometimes you just need to segment to decide which function is in control. For example hysterisis has to be handled as a pair of functions, not by trying to fit one single function.
Vladimir Sovkov
2019 年 11 月 19 日
Maybe, switching roles of X and V can help, e.g.:
VV=fzero(@(z)(interp1(V,X,z)-Clq),1)
VV=1.69220264208349
参考
カテゴリ
Help Center および File Exchange で Interpolation of 2-D Selections in 3-D Grids についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!