Taking derivative an array which is a numerical value with respect to another array
Show older comments
Hello,
I need to take a derive of an array (1*101) (which is numerical not analytical)
with respect to another array (1*101). How could I do that in Matlab? Any help please?
1 Comment
S. Gopal
on 31 Jan 2018
The same problem I am facing....please anybody help
Accepted Answer
More Answers (1)
pfb
on 2 May 2015
if f is the vector representing f(x) and x contains the corresponding abscissae
df = diff(f)./diff(x)
note that this has one less element than f and x. You can choose
xd = (x(1:end-1)+x(2:end))/2
(i.e. the halfway points) as the corresponding abscissae.
4 Comments
pfb
on 2 May 2015
What I suggest should work. If your numerical values for u are in a vector "u" and those for x are in a vector "x", of the same size as u, then
du = diff(u)./diff(x)
For instance, if u=f(x)=x^3 (I know that u here is "analytical", but for the purpose of the example it is numerical).
x = linspace(1,3,100);
u = x.^3;
then you get the derivative as
du = diff(u)./diff(x);
You can check this in a plot. As I said above, we have to assign the abscissae to du.
xd = (x(1:end-1)+x(2:end))/2;
Then plot dots for the numerical derivative
plot(xd,du,'.');
Hold the plot
hold;
and superimpose the (known, in this case) analytical derivative
plot(x,3*x.^2,'r');
Mohammad Abouali
on 3 May 2015
Edited: Mohammad Abouali
on 3 May 2015
Either use, sided stencil on the boundaries, or if you have boundary conditions use them to set some sort of ghost/dummy nodes.
If you are trying to handle the advective terms u.du/dx+v.du/dy ... in NS equation I suggest that you read Numerical Simulation in Fluid Dynamics: A Practical Introduction It gives a very nice introduction to numerical solutions of NS equations.
You can also look at some of the references in http://www.sciencedirect.com/science/article/pii/S1877050913003530
Meva
on 3 May 2015
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!