[Scilab-users] non linear optimization why produce Nan

Stéphane Mottelet stephane.mottelet at utc.fr
Wed Mar 27 09:33:03 CET 2019


Helllo,

Start by testing your residual function *alone* with inital value of 
your parameters

--> dyke_error(p0,Value, i, y)

S.

Le 27/03/2019 à 09:20, karoli a écrit :
> hello team
> why my optimization produce an Nan result, any help
>
>
> [fd,SST,Sheetnames,Sheetpos]=xls_open('D:\MAG2.xls')
> [Value,TextInd]=xls_read(fd,Sheetpos(1))
>
> y=45
> i=33
> p0=[53.8;1527;43.7;55.7;3424.7]
>
> function T= dyke(p,Value, i, y)
>      h =1.0 - cosd( y )^2*sind( i )^2
>      I= atand( tand( i )./sind( y ) )
>      O=2*I - p(1)    //P(1) = dip of the dyke(β)  O is degree
>      q1 = atand ( (( Value(:,1)-p(2)) - p(3) )./p(4) )
>      q2 = atand ( (( Value(:,1)-p(2)) + p(3) )./p(4) )  //p(2) = horizontal
> location of the centre of top of dyke model, p(3)= the half width of dyke,
> p(4) = the depth to top of the model ,q1 and q2 are degrees
>      Q = q1 - q2
>      A=%pi*Q./180 // convertion to radisn
>      r1 = sqrt ( p(4)^2 + ((Value(:,1)-p(2))-p(3))^2 )
>      r2 = sqrt ( p(4)^2 + ((Value(:,1)-p(2))+p(3))^2 )
>      R=r1./r2
>      T = 2*h*p(5)*sind(p(1))*(  sind(O)*A - cosd(O)*log(R))  //P(5) the
> intesity of magnetisation
> endfunction
>
> function e=dyke_error(p,Value, i, y)
>      e= dyke(p,Value, i, y)-Value(:,2)
> endfunction.
>
> ->[f,p,g]=leastsq(dyke_error,p0)
>   g  =
>   
>      Nan
>      Nan
>      Nan
>      Nan
>      Nan
>   p  =
>   
>      53.8
>      1527.
>      43.7
>      55.7
>      3424.7
>   f  =
>   
>      Nan
>   
>
>
>
> --
> Sent from: https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users



More information about the users mailing list