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

4 次查看(过去 30 天)
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 ?

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Calculus 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by