* fit_dat removed. Please use datafit instead.
[scilab.git] / scilab / modules / optimization / tests / nonreg_tests / bug_244.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Vincent COUVERT
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- TEST WITH GRAPHIC -->
9
10 // <-- Non-regression test for bug 244 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=244
14 //
15 // <-- Short Description -->
16 //   recursion problems with fsolve
17
18
19 // Titration of a dibase with HCl (at the beginning, a little amount of NaOH was added)
20
21 // parameters
22 //C0=2.39e-4
23 C0=2e-4;
24 C02=0.02;
25 na0=2e-7;
26 v0=0.01;
27
28 pK1=6.9;
29 pK2=6.9;
30
31 // function to get the calculated pH
32 deff('[x]=f0(pH)','x=(10^(-pH-pK1)+2*10^(-2*pH))/(10^(-pK1-pK2)+10^(-pH-pK1)+10^(-2*pH))+((v0+v)*(10^(-pH)-10^(pH-14))+na0-C02*v)/(C0*v0)');
33 deff('[pH]=fpH(p)','v=p;pH=fsolve(7,f0)');
34
35 // data
36
37 X=[];Y=[];
38
39 X=[
40 //0     
41 0.00001 
42 0.00002 
43 0.00003 
44 0.00004 
45 0.00005 
46 0.000055        
47 0.00006 
48 0.000065        
49 0.00007 
50 0.000075        
51 0.00008 
52 0.000085        
53 0.00009 
54 0.000095        
55 0.0001  
56 0.000105        
57 0.00011 
58 0.000115        
59 0.00012 
60 0.000125        
61 0.00013 
62 0.000135        
63 0.00014 
64 0.000145        
65 0.00015 
66 0.000155        
67 0.00016 
68 0.000165        
69 0.00017 
70 0.000175        
71 0.00018 
72 0.000185        
73 0.00019 
74 0.000195        
75 0.0002  
76 0.000205        
77 0.00021 
78 0.000215        
79 0.00022 
80 0.000225        
81 0.00023 
82 0.000235        
83 0.00024 
84 0.000245        
85 0.00025 
86 0.000255        
87 0.00026 
88 0.000265        
89 0.00027 
90 0.000275        
91 0.00028 
92 0.000285        
93 0.000295        
94 0.000305        
95 0.00032 
96 0.000345        
97 0.000395        
98 0.000445        
99 ];
100
101 Y=[
102 //8.21  
103 7.82    
104 7.64    
105 7.48    
106 7.37    
107 7.22    
108 7.20    
109 7.17    
110 7.13    
111 7.12    
112 7.12    
113 7.10    
114 7.07    
115 7.04    
116 7.07    
117 7.04    
118 7.01    
119 6.98    
120 6.94    
121 6.91    
122 6.87    
123 6.84    
124 6.80    
125 6.76    
126 6.73    
127 6.68    
128 6.61    
129 6.57    
130 6.51    
131 6.45    
132 6.36    
133 6.27    
134 6.14    
135 6.02    
136 5.84    
137 5.64    
138 5.34    
139 5.00    
140 4.80    
141 4.59    
142 4.46    
143 4.40    
144 4.33    
145 4.24    
146 4.18    
147 4.11    
148 4.07    
149 4.02    
150 3.99    
151 3.95    
152 3.91    
153 3.88    
154 3.86    
155 3.80    
156 3.76    
157 3.69    
158 3.60    
159 3.47    
160 3.36    
161 ];
162
163 // fitting
164 Z=[Y;X];
165 deff('e=G(p,z)','pK1=p(1),pK2=p(2),v=z(2),pHexp=z(1),e=pHexp-fpH(v)');
166 [p,err]=datafit(G,Z,[6;7]);
167
168 // graphic part
169 clf()
170 //v=[0:1e-5:4.5e-4]
171 v=X;
172 fplot2d(v,fpH);
173 plot2d(X,Y,[-2]);