How to get a geometric sequence?

61 vues (au cours des 30 derniers jours)
Grace
Grace le 2 Oct 2014
Modifié(e) : Yokesh le 27 Juin 2017
Hi, I have
tao=1000;
v=0.9;
T1=0.01;
I want to have a geometric sequence T, where T1=T2=T3...=T1000 ( since tao=1000)
The first 100 T will be equal to T1,
The second 100 T which starts from T101 until T200= v*T1
The third 100 T ( from T201 until T300 = v*v*T1)
The fourth 100 T (from T301 till T400 = v*v*v*T1)
and so on.
How am I going to get the sequence? Thanks in advance.
  1 commentaire
Yokesh
Yokesh le 27 Juin 2017
Modifié(e) : Yokesh le 27 Juin 2017
A = r.^(1:n);
This creates matrix A with geometric sequence with a ratio 'r'

Connectez-vous pour commenter.

Réponses (2)

SK
SK le 2 Oct 2014
Use the .^ operator and matrix multiplication
T = v.^(0:9) * T1;
T = ones(100,1)*T;
T = T(:);
Alternatively (maybe faster)
T = v.^(0:9) * T1;
T = T(ones(1,100), :);
T = T(:);

the cyclist
the cyclist le 2 Oct 2014
It was not perfectly clear to me what you needed to leave as a variable, and what is a constant. But, this should get you started.
v=0.9;
T1=0.01;
T = T1*ones(100,10);
v_vector = v.^(0:9);
T = bsxfun(@times,T,v_vector)
T = reshape(T,1,1000)

Catégories

En savoir plus sur Robust Control Toolbox 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