How to fit the data with passing specific point and specific function
20 views (last 30 days)
Show older comments
Please could you me some tips for the below question
To do the fitting, I have searched the polyfit and curve fitting. but i could find the fitting method like below
I would like fit the data by using the specific function like below
y= A (x^2) (x-1)^2 ( I want find A and the function should pass (0,0) and (1,0))
and data is like this:
x=[0 0.166666667 0.333333333 0.5 0.666666667 0.833333333 1]
y=[0 1.09162 1.71904 2.52173 1.20849 2.47433 0]
Therefore, from the data , I would like to get A values from y= A (x^2) (x-1)^2 and data point
And here is constraints that the fiiting function must pass the (0,0) and (1,0)
for example like this:
Accepted Answer
KSSV
on 16 Nov 2021
Edited: KSSV
on 16 Nov 2021
x=[0 0.166666667 0.333333333 0.5 0.666666667 0.833333333 1]' ;
y=[0 1.09162 1.71904 2.52173 1.20849 2.47433 0]' ;
n = 3; % Degree of polynomial to fit
V(:,n+1) = ones(length(x),1); % Vandermonde matrix
for j = n:-1:1
V(:,j) = x.*V(:,j+1);
end
% Constraints
Aeq = x([1 end]).^(n:-1:0);
beq = [y(1) y(end)];
p = lsqlin(V, y,[],[],Aeq,beq);
xnew = linspace(x(1),x(end)) ;
ynew = polyval(p,xnew);
plot(x,y,'.b-')
hold on
% Plot constraints
plot(x([1 end]),y([1 end]),'gx','linewidth',4)
% Plot fitted data
plot(xnew,ynew,'r','linewidth',2)
hold off
3 Comments
More Answers (0)
See Also
Categories
Find more on Get Started with Curve Fitting Toolbox 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!