Update docs to match implementation of $build_and_dump_html_index
[maxima.git] / doc / info / pt_BR / romberg.texi
blobf4d36560a6a72ca49ed667803ad90775f9ab1c42
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /romberg.texi/1.2/Sat Jun  2 00:13:30 2007//
3 @menu
4 * Funções e Variáveis Definidas para romberg::
5 @end menu
7 @node Funções e Variáveis Definidas para romberg, , Top, Top
8 @section Funções e Variáveis Definidas para romberg
10 @deffn {Função} romberg (@var{expr}, @var{x}, @var{a}, @var{b})
11 @deffnx {Função} romberg (@var{F}, @var{a}, @var{b})
13 Calcula uma integração numérica pelo método de Romberg.
15 @code{romberg(@var{expr}, @var{x}, @var{a}, @var{b})}
16 retorna uma estimativa da integral @code{integrate(@var{expr}, @var{x}, @var{a}, @var{b})}.
17 @var{expr} deve ser uma expressão que avalie para um valor em ponto flutuante
18 quando @var{x} estiver associado a um valor em ponto flutuante.
20 @code{romberg(@var{F}, @var{a}, @var{b})}
21 retorna uma estimativa da integral @code{integrate(@var{F}(x), x, @var{a}, @var{b})}
22 onde @code{x} representa o não nomeado, isolado argumeno de @var{F};
23 o atual argumento não é chamado @code{x}.
24 @var{F} deve ser uma função do Maxima ou do Lisp que retorne um valor em ponto flutuante
25 quando o argumento for um número em ponto flutuante.
26 @var{F} pode nomear uma função traduzida ou compilada do Maxima.
28 A precisão de @code{romberg} é governada pelas variáveis globais
29 @code{rombergabs} e @code{rombergtol}.
30 @code{romberg} termina com sucesso quando
31 a diferença absoluta entre duas aproximações sucessivas for menor que @code{rombergabs},
32 ou a diferença relativa em aproximações sucessivas for menor que @code{rombergtol}.
33 Dessa forma quando @code{rombergabs} for 0.0 (o padrão)
34 somente o erro relativo tem algum efeito sobre @code{romberg}.
36 @code{romberg} divide ao meio o tamanho do passo no máximo @code{rombergit} vezes antes de interromper;
37 o número máximo de avaliações de função é portanto @code{2^rombergit}.
38 Se o critério de erro estabelecido por @code{rombergabs} e por @code{rombergtol}
39 não for satisfeito, @code{romberg} mostra uma mensagem de erro.
40 @code{romberg} sempre faz ao menos @code{rombergmin} iterações;
41 isso é uma intenção eurísstica de previnir encerramentos espúrios quando o integrando for oscilatório.
43 @code{romberg} repetidamente avalia o integrando após associar a variável
44 de integração a um valor específico (e não antes).
45 Essa política de avaliação torna possível aninhar chamadas a @code{romberg},
46 para calcular integrais multidimensionais.
47 Todavia, os cálculos de erro não tomam os erros de integrações aninhadas
48 em consideração, então erros podem ser subestimados.
49 Também, métodos imaginados especialmente para problemas multidimensionais podem retornar
50 a mesma precisão com poucas avaliações de função.
52 @code{load("romberg")} torna essa função disponível para uso.
54 Veja também @code{QUADPACK}, uma coleção de funções de integração numérica.
56 Exemplos:
58 Uma integração unidimensonal.
59 @c ===beg===
60 @c load ("romberg");
61 @c f(x) := 1/((x - 1)^2 + 1/100) + 1/((x - 2)^2 + 1/1000) + 1/((x - 3)^2 + 1/200);
62 @c rombergtol : 1e-6;
63 @c rombergit : 15;
64 @c estimate : romberg (f(x), x, -5, 5);
65 @c exact : integrate (f(x), x, -5, 5);
66 @c abs (estimate - exact) / exact, numer;
67 @c ===end===
69 @example
70 (%i1) load ("romberg");
71 (%o1)    /usr/share/maxima/5.11.0/share/numeric/romberg.lisp
72 (%i2) f(x) := 1/((x - 1)^2 + 1/100) + 1/((x - 2)^2 + 1/1000) + 1/((x - 3)^2 + 1/200);
73                     1                 1                1
74 (%o2) f(x) := -------------- + --------------- + --------------
75                      2    1           2    1            2    1
76               (x - 1)  + ---   (x - 2)  + ----   (x - 3)  + ---
77                          100              1000              200
78 (%i3) rombergtol : 1e-6;
79 (%o3)                 9.9999999999999995E-7
80 (%i4) rombergit : 15;
81 (%o4)                          15
82 (%i5) estimate : romberg (f(x), x, -5, 5);
83 (%o5)                   173.6730736617464
84 (%i6) exact : integrate (f(x), x, -5, 5);
85 (%o6) 10 sqrt(10) atan(70 sqrt(10))
86  + 10 sqrt(10) atan(30 sqrt(10)) + 10 sqrt(2) atan(80 sqrt(2))
87  + 10 sqrt(2) atan(20 sqrt(2)) + 10 atan(60) + 10 atan(40)
88 (%i7) abs (estimate - exact) / exact, numer;
89 (%o7)                7.5527060865060088E-11
90 @end example
92 Uma integração bidimensional, implementada com chamadas aninhadas a @code{romberg}.
93 @c ===beg===
94 @c load ("romberg");
95 @c g(x, y) := x*y / (x + y);
96 @c rombergtol : 1e-6;
97 @c estimate : romberg (romberg (g(x, y), y, 0, x/2), x, 1, 3);
98 @c assume (x > 0);
99 @c integrate (integrate (g(x, y), y, 0, x/2), x, 1, 3);
100 @c exact : radcan (%);
101 @c abs (estimate - exact) / exact, numer;
102 @c ===end===
104 @example
105 (%i1) load ("romberg");
106 (%o1)    /usr/share/maxima/5.11.0/share/numeric/romberg.lisp
107 (%i2) g(x, y) := x*y / (x + y);
108                                     x y
109 (%o2)                   g(x, y) := -----
110                                    x + y
111 (%i3) rombergtol : 1e-6;
112 (%o3)                 9.9999999999999995E-7
113 (%i4) estimate : romberg (romberg (g(x, y), y, 0, x/2), x, 1, 3);
114 (%o4)                   0.81930239628356
115 (%i5) assume (x > 0);
116 (%o5)                        [x > 0]
117 (%i6) integrate (integrate (g(x, y), y, 0, x/2), x, 1, 3);
118                                           3
119                                     2 log(-) - 1
120                     9                     2        9
121 (%o6)       - 9 log(-) + 9 log(3) + ------------ + -
122                     2                    6         2
123 (%i7) exact : radcan (%);
124                     26 log(3) - 26 log(2) - 13
125 (%o7)             - --------------------------
126                                 3
127 (%i8) abs (estimate - exact) / exact, numer;
128 (%o8)                1.3711979871851024E-10
129 @end example
131 @end deffn
133 @defvr {Variável de opção} rombergabs
134 Valor padrão: 0.0
136 A precisão de @code{romberg} é governada pelas variávies globais
137 @code{rombergabs} e @code{rombergtol}.
138 @code{romberg} termina com sucesso quando
139 a diferença absoluta entre duas aproximações sucessivas for menor que @code{rombergabs},
140 ou a diferença relativa em aproximações sucessivas for menor que @code{rombergtol}.
141 Dessa forma quando @code{rombergabs} for 0.0 (o padrão)
142 somente o erro relativo tem algum efeito sobre @code{romberg}.
144 Veja também @code{rombergit} e @code{rombergmin}.
146 @end defvr
148 @defvr {Variável de opção} rombergit
149 Valor padrão: 11
151 @code{romberg} divide ao meio o tamanho do passo no máximo @code{rombergit} vezes antes de interromper;
152 o número máximo de avaliações de função é portanto @code{2^rombergit}.
153 @code{romberg} sempre faz ao menos @code{rombergmin} iterações;
154 isso é uma intenção eurísstica de previnir encerramentos espúrios quando o integrando for oscilatório.
156 Veja também @code{rombergabs} e @code{rombergtol}.
158 @end defvr
160 @defvr {Variável de opção} rombergmin
161 Valor padrão: 0
163 @code{romberg} sempre faz ao menos @code{rombergmin} iterações;
164 isso é uma intenção eurísstica para prevenir terminações espúrias quando o integrando for.
166 Veja também @code{rombergit}, @code{rombergabs}, e @code{rombergtol}.
168 @end defvr
170 @defvr {Variável de opção} rombergtol
171 Valor padrão: 1e-4
173 A precisão de @code{romberg} é governada pelas variáveis globais
174 @code{rombergabs} e @code{rombergtol}.
175 @code{romberg} termina com sucesso quando
176 a diferença absoluta entre duas aproximações sucessivas for menor que @code{rombergabs},
177 ou a diferença relativa em aproximações sucessivas for menor que @code{rombergtol}.
178 Dessa forma quando @code{rombergabs} for 0.0 (o padrão)
179 somente o erro relativo tem algum efeito sobre @code{romberg}.
181 Veja também @code{rombergit} e @code{rombergmin}.
183 @end defvr