How to Find the period of a periodic function

29 vues (au cours des 30 derniers jours)
Nasir Holliday
Nasir Holliday le 26 Avr 2020
Commenté : Star Strider le 26 Avr 2020
How do I find the period of this function?
*Note y(1) is equivalent to x and y(2) is equivalent to y in this set of equations.
My code:
sym vars
a=1; b=1; c=0.1; d=0.1;
RHS=@(t,y)([a*y(1)-b*y(1)*y(2); c*y(1)*y(2)-d*y(2)]);
[t,y]=ode45(RHS, [0 100], [5,0.2]);
figure
plot(t, y(:,1))
xlabel('t (in years)'); ylabel('Number of Prey (in millions)');
title('Number of Prey for 100 Year Period');
legend('x vs t');
set(gca, 'fontsize', 16);

Réponse acceptée

Star Strider
Star Strider le 26 Avr 2020
Use the Signal Processing Toolbox findpeaks function:
a=1; b=1; c=0.1; d=0.1;
RHS=@(t,y)([a*y(1)-b*y(1)*y(2); c*y(1)*y(2)-d*y(2)]);
[t,y]=ode45(RHS, [0 100], [5,0.2]);
figure
plot(t, y(:,1))
xlabel('t (in years)'); ylabel('Number of Prey (in millions)');
title('Number of Prey for 100 Year Period');
legend('x vs t');
set(gca, 'fontsize', 16);
[pks,locs] = findpeaks(y(:,1)); % Peaks & Locations
mean_period = mean(diff(t(locs))); % Period
text(min(xlim)+0.1*diff(xlim), min(ylim)+0.95*diff(ylim), sprintf('Mean Period = %.2f time units', mean_period))
.
  4 commentaires
Nasir Holliday
Nasir Holliday le 26 Avr 2020
Oh! I didn't run it with the rest of the code so that's why! Thank you!
Star Strider
Star Strider le 26 Avr 2020
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by