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