Plot Y derivative and find resulting X value minimum
이 질문을 팔로우합니다.
- 팔로우하는 게시물 피드에서 업데이트를 확인할 수 있습니다.
- 정보 수신 기본 설정에 따라 이메일을 받을 수 있습니다.
오류 발생
페이지가 변경되었기 때문에 동작을 완료할 수 없습니다. 업데이트된 상태를 보려면 페이지를 다시 불러오십시오.
이전 댓글 표시
0 개 추천
, I have X and Y data as time and distance. I would like to find the derivative the Y values and plot this. Therefore yielding an acceleration time graph (2nd derivative). Next it is necessary to calculate the minimum of this curve. How do I find the derivative of the entire Y column to generate the new plot and then do I calculate the minimum with fminbnd? Thank yo.
채택된 답변
Star Strider
2015년 11월 23일
Use the gradient function to calculate the first derivative, the del2 function to calculate the second derivative, and the min function to find the minimum.
댓글 수: 8
Thanks Star Strider, how do I plot the 2nd derivative?
My pleasure.
The results of both the gradient and del2 functions return vectors the same lengths as the input vector, so you would plot them as, for example:
t = linspace(0, 1);
y = exp(-5*t) .* sin(6*pi*t);
dydt = gradient(y,t);
d2ydt2 = del2(y,t);
figure(1)
plot(t, y*10)
hold on
plot(t, dydt)
plot(t, d2ydt2)
hold off
grid
legend('y(t) x 10', 'dy/dt', 'd^2y/dt^2')
I multiplied ‘y(t)’ by 10 in the plot, only to make it more easily visible.
many thanks, this appears perfect. I was thinking about the mathematics where:
derivative one then
derivative two then
plot 2 then
find 2 minimum value.
G.
My pleasure.
To get the minimum, use the min function, preferably with two outputs:
[d2_min, idx] = min(d2ydt2); % Minimum Of ‘d2ydt2’
t_min = t(idx); % Time At Minimum
. . . CODE . . .
plot(t_min, d2_min, 'bp') % Plot Minimum Of ‘d2ydt2’
This returns the minimum of the second derivative and the corresponding time it occurs. The plot call then plots the minimum with a blue five-pointed star. (You will have to put those in the appropriate places in your code.) You can also determine the corresponding values of your other data at the time the minimum of the second derivative occurs by referencing them with the ‘idx’ index variable, just as I did to determine ‘t_min’.
If there are several values equal to the minimum, the min function returns only the first one it finds. If you want all of them, use the find function.
Thank you, this appears extremely useful. When I used fminbnd the minimum was always at the maximum 1st derivative time. This prompted me to repeat the experiments to discount experimental error. It was then that I decided to use the 2nd derivative and avoid ambient changes. This method you have proposed analyses the results more completely. I am very grateful for your insight. Gavin.
As always, my pleasure.
Hello Star Strider apologies for the long delay. I have been considering using the Z axes to show the second differential by plotting the first differential on it.
How would I take the first differential of the column Y values and append these new values into an additional column of the same table. I made then use the curve fitting tool to select the X, Y and Z axes? Gavin.
No worries.
I am not certain what you want to do. If you want to plot vectors in 3D, consider the plot3 function. Use the same independent variable, then plot each vector (function, first derivative, second derivative) as function so it. (I don’t have the Curve Fitting Toolbox, so I can’t help you with its functions.)
For example:
x = ...;
y = ...;
h = mean(diff(x));
d1y = gradient(y,h);
d2y = del2(y,h);
figure(1)
plot3(x,y, x,d1y, x, d2y)
grid on
legend('Function','First Derivative','Second Derivative')
I’m not certain what you want to do, but if I were to plot them in 3D, I would use plot3.
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 2-D and 3-D Plots에 대해 자세히 알아보기
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
