Hello,
I want to fit my x, y data using the PCHIP-fit and then I would like to get the coefficients to create several equation that would piecewise fit my data.
I am able to create the fit and to access the single coefficients, but when I try to plot the single polinomial using the coefficients from the PCHIP, the result is wrong.
Here is the code:
y = [0; 600; 843.6; 914.5; 941.1];x = [0; 100; 500; 1000; 1500];CurveFit = fit(x,y,'pchip'); % Create the PCHIP fit
pp = pchip(x,y); [breaks,coefs,L,order,dim] = unmkpp(pp); % Get Coefficientfrom PCHIP
scatter(x,y); grid on; hold on; % Plot my data x, y
plot(CurveFit,'k'); % Plot the pchip fit
syms f1(x) % Plot the first polinomial function for the first two set of data using the coefficient from PCHIP
f1(x) = coefs(1,1)*x.^3 + coefs(1,2)*x.^2 + coefs(1,3)*x + coefs(1,4);fplot(f1,[0 100]);syms f2(x) % Plot the second polinomial function for the second set of data using the coefficient from PCHIP
f2(x) = coefs(2,1)*x.^3 + coefs(2,2)*x.^2 + coefs(2,3)*x + coefs(2,4);fplot(f2,[100 500]);syms f3(x)f3(x) = coefs(3,1)*x.^3 + coefs(3,2)*x.^2 + coefs(3,3)*x + coefs(3,4);fplot(f3,[500 1000]);syms f4(x)f4(x) = coefs(4,1)*x.^3 + coefs(4,2)*x.^2 + coefs(4,3)*x + coefs(4,4);fplot(f4,[1000 1500]);
The result I got looks like this! I don't know why only f1(x) is overlapping my PCHIP- fit, while the other functions f2(x), f3(x) and f4(x) are not. Should not all the functions overlap the fit?
Do you know what I am getting wrong? Thank you
Best Answer