How to find curvature as a function of temperature

Sir,
I have coordinates for series of temperature for a curve.. Now I need to find the curvature of this using mat lab.. Can any one help me solving this.
I have solved using coordinates at initial and final temperature with the following formula.
k=(d^2T/dx^2)/(1+(dT/dx)^2)^(3/2)
But how to find curvature as a function of temperature when i have coordinates for series of temperature...???
Please some one help me in solving so..
Thanking you in advance..

1 Comment

I've removed the people's email addresses from your tags.

Sign in to comment.

 Accepted Answer

You can find an approximate curvature from discrete data using the curvature of a circle which passes through three adjacent points in your curve and it can be considered the curvature associated with the center point. The accuracy depends on the accuracy of the data and how close together the points are - the closer, the less accurate. It uses the well-known formula stating that the curvature of a circle through three points is equal to four times the area of a triangle with those points as vertices divided by the product of its three sides.
Let x be a column vector of x data and T be a column vector of the corresponding temperature values. The x values do not have to be equally-spaced.
n = size(x,1);
dx = diff(x); dT = diff(T);
d = dx.^2+dT.^2;
K = 2*(dx(1:n-2).*dT(2:n-1)-dx(2:n-1).*dT(1:n-2)) ./ ...
sqrt(d(1:n-2).*d(2:n-1).*((x(3:n)-x(1:n-2)).^2+(T(3:n)-T(1:n-2)).^2));
K = [K(1);K;K(n-2)]; % Copy the two end values
K will be an n-length vector of the corresponding curvatures at each of the points. It is positive where curvature is upward and negative where it is downward. The pair of points at each end of necessity have equal curvatures since each end pair must use the same three points.
In case your data is too noisy for this technique to be accurate, there are ways of approximating curvature on sets of more than three points using least squares methods, but I don't have time at the present to work these out.

4 Comments

Sir,
How can i solve without involvement of vectors.. I just have 13 coordinates for each series of temperature.
so i think it has less accuracy..
If you mean that you have only 13 points on your x-T curve, then you are constrained to use some kind of approximation like the "circles" method. About the only method I can think of that might have superior accuracy would be fitting your curve with splines and evaluating the spline's curvature at each of the points.
I don't understand your statement about avoiding vectors. There is nothing inherent in vectors which would render a computation less accurate. It all depends on how the vectors are dealt with. In the method I showed you the curvature associated with each point is indeed that of a circle which passes through that point and its two neighbors, never mind that it is done with vectors.
Meshooo
Meshooo on 28 Nov 2014
Edited: Meshooo on 28 Nov 2014
It seems hard to find the curvature.
I'm also trying here:
Any suggestions will be very appreciated..

Sign in to comment.

More Answers (1)

hi,
You computed the curvature as function of temperature , then you have the initial and final values of the temperature, you can proceed as the following :
% given your vector K and boundaries values Ti Tf
N=length(K);
T=linspace(Ti,Tf,N);
figure, plot(T,K), xlabel(' Temperature'), ylabel(' Curvature');

1 Comment

No sir i have not computed curvature as a function of temperature. That is only my doubt how to find it..??

Sign in to comment.

Categories

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!