root / pobysoPythonSage / src / sageSLZ / sageSLZ-Notes.html @ 80
Historique | Voir | Annoter | Télécharger (14,31 ko)
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
---|---|
2 |
"http://www.w3.org/TR/html4/loose.dtd">
|
3 |
<html>
|
4 |
<head>
|
5 |
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> |
6 |
<style type="text/css"> |
7 |
/* Mise ? jour 2010-12-20 */ |
8 |
/* La police proportionnelle de base est une Helvetica de 10 */ |
9 |
/* La police fixe de base est une Courrier de 10 */ |
10 |
/** Corps */ |
11 |
body {background-color: #FFFFFF; |
12 |
font-family : helvetica, arial, sans-serif; |
13 |
font-size : 10pt; |
14 |
font-weight : normal; |
15 |
font-style : normal} |
16 |
/* |
17 |
*/ |
18 |
/** Page de couverture */ |
19 |
/* |
20 |
--------------------------------------------------------------- |
21 |
/ ------------------------------------ |
22 |
/ table.coverHeader | td.coverHeaderLeft / td.coverHeaderRight | |
23 |
/ ------------------------------------ |
24 |
/ |
25 |
/ ------------------------------------ |
26 |
/ / / |
27 |
div.cover / / p.coverTitle / |
28 |
/ / / |
29 |
/ div.coverTitle ------------------------------------ |
30 |
/ / / |
31 |
/ / p.coverSubTitle / |
32 |
/ / / |
33 |
/ ------------------------------------ |
34 |
--------------------------------------------------------------- |
35 |
|
36 |
*/ |
37 |
@media print {div.cover {page-break-after:always} |
38 |
div.coverTitle {top : 250pt}} |
39 |
div.cover {margin-bottom : 100pt; |
40 |
text-align : center;} |
41 |
table.coverHeader {position : relative; |
42 |
top : 0; |
43 |
width : 90%; |
44 |
font-size: 12pt; |
45 |
font-family : helvetica, arial, sans-serif; |
46 |
font-weight: bold} |
47 |
table.coverHeader td.coverHeaderLeft {text-align : left} |
48 |
table.coverHeader td.coverHeaderRight {text-align : right} |
49 |
div.coverTitle {position : relative; |
50 |
margin-top : 100pt; |
51 |
text-align : center; |
52 |
border : solid ; |
53 |
margin-left : 20%; |
54 |
margin-right : 20%} |
55 |
/* Voir h1 */ |
56 |
p.coverTitle {text-align : center ; |
57 |
font-size : 20pt ; |
58 |
font-weight : bold ; |
59 |
font-family : helvetica, arial, sans-serif; |
60 |
text-indent : 0pt} |
61 |
p.coverSubTitle{text-align : center ; |
62 |
font-size : 16pt ; |
63 |
font-weight : normal; |
64 |
font-family : helvetica , arial , sans-serif; |
65 |
margin-top : 30pt; |
66 |
text-indent : 0pt} |
67 |
/* ?l?ments "en ligne" */ |
68 |
abbr {font-family : helvetica, arial, sans-serif; |
69 |
font-style : normal; |
70 |
font-weight : bold} |
71 |
/* Identique ? abbr */ |
72 |
acronym {font-family : helvetica, arial, sans-serif; |
73 |
font-style : normal; |
74 |
font-weight : bold} |
75 |
address {font-family : helvetica, arial, sans-serif; |
76 |
font-style : italic; |
77 |
margin-left : 20pt; |
78 |
margin-right : 20pt} |
79 |
blocquote {font-family : helvetica, arial, sans-serif; |
80 |
font-style : italic; |
81 |
margin-left : 20pt; |
82 |
margin-right : 20pt} |
83 |
cite {font-family : helvetica, arial, sans-serif; |
84 |
font-style : italic; |
85 |
font-weight : normal} |
86 |
/* ? utiliser dans une division de code pour les marges et dans un ?l?ment |
87 |
"pre" pour pr?server l'indentation) : div.code->pre->code. */ |
88 |
code {font-family : courier, monospace; |
89 |
font-style : normal; |
90 |
font-weight : normal} |
91 |
div.code {margin-left : 30pt; |
92 |
margin-right : 30pt} |
93 |
del {text-decoration : line-through} |
94 |
dfn {font-family: helvetica, arial, sans-serif; |
95 |
font-style: italic; |
96 |
font-weight: normal} |
97 |
ins {text-decoration : none; |
98 |
background-color : #FFFF00} |
99 |
kbd {font-family : times, serif; |
100 |
font-style : italic; |
101 |
font-weight : normal} |
102 |
pre {} |
103 |
/* ? travailler pour ?viter les guillemets anglo-saxons. */ |
104 |
q {} |
105 |
/* On introduit un ?l?ment div.samp pour ajouter le retrait */ |
106 |
samp {font-family : courier, monospace; |
107 |
font-style : normal; |
108 |
font-weight : normal} |
109 |
div.samp {margin-left : 30pt; |
110 |
margin-right : 30pt} |
111 |
strong {font-weight : bold} |
112 |
var {font-family : courier, monospace; |
113 |
font-style : italic; |
114 |
font-weight: normal} |
115 |
/* Span sp?cialis?s. */ |
116 |
/* Mot ou expression ?trang?re */ |
117 |
span.foreign {font-style : italic} |
118 |
/* ?l?ments de langage : |
119 |
- nom de commande ou de programme ; |
120 |
- nom de variable, de fonction, de classe, de module ; |
121 |
- propri?t@?, param?tre, valeur, champ, objet, nom de balise ; |
122 |
- nom de cl? de registre ; |
123 |
- mot-cl? d'un langage ; |
124 |
. */ |
125 |
span.langElem {font-family : helvetica, arial, sans-serif; |
126 |
font-style : normal; |
127 |
font-weight : bold} |
128 |
/* R?pertoires, fichiers, extensions de fichier (e. g. .jpeg) */ |
129 |
span.pathfile {font-family: courier, monospace; |
130 |
font-style : italic; |
131 |
font-weight: normal} |
132 |
span.urlAddress{font-family : courier monospace; |
133 |
font-style : italic; |
134 |
font-weight : bold } |
135 |
/* ?l?ments "bloc" */ |
136 |
h1 {text-align : center ; |
137 |
font-size : 20pt ; |
138 |
font-weight : bold ; |
139 |
font-family : helvetica, arial, sans-serif} |
140 |
h2 {font-size : 16pt ; |
141 |
font-weight : bold ; |
142 |
font-family : helvetica, arial, sans-serif} |
143 |
h3 {font-size: 14pt ; |
144 |
font-weight : normal; |
145 |
font-family : helvetica, arial, sans-serif; |
146 |
margin-left : 10pt} |
147 |
h4 {font-size : 12pt; |
148 |
font-family : helvetica, arial , sans-serif; |
149 |
font-weight: normal; |
150 |
margin-left : 15pt} |
151 |
h5 {font-size : 12pt ; |
152 |
font-family : helvetica, arial, sans-serif; |
153 |
font-weight : normal; |
154 |
font-style : italic; |
155 |
margin-left : 15pt} |
156 |
h6 {font-size : 10pt; |
157 |
font-family : helvetica, arial, sans-serif; |
158 |
font-size : 8pt; |
159 |
font-weight : bold; |
160 |
font-style : normal; |
161 |
margin-left : 15pt; |
162 |
text-align : right} |
163 |
p {font-size : 10pt; |
164 |
font-family : helvetica, arial, sans-serif; |
165 |
margin-left : 20pt; |
166 |
margin-right : 20pt; |
167 |
text-align : justify ; |
168 |
text-indent : 2em} |
169 |
/* Listes */ |
170 |
ul {font-size: 10pt; |
171 |
font-family: helvetica, arial, sans-serif; |
172 |
text-align: justify; |
173 |
margin-left: 20pt; |
174 |
margin-right: 20pt} |
175 |
ol {font-size: 10pt; |
176 |
font-family: helvetica, arial, sans-serif; |
177 |
text-align: justify; |
178 |
margin-left: 20pt; |
179 |
margin-right: 20pt} |
180 |
dl {font-size: 10pt; |
181 |
font-family: helvetica, arial, sans-serif; |
182 |
margin-left: 20pt; |
183 |
margin-right: 20pt} |
184 |
dl dt {font-weight: bold} |
185 |
dd {font-size: 10pt; |
186 |
font-family: helvetica, arial, sans-serif; |
187 |
text-align: justify; |
188 |
margin-left: 10pt} |
189 |
/* Tableaux */ |
190 |
p.tableCaption {text-align : center ; |
191 |
font-size : 12pt ; |
192 |
font-weight : bold ; |
193 |
font-family : helvetica, arial, sans-serif; |
194 |
text-ident : 0pt } |
195 |
table {margin-left: 20pt; |
196 |
margin-right: 20pt} |
197 |
/* Deux options pour les cellules titres : soit un ?l?ment en-t?te (avec |
198 |
ligne et cellules), soit des ?l?ments cellule en-t?te. */ |
199 |
thead tr td {text-align: center; |
200 |
text-indent : 0pt; |
201 |
font-size: 10pt; |
202 |
font-family: helvetica, arial, sans-serif; |
203 |
font-weight: bold} |
204 |
th {text-align: center; |
205 |
text-indent : 0pt; |
206 |
font-size: 10pt; |
207 |
font-family: helvetica, arial, sans-serif; |
208 |
font-weight: bold} |
209 |
|
210 |
td {font-size : 10pt ; |
211 |
font-family : helvetica, arial, sans-serif; |
212 |
vertical-align: top; |
213 |
padding-left : 1em; |
214 |
padding-right : 1em} |
215 |
td.numeric {font-size : 10pt ; |
216 |
font-family : Courier New, Courier, monospace; |
217 |
font-weight : bold; |
218 |
vertical-align: top; |
219 |
text-align : right; |
220 |
padding-right : 2em} |
221 |
td.middle {font-size : 10pt ; |
222 |
font-family : helvetica, arial, sans-serif; |
223 |
vertical-align: middle} |
224 |
/* Pour ?viter les marges dans les cellules de tableau */ |
225 |
td p {font-size : 10pt; |
226 |
font-family : helvetica, arial, sans-serif; |
227 |
margin-left : 0pt; |
228 |
margin-right : 0pt; |
229 |
text-indent : 0} |
230 |
/* Introduction ? une (x*sous) section */ |
231 |
p.heading {font-size : 10pt; |
232 |
font-family : helvetica, arial, sans-serif; |
233 |
font-weight : bold; |
234 |
margin-left : 20pt; |
235 |
margin-right : 20pt; |
236 |
text-align : justify; |
237 |
text-indent : 0pt} |
238 |
/* Conclusion d'une (*sous-) section */ |
239 |
p.footer {font-size : 10pt; |
240 |
font-family : helvetica, arial, sans-serif; |
241 |
font-weight : bold; |
242 |
margin-left : 20pt; |
243 |
margin-right : 20pt; |
244 |
text-align : justify; |
245 |
text-indent : 0pt} |
246 |
/* Illustration */ |
247 |
div.illustration {text-align : center; |
248 |
margin : 15pt} |
249 |
/* Rien de bien d?fini encore pour ces mod?les (id?e : |
250 |
images avec texte ? gauche ou ? droite) */ |
251 |
img.right {} |
252 |
img.left {} |
253 |
p.illustrationCaption {font-family : Helvetica, arial, sans-serif ; |
254 |
font-size : 12pt; |
255 |
font-weight : bold; |
256 |
text-align : center; |
257 |
text-indent : 0pt } |
258 |
/* Sommaire */ |
259 |
ul.summary {font-family : Helvetica , Arial , sans-serif; |
260 |
font-size : 12pt} |
261 |
/* Filets horizontaux */ |
262 |
hr {} |
263 |
hr.fiftypc {margin-left: 25%; |
264 |
margin-right: 25%;} |
265 |
hr.twentypc {margin-left: 40%; |
266 |
margin-right: 40%;} |
267 |
/* Notes */ |
268 |
/* L'appel de note est r?alis? par un ?l?ment "a" de classe callNote */ |
269 |
a.callNote {} |
270 |
/* Le retour de note est r?alis? par un ?l?ment "a" de classe retFromNote */ |
271 |
a.retFromNote {} |
272 |
/* Liste des notes proprement dite */ |
273 |
ol.notes {margin-left: 0%; |
274 |
margin-right: 0%} |
275 |
/* ?lements de navigation */ |
276 |
table.navTable {border : none ; |
277 |
width : 100%} |
278 |
table.navTable td {width : 20% ; |
279 |
border : none ; |
280 |
text-align : center ; |
281 |
vertical-align : middle} |
282 |
/* ?l?ments divers (? trier)*/ |
283 |
/* ?l?ments pour la table des mati?res */ |
284 |
div.abstract {font-size : 12pt ; |
285 |
font-style : italic ; |
286 |
font-family : Helvetica, Arial , sans-serif ; |
287 |
margin-left : 50pt ; |
288 |
margin-right : 50pt ; |
289 |
margin-top : 15pt ; |
290 |
margin-bottom : 10pt ; |
291 |
border : solid ; |
292 |
padding : 5pt} |
293 |
div.abstract p {margin-left : 0pt; |
294 |
margin-right : 0pt; |
295 |
text-indent : 0pt} |
296 |
div.toc {margin-left : 50pt} |
297 |
ul.toc {font-size : 14pt ; |
298 |
font-family : Helvetica , Arial , sans-serif} |
299 |
</style>
|
300 |
<title>sageSLZ Notes</title> |
301 |
</head>
|
302 |
|
303 |
<body>
|
304 |
<h1>sageSLZ Notes</h1> |
305 |
|
306 |
<h2>The approximation interval problem</h2> |
307 |
|
308 |
<p>When Sollya computes an approximation polynomial for a given function,
|
309 |
degree and range, it also returns the approximation error (and the center of |
310 |
the interval as well).</p>
|
311 |
|
312 |
<p>Very often we want to solve a slightly different problem: for a given
|
313 |
function, degree, lower bound and approximation error, computed the |
314 |
approximation polynomial and the upper bound of the interval comprised between |
315 |
it and the upper bound for which the approximation error stands.</p>
|
316 |
|
317 |
<p>Very often the idea is to break a given “large” into a |
318 |
collection of smaller intervals because for the given function-degree-error the |
319 |
initial interval is too large.</p>
|
320 |
|
321 |
<p>The naive approach is to:</p> |
322 |
<ol>
|
323 |
<li>give it a try with the initial data;</li> |
324 |
<li>when you get a too large error, reduce (e. g. divide by 2) the interval by
|
325 |
lowering the upper bound until the computed error matches the target |
326 |
error;</li>
|
327 |
<li>this upper bound becomes the lower bound of the next interval, always
|
328 |
using the orginal upper bound and repeat the process until you can cover |
329 |
the all initial interval with the computed sub-interval.</li>
|
330 |
</ol>
|
331 |
|
332 |
<p>In step 2 you may have to compute several polynomials until the computed
|
333 |
error is below or equal to the expected error. You must not decrease the |
334 |
interval width too agressively. There is no point in getting a too small approximation error since it multiplies the number of interval (and |
335 |
lengthens the subsequent manipulations that are made on each sub-interval).</p>
|
336 |
|
337 |
<p>In step 3 you probably inutily compute polynomials for too large intervals
|
338 |
and you could know it from the previous computations.</p>
|
339 |
|
340 |
<p>The whole idea is to reduce the number of polynomial computations and get the
|
341 |
maximum width (compatible with the expected approwimaiton error).</p>
|
342 |
|
343 |
<p>This process has different aspects:</p> |
344 |
<ol>
|
345 |
<li>for a given interval (be it too small or too large) and the given
|
346 |
(computed) error, compute the new best upper bound;</li>
|
347 |
<li>reuse the computation already done in previous steps.</li> |
348 |
</ol>
|
349 |
|
350 |
<p>For point 1, can something be done with the derivative at the upper bound or
|
351 |
at the center point of the interval (also given by Sollya).</p>
|
352 |
|
353 |
<p>For point 2, can some type of data structure keep the informations (which
|
354 |
ones ?) and allow for an efficient reuse.</p>
|
355 |
|
356 |
<p>Adjacent question: is it possible, given a the result of a previous
|
357 |
computation, to forecast the effect on the approximation precision of a degree |
358 |
in(de)crease?</p>
|
359 |
</body>
|
360 |
</html>
|