Plot a curve with its derivatives

12 visualizaciones (últimos 30 días)
Alexandra McClernon Ownbey
Alexandra McClernon Ownbey el 4 de Feb. de 2020
Comentada: Alexandra McClernon Ownbey el 4 de Feb. de 2020
I have data with the following information and coordinates (not the actual numbers, just an example):
X Y dY/dX d2Y/dX2
4 0.3 5e-4 4.1e-5
5 0.4 1e-4 3e-4
In the example, there are only two points, but in the data, I have over 1000. I would like to plot the curve defined by the x and y-coordinates while maintaining the 1st and 2nd derivatives at each point. Is there a way to do this in matlab? I am not looking to use a linear fit curve. Each x-y value is given its own 1st and 2nd derivative.
  3 comentarios
Alexandra McClernon Ownbey
Alexandra McClernon Ownbey el 4 de Feb. de 2020
Editada: Alexandra McClernon Ownbey el 4 de Feb. de 2020
If I plot a curve in matlab (or any software) with x-y coordinates, it basically interpolates a line (via e.g. taylor series) between the points to make it continuous. So if I have 4 points that I plot, I get a curve; however, the slope (derivative) at those points are then defined by whatever interpolation or curve the software uses to connect the points. I would like to define what the slope is at each point.
These points are 2nd order accurate, I would like to maintain that accuracy. If I just input points to plot, I lose my accuracy.
I don't think I can create a function for the points - they are coordinates for a nozzle.
Alexandra McClernon Ownbey
Alexandra McClernon Ownbey el 4 de Feb. de 2020
The only thing I can think of is to use taylor series to add points just after and before the points i have to make sure the derivative is correct

Iniciar sesión para comentar.

Respuestas (1)

J. Alex Lee
J. Alex Lee el 4 de Feb. de 2020
As far as I know, matlab's plot function will draw a straight line (linear interpolation) between adjacent points.
For your case, at every point you have a fully specified parabola, so you can draw as refined a plot as you would like around each point.
You could try plotting the parabola around each point, say from mid-way between it and the previous, and mid-way between it and the next, and look at the result. I suspect you won't get a continuous curve though.
I think that at best you will be able to find x-positions between the specified points where the parabolas will meet, but they will not be ensured to have matched slopes (and definitely not 2nd derivatives).
  1 comentario
Alexandra McClernon Ownbey
Alexandra McClernon Ownbey el 4 de Feb. de 2020
I just ended up using taylor series to approximate coordinates above and below each given coordinate using a extremely small dx.

Iniciar sesión para comentar.

Categorías

Más información sobre Interpolation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by