Vandermonde Matrix and an Error Vector

8 views (last 30 days)
Joseph Percsy
Joseph Percsy on 25 Apr 2013
format long
n = inputdlg('Please enter a series of numbers seperated by spaces/commas: ')
numbers = str2num(n{1});
X = 0
V = fliplr(vander(numbers))
r_size = size(V,2);
c_size = size(V,1);
B = 1+(r_size./numbers)
X = B/V
Here's what I have so far. I've been running the program with n = 5, 15, 20, and basically I want to implement an a way of calculating an error vector using Error = (X - Dt), where Dt = [1, 1, 0, 0, 0, . . . , 0]T.
I'm not really quite sure how to go about this, and is this a good way to solve VX = B for X? Cheers for any advice guys.

Answers (2)

bym
bym on 25 Apr 2013
X = V\B
  2 Comments
Joseph Percsy
Joseph Percsy on 25 Apr 2013
No, the system is X = B/V. That's not going to change.
Matt J
Matt J on 25 Apr 2013
That's not what you posted. You posted that you wanted to solve V*X=B. The solution for that will be
X=V\B

Sign in to comment.


Matt J
Matt J on 25 Apr 2013
Edited: Matt J on 25 Apr 2013
Why not just use POLYFIT?
X=polyfit(numbers,B,length(B)-1);
It is more numerically stable than using the Vandermonde matrix directly.
I want to implement an a way of calculating an error vector using Error = (X - Dt), where Dt = [1, 1, 0, 0, 0, . . . , 0]T.
I don't really understand where Dt comes from, but why not implement it directly as you've written it?
Dt=[1 1, zeros(1,length(X)-2)].';
Error=X-Dt;

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!