fitting bi-linear equation using fmincon

Hello dear all
I am trying to fit a bi-linear equation on a dataset using fmincon command in MATLAB. My objective is to minimize the error in the whole bi-linear curve. My curve looks like the picture bellow:
curve.jpg
and I want to fit a bi-linear model on it having two slopes and the x0 as the the unknown parameters. The whole bi-linear fitted line should give the minimum error ( sum(y-y^)^2 = min ).
bilinear.PNG
in which d1 (or X0 in picture bellow) can have an upper and lower bond of for example [0.01 0.02].
So the final bi-linear fit would be like this:
f.JPG
I found the fmincon command in MATLAB the best way to achieve this goal, but unfortunately I don't know how practically program this.
What I provided in this question was a very simplified version of my actual task wich is tri-linear curve, so if I be able to fit a bi-linear, I will be able to implement it on more complex problems. I also attached my datapoints file.
I do appreciate you kind helps on this. Thank you very much.

4 个评论

OK, I was able to program it in a the way I explain. Here I will attach my program for future purposes, in the case anybody needed that.
Hey Benjamin,
I am really interested in what you did but your zip file is not working. Is it possible to reupload it please because I would like to use your program to do the same thing with my data. Thank you very much !
Mattia Pucci's comment moved here:
Hello Benjamin
For my thesis I should do a code as similar as your.
I am attaching the "pushover" curve that I plotted in Matlab. I would like to built a bi-linear curve with the same area of first curve
I know the final poin ant the area.
How could I do?
I appreciate your help.
Hello, sorry for my late reponse.
Here I modified the files again to be easier for others to read, understand, and use.
Note that the main file is "FitCurve.m" file. This file will read data, and make some modifications to the raw data (to make the rows of X and Y equal, also to make the number of data points for in order to balance the weigth for each bilinear section) to the X and Y datapoints, then assign necessary boundary conditions to make it ready for the fmincon function. then the fmincon will be taken care of in the efun.m file.

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息

提问:

2019-12-17

评论:

2020-11-6

Community Treasure Hunt

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

Start Hunting!

Translated by