Clear Filters
Clear Filters

Curve fitting with a known coefficient

12 views (last 30 days)
Mahesha MG
Mahesha MG on 4 Jul 2013
I want to fit set of data points (x,y) to the equation 'g*x+a*(x/248.7860)^3*c'. Here g and a are unknown coefficients and x is independent variable. c is coefficient which is an array of size same as x (c varies with x but it is not weight) c is known. How to do the fitting? I tried the following: ft = fittype( 'g*x+a*(x/248.7860)^3*c', 'independent', 'x','independent', 'c', 'dependent', 'y' ); But it is not working. Any other way to solve?
  1 Comment
Valentin Fazenda
Valentin Fazenda on 9 Mar 2020
I have the same problem but with a complex equation :
PA=fittype('(Fz*(b1*Fz+b2))*sind(b0*atand((((b3*(Fz^2)+b4*Fz)*exp(-b5*Fz))/(b0*(Fz*(b1*Fz+b2))))*(x+(b9*Fz+b10))-((b6*Fz^2+b7*Fz+b8)*(1-b13*sind(x+(b9*Fz+b10))))*((((b3*(Fz^2)+b4*Fz)*exp(-b5*Fz))/(b0*(Fz*(b1*Fz+b2))))*(x+(b9*Fz+b10))-atand((((b3*(Fz^2)+b4*Fz)*exp(-b5*Fz))/(b0*(Fz*(b1*Fz+b2))))*(x+(b9*Fz+b10))))))+(b11*Fz+b12)','problem', 'Fz');
where Fz is known and is an (known) array of size same as x and i dont' know how write it so that Fz will not anymore be calaculated but used by the computer

Sign in to comment.

Answers (2)

David Sanchez
David Sanchez on 4 Jul 2013
You can use the curve fitting tool. Type:
cftool
at the command window. Then, select " custom equation " as your target and type your equation on the right box.
  1 Comment
Mahesha MG
Mahesha MG on 4 Jul 2013
Edited: Mahesha MG on 4 Jul 2013
I tried this. But it takes c as unknown coefficient and gives some value for it.

Sign in to comment.


Matt J
Matt J on 4 Jul 2013
Edited: Matt J on 4 Jul 2013
Functions from the Curve Fitting Toolbox seem like overkill here, considering that you have a very simple, linear fitting to do:
A=[x(:), (x(:)/248.7860).^3.*c(:)];
p=A\y(:);
g=p(1);
a=p(2);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!