Fitting data into a required function
    6 views (last 30 days)
  
       Show older comments
    
    Vishal Dolas
 on 13 Feb 2021
  
    
    
    
    
    Commented: Star Strider
      
      
 on 13 Feb 2021
            I am trying to fit this data -
x = [0.001 0.01 0.1 1 10];
y = [63.5 74.5 94.1 94.2 103.5];
into a function y = m*x^n
polyfit and lsqcurvefit not seem to be working here
can someone help me?
0 Comments
Accepted Answer
  Star Strider
      
      
 on 13 Feb 2021
        Try this: 
x = [0.001 0.01 0.1 1 10];
y = [63.5 74.5 94.1 94.2 103.5];
fcn = @(b,x) b(1).*x.^b(2);
B0 = rand(2,1);
B = lsqcurvefit(fcn, B0, x, y)
figure
plot(x, y, 'p')
hold on
plot(x, fcn(B,x), '-r')
hold off
set(gca, 'XScale','log')                                                % Optional
grid
xlabel('X')
ylabel('Y')
legend('Data', sprintf('y = %.3f\\cdotx^{%.3f}', B), 'Location','E')
.
2 Comments
More Answers (1)
  randerss simil
      
 on 13 Feb 2021
        
      Edited: randerss simil
      
 on 13 Feb 2021
  
      %if true
 m = 2
 n = 1.5
 Y = m*x.^n;
 k = polyval(x,Y)
First use polyval for the equation and then apply polyfit
0 Comments
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!

