How can I interpolate x and y data points in plot and slope (dy/dx) at any value of x?

3 ビュー (過去 30 日間)
MOHD UWAIS
MOHD UWAIS 2023 年 2 月 27 日
編集済み: Torsten 2023 年 2 月 27 日
clear all
clc
x=[15 20 25 30 35 40 45 50 55];
y=[11.89 11.845 11.85 11.855 11.865 11.93 12.01 12.2 12.77];
plot(x,y)

採用された回答

Torsten
Torsten 2023 年 2 月 27 日
編集済み: Torsten 2023 年 2 月 27 日
x=[15 20 25 30 35 40 45 50 55];
y=[11.89 11.845 11.85 11.855 11.865 11.93 12.01 12.2 12.77];
% Approximate dy/dx
dy = gradient(y,5);
hold on
yyaxis left
plot(x,y)
ylabel('y vs. x')
yyaxis right
plot(x,dy)
ylabel('dy/dx vs. x')
hold off
grid on
% interpolate y and dy/dx at x=x0
x0 = 22;
y0 = interp1(x,y,x0)
y0 = 11.8470
dy0 = interp1(x,dy,x0)
dy0 = -0.0020
  3 件のコメント
Torsten
Torsten 2023 年 2 月 27 日
編集済み: Torsten 2023 年 2 月 27 日
But you also didn't give us an equation for y in terms of x ... So isn't it natural that you also only get dy/dx as a vector of 9 values from the command dy = gradient(y,5) and that you have to interpolate between the values to get y and dy/dx for some given value of x in between 15 and 55 ?
MOHD UWAIS
MOHD UWAIS 2023 年 2 月 27 日
Thank you for your response

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

その他の回答 (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