How to find curvature as a function of temperature
2 次查看(过去 30 天)
显示 更早的评论
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..
采纳的回答
Roger Stafford
2013-6-11
编辑:Roger Stafford
2013-6-11
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.
更多回答(1 个)
Youssef Khmou
2013-6-10
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');
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!