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@lists.scilab.org
https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to