Fit data with dependent parameters

조회 수: 2 (최근 30일)
Vogel
Vogel 2018년 7월 13일
댓글: Star Strider 2018년 7월 25일
Hi,
There are two rows of data, x and y. I would like to fit y = f(x), where
f(x) = a*x^3 + b*x^2 + (2a+3b)*x,
i.e. parameters are not independent.
I tried to use the function "fittype", but it does not work (Licensing error: -101,147).
I would like to know if there is any other way to solve it.
Thank you!

채택된 답변

Star Strider
Star Strider 2018년 7월 13일
Yours is a linear problem, however the easiest way to estimate the parameters is likely an unconstrained nonlinear solver, such as fminsearch:
x = ...;
y = ...;
objfcn = @(b,x) b(1).*x.^3 + b(2).*x.^2 + (2*b(1) + 3*b(2)).*x;
[B,resnorm] = fminsearch(@(b) norm(y - objfcn(b,x)), [1;1]);
xv = linspace(min(x), max(x));
figure
plot(x, y, 'pb')
hold on
plot(xv, objfcn(B,xv), '-r')
hold off
grid
  댓글 수: 6
Vogel
Vogel 2018년 7월 25일
Thanks a lot for your clear explanation. I am going to check it.
Star Strider
Star Strider 2018년 7월 25일
As always, my pleasure.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Vogel
Vogel 2018년 7월 17일
Hi again,
I have new questions, which probably have more to do with mathematics. But maybe Matlab can help.
Do you know if it is possible to add some constrains?
- I would like to obtain a fitted curve that intersects the points [x=0,y=0] and [x=1, y=1]. I tried to do it by applying some boundary conditions (this is why the coefficients are interdependent). However, the resulting curve does not intersect exactly the points, it just approximates them. (Actually the equation is much more complex than the posted above. It has exponential functions).
- This is more complicated: Is it possible to impose that the second derivative of the resulting curve must be positive at a certain point x (in my case at x=0)?
Thank you in advance
  댓글 수: 4
Matt J
Matt J 2018년 7월 18일
You could probably do it with lsqlin, but better you post this as a new question, detailing your actual model function.
Vogel
Vogel 2018년 7월 18일
Thank you Matt J. I will try it.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Linear Least Squares에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by