Regression of a vector in a optimization problem
显示 更早的评论
Hello everyone,
I need to fit experimental data to an analytical solution. The analytical solution has the form:
- C(z,t) = C_eq*f(z,t,D)
where f(z,t,D) is a known function of time (t) and position (z), and D and C_eq are parameters to regress.
I have already determined D and C_eq using the routine fminsearch. However, I would like to consider that C_eq does not necessarily have to be constant and can change over time.
My question is whether it is possible to regress C_eq as a vector instead of a constant? In this case, which routine is the most appropriate?
P.D: parameter D could also be considered as a vector if necessary.
Thanks in advance.
5 个评论
Torsten
2019-7-31
Do you have experimental data at different z-positions ?
Ronny Rives
2019-7-31
Torsten
2019-7-31
You shouldn't work with too many degrees of freedom for C_eq.
E.g. if you consider it as a function of time and position, you could choose it as
C_eq = C_experimental/f(z,t,D)
which gives a 100% fit between experimental and theoretical values.
If you consider it as a function of time and you have experimental data at times
t1 < t2 < ... < tn,
you can choose C_eq between 0 and t1 such that it fits best your data at t1, you can choose C_eq between t1 and t2 such that it fits best your data at t2 and so on.
But I think this only gives you more degrees of freedom in the fitting process, but doesn't make much sense from the physics point of view.
Ronny Rives
2019-7-31
Torsten
2019-8-1
Use "lsqcurvefit" with the parameter vector x = (C_eq(1),C_eq(2),...,C_eq(n)).
采纳的回答
更多回答(1 个)
Sai Bhargav Avula
2019-8-13
0 个投票
As mentioned by Torsten, lsqcurvefit can be used to obtain a vector as a result of the regression. But those values use the entire data for getting the output values . For you particular case you should segment the data based on time stamps and perform lsqcurvefit in a for loop.
1 个评论
Matt J
2019-8-13
I don't think a loop would be appropriate here, actually, because as I understand it, the parameter D is shared by all time blocks.
类别
在 帮助中心 和 File Exchange 中查找有关 Support Vector Machine Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!