MATLAB: Regression of points with desired equation

regression

Hi all,
Im trying to fit some points of established values, by using a regression made with an own equation (dependent from another parameter).
The points are defined as follow:
Xp=[4.5 5 5.5 6 ];
Yp=[0.7 0.9 0.85 1] ;
The form of the equation must be this:
Y= 2*(1 + tanh * ( ( X + a * Val2 – b ) / c ));
where Val2 is equal to 0.5.
My necessity is to define the terms a, b, c, which are unknown.
Thanks in advance

Best Answer

Try this:
Xp=[4.5 5 5.5 6 ];
Yp=[0.7 0.9 0.85 1] ;
Val2 = 0.5;
Y = @(X,a,b,c,Val2) 2*(1 + tanh( ( X + a * Val2 - b ) ./ c ));
[Prms,rsdnrm] = fminsearch(@(b) norm(Yp - Y (Xp,b(1),b(2),b(3),Val2)), rand(3,1))
figure
plot(Xp, Yp, 'p')
hold on
plot(Xp, Y(Xp,Prms(1),Prms(2),Prms(3),Val2), '-r')
hold off
grid
.