Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

[Matlab] Which is the good solution My vs. School - curve fitting?

  1. Nov 3, 2014 #1
    Hy, I wonder wich is the good solution for this problem:

    Nonlinear least square problem: function: y = x / (a + b.x) linearization: 1/y = a/x + b substitution: v = 1/y , u = 1/x >> model v = b + a.u

    What we did in school:

    x = [1 2 4 7]; y = [2 1 0.4 0.1];
    v=1./y;
    u=1./x;
    n = length(x);
    A=[ones(n,1), u']
    xbeta=A\v'
    Lbeta=xbeta;
    beta0=flipud(Lbeta)
    beta=fminsearch('kritfun',beta0)
    r = [kritfun(beta0) , kritfun(beta)]


    + kritfun.m

    function z=kritfun(beta)
    a=beta(1);
    b=beta(2);
    x = [1 2 4 7];
    y = [2 1 0.4 0.1];
    error = y - x./(a + b*x );
    z = sum((error .^2 ));


    in ML we get : xbeta =

    7.3658
    -8.1692
    beta =

    1.0e+014 *

    -8.2085
    4.1043
    r =

    11.0600 4.1700

    but when I try in Curve Fitting tool too check the soulution , I get something else ..according to this video:
    too call CF I typed to prompt >>cftool

    When I try this I get the same number like in the Curve fitting tool , the a,b parameters is my beta(1),beta(2) and the SSE number is my r(2) ..what was same when I tried this:

    x = [1 2 4 7];
    y = [2 1 0.4 0.1];

    %u = 1./x; %these u and v I dont use it...but I didnt know when not using substituion is correct the beta and r(2) , but when I didnt use I get same numbers lik in the Curve Fitting tool
    %v = 1./y;

    n = length(x);
    X = [ ones(n,1), x'];
    btr = X\y'

    beta0 = flipud(btr)'
    beta = fminsearch('mnsNLcFUN',beta0)
    r = [mnsNLcFUN(beta0), mnsNLcFUN(beta)]


    + mnsNLcFUN.m function is:

    function z=mnsNLcFUN(beta)
    a=beta(1);
    b=beta(2);

    x = [1 2 4 7];
    y = [2 1 0.4 0.1];

    error = y - x./(a+b.*x);
    z = sum((error .^2 ));
     
  2. jcsd
  3. Nov 8, 2014 #2
    Thanks for the post! Sorry you aren't generating responses at the moment. Do you have any further information, come to any new conclusions or is it possible to reword the post?
     
  4. Dec 8, 2014 #3
    somewho said that is more possible way to do the linearization....and what we did is not the same as Matlab makes ,.....or I dont know what else..
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: [Matlab] Which is the good solution My vs. School - curve fitting?
Loading...