How do I make custom power trendline plots?
7 views (last 30 days)
Show older comments
I have a question regarding to this answer.
The link is below:
I want to make a power fitting curve in the form of y=a*x^0.5+c.
However, the linked answer just provide full prediction of the fitting curve including exponent of the curve.
I want to fix the exponent as 0.5 or other value as a constant. Finally, I just want to figure out the number of a and c.
How do I revise the code in this case?
Thank you.
0 Comments
Accepted Answer
Star Strider
on 10 Jul 2022
Try something like this —
yfcn = @(b,x) b(1).*sqrt(x) + b(2);
x = 0:0.5:10;
y = rand(size(x));
[B,fval] = fminsearch(@(b) norm(y-yfcn(b,x)), rand(2,1))
xv = linspace(min(x), max(x));
yv = yfcn(B,xv);
figure
plot(x, y, '.')
hold on
plot(xv, yv, '-r')
hold off
grid
xlabel('X')
ylabel('Y')
title(sprintf('$y(x) = %.3f \\cdot \\sqrt{x} + %.3f$', B), 'Interpreter','latex')
NOTE — Using ‘sqrt(x)’ is computationally more efficient than ‘x.^0.5’.
.
4 Comments
Star Strider
on 11 Jul 2022
That would be easiest using the fitnlm function. It will do the fit and produce many relevant statistics, including the R² value.
More Answers (0)
See Also
Categories
Find more on Historical Contests 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!