How can I solve this linear System?
Show older comments
Lets say I have
A * x = b
n*n n*1 n*1
Unknown known known
A is unknown but it is known to be a symmetric Toeplitz matrix. eg:
[ 5 2 0 7 ;
2 5 2 0 ;
0 2 5 2 ;
7 0 2 5 ]
How Can I find A?
Thanks in advance.
Saeed
Accepted Answer
More Answers (3)
Richard Brown
on 23 Apr 2012
And another way (which could be chained into a very long one-liner). First, assuming you have the following test data:
% Test data
n = 4;
x = rand(n, 1);
b = rand(n, 1);
It's only a couple of lines:
B = toeplitz(x,x(1)*eye(1,n)) + fliplr(toeplitz(x(end)*eye(1,n), flipud(x)));
B(:,1) = 0.5 * B(:, 1);
A = toeplitz(B \ b);
Jan
on 22 Apr 2012
At first you can convert this into a linear system:
A = [a, b, c, d; ...
b, a, b, c; ...
c, b, a, b; ...
d, c, b, a];
Then multiply this with your known x and b to obtain a standard linear problem with the unknowns [a,b,c,d] in a vector.
Saeed
on 23 Apr 2012
2 Comments
Andrei Bobrov
on 23 Apr 2012
A = toeplitz(bsxfun(@rdivide,tril(toeplitz(x))+hankel(x),eye(1,numel(x))+1)\b)
Richard Brown
on 23 Apr 2012
punk :p
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!