File: findm.sci

package info (click to toggle)
scilab 5.3.3-10
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 330,656 kB
file content (47 lines) | stat: -rw-r--r-- 958 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
// Copyright (C) INRIA
// 
// This file must be used under the terms of the CeCILL.
// This source file is licensed as described in the file COPYING, which
// you should have received as part of this distribution.  The terms
// are also available at    
// http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt

function m=findm(chi)
//Search for m such that chi = %k(1-m)/%k(m)
//!

if chi < 1 then
  t=1;
  tn=2;
  m=0.99999;
  mn=2;
  v=16*exp(-%pi/chi);
  while abs(t-tn) > 10.*%eps
    t=tn;
    lln=log(16/(1-m));
    k1=%asn(1,1-m);
    k=%asn(1,m);
    y=(k1*lln/%pi)-k;
    mn=m;
    m=1-v*exp((-%pi*y)/k1);
    tn=m+mn;
  end
else
  t=1;
  tn=2;
  m=0.00001;
  mn=0.1;
  v=16*exp(-%pi*chi);
  while abs(t-tn) > 10.*%eps
    t=tn;
    lln=log(16/m);
    k1=%asn(1,1-m);
    k=%asn(1,m);
    y=(k*lln/%pi)-k1;
    mn=m;
    m=v*exp((-%pi*y)/k);
    tn=m+mn;
  end
end
endfunction