I need help building a dynamically evolving matrix based on a polynomial of unknown or user inputted size.
Show older comments
I need help creating an array based on a polynomial of unknown length. Polyval and Poly fit cannot be used.
I need something that would do....
n=length(x);
X=[ones(n,1) x(:)];
% and after 1 iteration
X=[ones(n,1) x(:) x(:).^2];
%and after the 2nd iteration
X=[ones(n,1) x(:) x(:).^2 x(:).^3];
%and after the 3rd iteration
X=[ones(n,1) x(:) x(:).^2 x(:).^3 x(:).^4];
% and so on for n amount of iterations
Answers (3)
Walter Roberson
on 22 Apr 2019
Edited: Walter Roberson
on 22 Apr 2019
xv = x(:);
yv = y(:);
X = [];
deg = 0;
while true
X = [X, xv.^deg];
coeffs = X \ yv;
residue = sum( (polyval(flipud(coeffs), xv) - yv).^2 );
if residue < tolerance
break;
end
end
Steven Lord
on 22 Apr 2019
0 votes
Take a look at the vander function.
Terry Poole
on 22 Apr 2019
0 votes
Categories
Find more on Polynomials 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!