Finding gradient of a part of a graph
60 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Yen Tien Yap
am 9 Apr. 2022
Bearbeitet: Tala
am 9 Apr. 2022
May I know how to find the gradient of the first linear part? What function should I use?
0 Kommentare
Akzeptierte Antwort
Sam Chak
am 9 Apr. 2022
Bearbeitet: Sam Chak
am 9 Apr. 2022
Technically, if is plotted by a function f(x) with a uniform step size h, then you can use the nabla = gradient(f)/h to compute the slope of f(x).
To find the gradient of the transient response, you need to pick a point in that region, for example, , and then find the index idx that is nearest to, or exactly at this point.
h = 0.01;
x = 0:h:10;
y = 1 - exp(-x/sqrt(2)).*(cos(x/sqrt(2)) + sin(x/sqrt(2)));
plot(x, y)
hold on
nabla = gradient(y)/h;
[M, idx] = max(nabla);
plot(x(idx), y(idx), 'o', 'linewidth', 1.5)
m = nabla(idx) % slope at point p
c = y(idx) - m*x(idx) % y-intercept
z = m*x + c; % line equation at point p
plot(x, z, 'linewidth', 1.5)
hold off
grid on
xlabel('x')
ylabel('y')
title('y = f(x) and the tangent line at the steepest slope')
legend('function f(x)', 'the point at f(p)', 'tangent line', 'location', 'best')
Result:
Note: If the spread of the data points are not uniform, then you probably need to use the interpolation technique, interp1().
0 Kommentare
Siehe auch
Kategorien
Mehr zu Directed Graphs finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!