How to write code for hankle and toeplitz matrix?

1 view (last 30 days)
I have matrices like
F = [CA;CA^2;CA^3;CA^4;CA^5;CA^6;CA^7;CA^8;CA^9;CA^10]
and other matrix is
phi=[CB 0 0 0;
CAB CB 0 0;
CA^2B CAB CB 0;
CA^3B CA^2B CAB CB;
CA^4B CA^3B CA^2B CAB;
CA^5B CA^4B CA^3B CA^2B;
CA^6B CA^5B CA^4B CA^3B;
CA^7B CA^6B CA^5B CA^4B;
CA^8B CA^7B CA^6B CA^5B;
CA^9B CA^8B CA^7B CA^6B]
How can I do matlab coding for these matrices
  3 Comments
Matt J
Matt J on 13 Sep 2014
Does CA^2 signify C*A^2 or (CA)^2 where 'CA' is the name of one variable. Are A,B,C scalars are matrices and, if matrices, of what size?
baruch
baruch on 14 Sep 2014
I have matrices like
F = [CA;CA^2;CA^3;CA^4;CA^5;CA^6;CA^7;CA^8;CA^9;CA^10] and other matrix is
phi=[CB 0 0 0; CAB CB 0 0; CA^2B CAB CB 0; CA^3B CA^2B CAB CB; CA^4B CA^3B CA^2B CAB; CA^5B CA^4B CA^3B CA^2B; CA^6B CA^5B CA^4B CA^3B; CA^7B CA^6B CA^5B CA^4B; CA^8B CA^7B CA^6B CA^5B; CA^9B CA^8B CA^7B CA^6B]
How can I do matlab coding for these matrices if C=[0,0,0,0,0,1];
A=[0.951229424500714,0,0,0,0,0;-0.00764874141234696,0.999384908699207,1.00818092264771e-05,0,0,0;-0.00799415471554044,2.05514658489028,0.951087777342890,0,0,0;0,0,0,1,0,0;3.85664115847093e-05,-0.00999690651487826,-5.08357475891134e-08,0.0100000000000000,1,0;-0.00764874141234696,0.999384908699207,1.00818092264771e-05,0,0,1]
B=[0;0.00150727991601721;289.187620200957;0;-5.05813015832678e-06;0.00150727991601721]
I need generalised code as in case given above it is for N=10.if I take any value then what will be it's code?

Sign in to comment.

Accepted Answer

Roger Stafford
Roger Stafford on 13 Sep 2014
Edited: Roger Stafford on 13 Sep 2014
My apologies! I was not thinking clearly when I wrote the nonsensical A.^(0:9). The following should produce the desired two arrays.
M = 6; % A is M x M, B is M x 1, C is 1 x M
N = 10;
F = zeros(N+1,M);
F(1,:) = C;
for k = 2:N+1
F(k,:) = F(k-1,:)*A;
end
r = F(1:N,:)*B;
c = [C*B;zeros(M-1,1)];
phi = toeplitz(r,c);
F = F(2:N+1,:);
  5 Comments
Roger Stafford
Roger Stafford on 15 Sep 2014
No, I am sorry. I have never worked in that area.
baruch
baruch on 15 Sep 2014
if you have any idea about any person who is expert in this area? I am searching but didn't find

Sign in to comment.

More Answers (2)

the cyclist
the cyclist on 12 Sep 2014
Edited: the cyclist on 12 Sep 2014
F = C*A.^(1:10)
  1 Comment
baruch
baruch on 13 Sep 2014
Edited: baruch on 13 Sep 2014
I have matrices like
F = [CA;CA^2;CA^3;CA^4;CA^5;CA^6;CA^7;CA^8;CA^9;CA^10] and other matrix is
phi=[CB 0 0 0; CAB CB 0 0; CA^2B CAB CB 0; CA^3B CA^2B CAB CB; CA^4B CA^3B CA^2B CAB; CA^5B CA^4B CA^3B CA^2B; CA^6B CA^5B CA^4B CA^3B; CA^7B CA^6B CA^5B CA^4B; CA^8B CA^7B CA^6B CA^5B; CA^9B CA^8B CA^7B CA^6B]
How can I do matlab coding for these matrices if C=[0,0,0,0,0,1];
A=[0.951229424500714,0,0,0,0,0;-0.00764874141234696,0.999384908699207,1.00818092264771e-05,0,0,0;-0.00799415471554044,2.05514658489028,0.951087777342890,0,0,0;0,0,0,1,0,0;3.85664115847093e-05,-0.00999690651487826,-5.08357475891134e-08,0.0100000000000000,1,0;-0.00764874141234696,0.999384908699207,1.00818092264771e-05,0,0,1]
B=[0;0.00150727991601721;289.187620200957;0;-5.05813015832678e-06;0.00150727991601721]
I need generalised code as in case given above it is for N=10.if I take any value then what will be it's code?

Sign in to comment.


Roger Stafford
Roger Stafford on 12 Sep 2014
Edited: Roger Stafford on 12 Sep 2014
phi = toeplitz(C*A.^(0:9)*B,zeros(1,4));
It is assumed that C*A^n*B is a scalar.
  1 Comment
baruch
baruch on 13 Sep 2014
Edited: baruch on 13 Sep 2014
I have matrices like
F = [CA;CA^2;CA^3;CA^4;CA^5;CA^6;CA^7;CA^8;CA^9;CA^10] and other matrix is
phi=[CB 0 0 0; CAB CB 0 0; CA^2B CAB CB 0; CA^3B CA^2B CAB CB; CA^4B CA^3B CA^2B CAB; CA^5B CA^4B CA^3B CA^2B; CA^6B CA^5B CA^4B CA^3B; CA^7B CA^6B CA^5B CA^4B; CA^8B CA^7B CA^6B CA^5B; CA^9B CA^8B CA^7B CA^6B]
How can I do matlab coding for these matrices if C=[0,0,0,0,0,1];
A=[0.951229424500714,0,0,0,0,0;-0.00764874141234696,0.999384908699207,1.00818092264771e-05,0,0,0;-0.00799415471554044,2.05514658489028,0.951087777342890,0,0,0;0,0,0,1,0,0;3.85664115847093e-05,-0.00999690651487826,-5.08357475891134e-08,0.0100000000000000,1,0;-0.00764874141234696,0.999384908699207,1.00818092264771e-05,0,0,1]
B=[0;0.00150727991601721;289.187620200957;0;-5.05813015832678e-06;0.00150727991601721]
I need generalised code as in case given above it is for N=10.if I take any value then what will be it's code?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!