curvefit2d¶
[c, yPredicted] = curvefit2d(x, y, MathExpression, coefIniGuess, fitmethod, dispout)
Description¶
Fit curve to 2 dimensinal input dataset
Inputs¶
- x
- x data
- y
- y data
- MathExpression
- Right hand side of the relation y=f(x) as ‘f(x)’Example: y=c(1).*x.^2+c(2).*x+c(3) then MathExpression=’c(1).*x.^2+c(2).*x+c(3)’Example: y=c(1).*exp(x)+c(2) then MathExpression=’c(1).*exp(x)+c(2)’Example: y=c(1).*sin(x)+c(2) then MathExpression=’c(1).*sin(x)+c(2)’Desired coefficients to be found should be as : c(1), c(2),…,c(n)
- coefIniGuess
- Initial guess for desired coefficients to be foundcoefIniGuess=[guess1,guess2,…,guessn]guess1 is initial guess for c(1),…,guessn is initial guess for c(n)
- fitmethod
- Fitting method:‘lsq’: curve-fitting using nonlinear least-squares‘fmin’: curve-fitting by minimizing a sum of squared errors
- dispout=’no’;
- Define to display outputs or not (‘yes’: display, ‘no’: not display)
Outputs¶
- c
- Desired coefficients to be found
- yPredicted
- Predicted value from fitted curve
Examples¶
x(:,1)=linspace(0,10,100);
y(:,1)=0.5.*x.^2+2.*x+10+(-10+(10-(-10))).*rand(100,1);
[c,yPredicted]=curvefit2d(x,y,'c(1).*x.^2+c(2).*x+c(3)',[1,1,1],'lsq','yes');
x(:,1)=linspace(0,10,100);
y(:,1)=5.*x.^2+7+(-200+(200-(-200))).*rand(100,1);
[c,yPredicted]=curvefit2d(x,y,'c(1).*x.^c(2)+c(3)',[1,2,10],'lsq','yes');
x(:,1)=linspace(0,10,100);
y(:,1)=0.5.*exp(x)+100+(-200+(200-(-200))).*rand(100,1);
[c,yPredicted]=curvefit2d(x,y,'c(1).*exp(x)+c(2)',[1,1],'fmin','yes');