3-d order derivative
Mostrar comentarios más antiguos
Dear all,
there is the following problem with the calculation of a 3-d order derivative.
I have two vectors of lambda and refractive index, respectively. I take the 3-d order derivative using a gradient().
dndl=gradient(n)./gradient(lambda);
d2ndl2=gradient(dndl)./gradient(lambda);
d3ndl3=gradient(d2ndl2)./gradient(lambda);
When I use a relatively small number of points (for example 3000) , I get a smooth plot.

In the case of more points (30 000) there is some oscillation in the plot.

What is the reason of such behavior?
Thank you a lot.
2 comentarios
Matt J
el 13 de Feb. de 2022
What do you mean by "use more points"? If it's a different input array why expect the same results?
Max Demesh
el 13 de Feb. de 2022
Respuestas (3)
Catalytic
el 13 de Feb. de 2022
1 voto
If the points are too close together, the difference between neighbours will be so small as to be dominated by floating point errors
1 comentario
Max Demesh
el 13 de Feb. de 2022
Matt J
el 13 de Feb. de 2022
0 votos
You could try diff(x,3)
2 comentarios
Max Demesh
el 14 de Feb. de 2022
Matt J
el 14 de Feb. de 2022
Why care whether its forward or central? For a smooth curve, it should work out the same.
Max Demesh
el 14 de Feb. de 2022
0 votos
Categorías
Más información sobre Linear Algebra en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!