Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Thread Subject:
Finding gradient on curve

Subject: Finding gradient on curve

From: Wen Zhe

Date: 29 Mar, 2010 22:03:09

Message: 1 of 3

Dear all,

I have a function u(t,x), which is dependent on both t and x. Now, i plotted a graph of u versus x, at various time points (i.e. i get several curves of u over x at different time points on the same plot).

The question is: how am i to find the gradient at a particular point on the graph? Let's say at u(t,2) and at all the time points?

I'm thinking of diff() and grad(). But what is the difference and how would i be able to set this up in my code?

Any help appreciated. Thankies!

Wendy

Subject: Finding gradient on curve

From: Roger Stafford

Date: 29 Mar, 2010 23:19:28

Message: 2 of 3

"Wen Zhe " <wenzhe2092@hotmail.com> wrote in message <hor82t$e7r$1@fred.mathworks.com>...
> Dear all,
>
> I have a function u(t,x), which is dependent on both t and x. Now, i plotted a graph of u versus x, at various time points (i.e. i get several curves of u over x at different time points on the same plot).
>
> The question is: how am i to find the gradient at a particular point on the graph? Let's say at u(t,2) and at all the time points?
>
> I'm thinking of diff() and grad(). But what is the difference and how would i be able to set this up in my code?
>
> Any help appreciated. Thankies!
>
> Wendy

  The functions, 'diff' and 'gradient', are considerably different. The 'gradient' function allows you to specify variable-length intervals within your two independent variables, t and x in this case, if you so choose. They do not have to be uniformly spaced apart. Also it returns both (all) components of a gradient calculation. However, be sure you read the description - the first component returned is for the second argument and visa-versa.

  I can't be certain, but I suspect the approximations made by 'gradient' are of a higher than first order, possibly a cubic. If not, there are undoubtedly some third-order gradients available in the file exchange. I recall I wrote one for one of these threads quite some time ago, but I can't remember how to locate it now.

  On the other hand 'diff' returns differences in only one direction - for you, in either the t direction or the x direction. Also it assumes that the corresponding spacing is always in unit-length intervals. In other words the values returned by 'diff' are strictly successive differences. Consequently there are one fewer of them in whatever direction it is taken than in the input variable, whereas the vector or matrix returned by 'gradient' is always the same size as its input argument.

Roger Stafford

Subject: Finding gradient on curve

From: Wen Zhe

Date: 31 Mar, 2010 08:20:31

Message: 3 of 3

Thanks for the reply Roger.

So which one would you recommend that i use? grad() or diff()?

Wendy

"Roger Stafford" <ellieandrogerxyzzy@mindspring.com.invalid> wrote in message <horci0$er4$1@fred.mathworks.com>...
> "Wen Zhe " <wenzhe2092@hotmail.com> wrote in message <hor82t$e7r$1@fred.mathworks.com>...
> > Dear all,
> >
> > I have a function u(t,x), which is dependent on both t and x. Now, i plotted a graph of u versus x, at various time points (i.e. i get several curves of u over x at different time points on the same plot).
> >
> > The question is: how am i to find the gradient at a particular point on the graph? Let's say at u(t,2) and at all the time points?
> >
> > I'm thinking of diff() and grad(). But what is the difference and how would i be able to set this up in my code?
> >
> > Any help appreciated. Thankies!
> >
> > Wendy
>
> The functions, 'diff' and 'gradient', are considerably different. The 'gradient' function allows you to specify variable-length intervals within your two independent variables, t and x in this case, if you so choose. They do not have to be uniformly spaced apart. Also it returns both (all) components of a gradient calculation. However, be sure you read the description - the first component returned is for the second argument and visa-versa.
>
> I can't be certain, but I suspect the approximations made by 'gradient' are of a higher than first order, possibly a cubic. If not, there are undoubtedly some third-order gradients available in the file exchange. I recall I wrote one for one of these threads quite some time ago, but I can't remember how to locate it now.
>
> On the other hand 'diff' returns differences in only one direction - for you, in either the t direction or the x direction. Also it assumes that the corresponding spacing is always in unit-length intervals. In other words the values returned by 'diff' are strictly successive differences. Consequently there are one fewer of them in whatever direction it is taken than in the input variable, whereas the vector or matrix returned by 'gradient' is always the same size as its input argument.
>
> Roger Stafford

Tags for this Thread

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Contact us