Update docs to match implementation of $build_and_dump_html_index
[maxima.git] / doc / info / pt_BR / unit.texi
blob933f7345cde1d75c4b79d780a1eaa0dd1d371e66
1 @c Language: Brazilian Portuguese, Encoding: iso-8859-1
2 @c /unit.texi/1.3/Sat Jun  2 00:13:35 2007//
3 @menu
4 * Introdução a Units::       
5 * Funções e Variáveis Definidas para Units::       
6 @end menu
8 @node Introdução a Units, Funções e Variáveis Definidas para Units, unit, unit
9 @section Introdução a Units
11 O pacote @emph{unit} torna o usuário apto a converter entre unidades
12 arbitrárias e trabalhar com dimensões em equações. O funcionamento desse pacote
13 é radicalmente diferente do pacote original units do Maxima - apesar de
14 o original conter uma lista básica de definições, o pacote atual usa um conjunto de regras para permitir
15 ao usuário escolher, sobre uma base dimensional, qual a resposta fianl de unidade pode ser
16 convertida.  Isso irá separar unidades em lugar de misturá-las na tela,
17 permitindo ao usuário durante a leitura identificar as unidades associadas com uma resposta em
18 particular.  Isso permitirá ao usuário simplificar uma expressão em sua Base fundamental
19 de Unidades, bem como fornecer ajuste fino sobre a simplificação de unidades derivadas.
20 Análise dimensional é possível, e uma variedade de ferramentas está disponível para 
21 gerenciar a conversão e também uma variedade de opções de simplificação. Adicionalmente para personalizar
22 conversão automática, @emph{units} também fornede um manual tradicional 
23 de opções de conversão.  
25 Nota -quando conversões de unidade forem não exatas Maxima irá fazer aproximações resultando 
26 em frações. Esso é uma conceq@"{u}ência das técnicas usadas para simplificar unidades.
27 A mensagem de alerta desse tipo de substituição está desabilitada por padrão no
28 caso de inidades (normalmente essas mensagens estão habilitadas) uma vez que essa situação de iemissão de mensagens de alerta ocorre freq@"{u}êntemente
29 e os alertas confundem a saída.  (O estado atual de @code{ratprint} é restabelecido
30 após uma conversão de unidades, de forma que modificações de usuário para aquela configuração irão ser preservadas 
31 de outra forma.)  Se o usuário precisar dessa informação para @code{units}, ele pode escolher
32 @emph{unitverbose:on} para reativar a impressão de mensagens de alerta do
33 processo de conversão.
35 @emph{unit} está inclído no Maxima no diretório share/contrib/unit directory. Isso segue
36 aos pacotes normais do Maxima conforme convenções:
38 @example
39 (%i1) load("unit")$
40 ******************************************************************* 
41 *                       Units version 0.50                        * 
42 *          Definitions based on the NIST Reference on             * 
43 *              Constants, Units, and Uncertainty                  * 
44 *       Conversion factors from various sources including         * 
45 *                   NIST and the GNU units package                * 
46 ******************************************************************* 
48 Redefining necessary functions... 
49 WARNING: DEFUN/DEFMACRO: redefining function TOPLEVEL-MACSYMA-EVAL ...
50 WARNING: DEFUN/DEFMACRO: redefining function MSETCHK ...
51 WARNING: DEFUN/DEFMACRO: redefining function KILL1 ...
52 WARNING: DEFUN/DEFMACRO: redefining function NFORMAT ...
53 Initializing unit arrays... 
54 Done.
55 @end example
57 As mensagens WARNING (DE ALERTA) são esperadas n ão uma causa de preocupação - elas indicam
58 que o pacote @emph{unit} está redefinindo funções anteriormente definidas no local adequado do Maxima.  
59 Essa redefinição é necessária com o bojetivo de manusear adequadamente as unidades.  O usuário
60 pode estar consciente que se outras modificações tiverem sido feitas para essas funções por outros
61 pacotes essas novas mudanças irão ser sobrescritas por meio desse processo de disponibilização do pacote @code{unit}.
63 O arquivo @emph{unit.mac} também chama um arquivo lisp, a saber @emph{unit-functions.lisp}, que
64 contém as funçãoes lisp necessárias ao pacote.
66 Clifford Yapp é o autor primário.  Ele recebeu grande contribuição de
67 Barton Willis da University of Nebraska at Kearney (UNK), Robert Dodier, e
68 da intrépida tribo da lista de mensagens do Maxima.
70 Existem provavelmente muitos erros.  Diga-me quais.  @code{float} e @code{numer}
71 não fazem o que é esperado.
73 PORFAZER : funcionalidade de dimensão, manuseio de temperatura, 
74 a função @code{showabbr} e Cia. Ltda.  Mostrar exemplos com adição de quantidades contendo
75 unidades.
78 @node Funções e Variáveis Definidas para Units,  , Introdução a Units, unit
79 @section Funções e Variáveis Definidas para Units
81 @deffn {Função} setunits (@var{list})
82 Por padrão, o pacote @emph{unit} não usa qualquer dimensões derivadas, mas irá
83 converter todas as unidades nas sete fundamentais do sistema MKS.
84 @example
85 (%i2) N;
86                                      kg m
87 (%o2)                                ----
88                                        2
89                                       s
90 (%i3) dyn;
91                                    1      kg m
92 (%o3)                           (------) (----)
93                                  100000     2
94                                            s
95 (%i4) g;
96                                     1
97 (%o4)                             (----) (kg)
98                                    1000
99 (%i5) centigram*inch/minutes^2;
100                                   127        kg m
101 (%o5)                       (-------------) (----)
102                              1800000000000     2
103                                               s
104 @end example
106 Em alguns casos esse é o comportamento desejado.  Se o usuário desejar usar outras
107 unidades, isso é conseguido com o comando @code{setunits}:
108 @example
109 (%i6) setunits([centigram,inch,minute]);
110 (%o6)                                done
111 (%i7) N;
112                             1800000000000   %in cg
113 (%o7)                      (-------------) (------)
114                                  127            2
115                                             %min
116 (%i8) dyn;
117                                18000000   %in cg
118 (%o8)                         (--------) (------)
119                                  127          2
120                                           %min
121 (%i9) g;
122 (%o9)                             (100) (cg)
123 (%i10) centigram*inch/minutes^2;
124                                     %in cg
125 (%o10)                              ------
126                                         2
127                                     %min
128 @end example
130 A escolha de unidades é completamente flexível.  Por exemplo, se quisermos
131 voltar para quiilogramas, metros, e segundos como padrão para essas
132 dimensão nós podemos fazer:
133 @example
134 (%i11) setunits([kg,m,s]);
135 (%o11)                               done
136 (%i12) centigram*inch/minutes^2;
137                                   127        kg m
138 (%o12)                      (-------------) (----)
139                              1800000000000     2
140                                               s
141 @end example
143 Unidade derivadas são também manuseáveis por meio desse comando:
144 @example
145 (%i17) setunits(N);
146 (%o17)                               done
147 (%i18) N;
148 (%o18)                                 N
149 (%i19) dyn; 
150                                     1
151 (%o19)                           (------) (N)
152                                   100000
153 (%i20) kg*m/s^2;
154 (%o20)                                 N
155 (%i21) centigram*inch/minutes^2;
156                                     127
157 (%o21)                        (-------------) (N)
158                                1800000000000
159 @end example
161 Note que o pacote @emph{unit} reconhece a combinação não MKS
162 de massa, comprimento, e tempo inverso elevado ao quadrado como uma força, e converte isso
163 para Newtons.  É dessa forma que Maxima trabalha geralmente.  Se, por exemplo, nós
164 preferirmos dinas em lugar de Newtons, simplesmente fazemos o seguinte:
165 @example
166 (%i22) setunits(dyn);
167 (%o22)                               done
168 (%i23) kg*m/s^2;
169 (%o23)                          (100000) (dyn)
170 (%i24) centigram*inch/minutes^2;
171                                   127
172 (%o24)                         (--------) (dyn)
173                                 18000000
174 @end example
176 Para descontinuar simplificando para qualquer unidade de força, usamos o comando @code{uforget}:
177 @example
178 (%i26) uforget(dyn);
179 (%o26)                               false
180 (%i27) kg*m/s^2;
181                                      kg m
182 (%o27)                               ----
183                                        2
184                                       s
185 (%i28) centigram*inch/minutes^2;
186                                   127        kg m
187 (%o28)                      (-------------) (----)
188                              1800000000000     2
189                                               s
190 @end example
191 Isso pode trabalhar igualmente bem com @code{uforget(N)} ou
192 @code{uforget(%force)}.
194 Veja também @code{uforget}. Para usar essa função escreva primeiro @code{load("unit")}.
195 @end deffn
197 @deffn {Função} uforget (@var{list})
198 Por padrão, o pacote @emph{unit} converte todas as unidades para as
199 sete unidaes fundamentais do sitema MKS de unidades. Ess comportamento pode
200 ser mudado com o comando @code{setunits}. Após o qual, o
201 usuário pode restabelecer o comportamento padrão para uma dimensão em particular
202 mediante o comando @code{uforget}:
203 @example
204 (%i13) setunits([centigram,inch,minute]);
205 (%o13)                               done
206 (%i14) centigram*inch/minutes^2;
207                                     %in cg
208 (%o14)                              ------
209                                         2
210                                     %min
211 (%i15) uforget([cg,%in,%min]);
212 (%o15)                      [false, false, false]
213 (%i16) centigram*inch/minutes^2;
214                                   127        kg m
215 (%o16)                      (-------------) (----)
216                              1800000000000     2
217                                               s
218 @end example
220 @code{uforget} opera sobre dimensões,
221 não sobre unidades, de forma que qualquer unidade de uma dimensão em particular irá trabalhar.  A
222 própia dimensão é também um argumento legal.
224 Veja também @code{setunits}. To use this function write first @code{load("unit")}.
225 @end deffn
227 @deffn {Função} convert (@var{expr}, @var{list})
228 Quando do restabelecimento dos valores padrão o ambiente global é destruído, existe o comando
229 @code{convert}, que permite conversões imediatas.  @code{convert} pode aceitar  um argumetno
230 simples ou uma lista de unidades a serem usadas na conversão.  Quando uma operação de conversão for
231 concluída, o sistema normal de avaliação global é contornado, com o objetivo de evitar que
232 o resultado desejado seja convertido novamente.  Como conseq@"{u}ência, em cálculos aproximados
233 alertas de "rat" irão ser visíveis se o ambiente global que controla esse comportamento
234 (@code{ratprint}) for @code{true}.  @code{convert} também é útil para uma verificação pontual e imediata da
235 precisão de uma conversão global.  Outro recurso é que @code{convert} irá permitir a um
236 usuário fazer um Base de Conversões Dimensionais mesmo se o ambiente global for escolhido para
237 simplificar par uma Dimensão Derivada.
239 @example
240 (%i2) kg*m/s^2;
241                                      kg m
242 (%o2)                                ----
243                                        2
244                                       s
245 (%i3) convert(kg*m/s^2,[g,km,s]);
246                                      g km
247 (%o3)                                ----
248                                        2
249                                       s
250 (%i4) convert(kg*m/s^2,[g,inch,minute]);
252 `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
253                               18000000000   %in g
254 (%o4)                        (-----------) (-----)
255                                   127           2
256                                             %min
257 (%i5) convert(kg*m/s^2,[N]);
258 (%o5)                                  N
259 (%i6) convert(kg*m^2/s^2,[N]);
260 (%o6)                                 m N
261 (%i7) setunits([N,J]);
262 (%o7)                                done
263 (%i8) convert(kg*m^2/s^2,[N]);
264 (%o8)                                 m N
265 (%i9) convert(kg*m^2/s^2,[N,inch]);
267 `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
268                                  5000
269 (%o9)                           (----) (%in N)
270                                  127
271 (%i10) convert(kg*m^2/s^2,[J]);
272 (%o10)                                 J
273 (%i11) kg*m^2/s^2;
274 (%o11)                                 J
275 (%i12) setunits([g,inch,s]);
276 (%o12)                               done
277 (%i13) kg*m/s^2;
278 (%o13)                                 N
279 (%i14) uforget(N);
280 (%o14)                               false
281 (%i15) kg*m/s^2;
282                                 5000000   %in g
283 (%o15)                         (-------) (-----)
284                                   127       2
285                                            s
286 (%i16) convert(kg*m/s^2,[g,inch,s]);
288 `rat' replaced 39.37007874015748 by 5000/127 = 39.37007874015748
289                                 5000000   %in g
290 (%o16)                         (-------) (-----)
291                                   127       2
292                                            s
293 @end example
295 Veja também @code{setunits} e @code{uforget}. Para usar essa função primeiramente escreva @code{load("unit")}.
296 @end deffn
299 @defvr {Variável de opção} usersetunits
300 Valor padrão: none
302 Se um usuário desejar ter um comportamento padrão de unidade diferente daquele descrito,
303 ele pode fazer uso de @emph{maxima-init.mac} e da variável
304 @emph{usersetunits}.  O pacote @emph{unit} irá verificar o arquivo @emph{maxima-init.mac} na inicialização para ver se a essa variável 
305 foi atribuído uma lista.  Se isso aconteceu, o pacote @emph{unit} irá usar @code{setunits} sobre aquela lista e pegar 
306 as unidades lá colocadas para serem as padrões.  @code{uforget} irá reverter para o comportamento
307 definido por @code{usersetunits} sobrescrevendo seus próprios padrões.  Por exemplo, Se tivermos um arquivo
308 @emph{maxima-init.mac} contendo:
309 @example
310 usersetunits : [N,J];
311 @end example
312 nós poderemos ver o seguinte comportamento:
313 @example
314 (%i1) load("unit")$
315 ******************************************************************* 
316 *                       Units version 0.50                        * 
317 *          Definitions based on the NIST Reference on             * 
318 *              Constants, Units, and Uncertainty                  * 
319 *       Conversion factors from various sources including         * 
320 *                   NIST and the GNU units package                * 
321 ******************************************************************* 
323 Redefining necessary functions... 
324 WARNING: DEFUN/DEFMACRO: redefining function TOPLEVEL-MACSYMA-EVAL ...
325 WARNING: DEFUN/DEFMACRO: redefining function MSETCHK ...
326 WARNING: DEFUN/DEFMACRO: redefining function KILL1 ...
327 WARNING: DEFUN/DEFMACRO: redefining function NFORMAT ...
328 Initializing unit arrays... 
329 Done. 
330 User defaults found... 
331 User defaults initialized.
332 (%i2) kg*m/s^2;
333 (%o2)                                  N
334 (%i3) kg*m^2/s^2;
335 (%o3)                                  J
336 (%i4) kg*m^3/s^2;
337 (%o4)                                 J m
338 (%i5) kg*m*km/s^2;
339 (%o5)                             (1000) (J)
340 (%i6) setunits([dyn,eV]);
341 (%o6)                                done
342 (%i7) kg*m/s^2;
343 (%o7)                           (100000) (dyn)
344 (%i8) kg*m^2/s^2;
345 (%o8)                     (6241509596477042688) (eV)
346 (%i9) kg*m^3/s^2;
347 (%o9)                    (6241509596477042688) (eV m)
348 (%i10) kg*m*km/s^2;
349 (%o10)                   (6241509596477042688000) (eV)
350 (%i11) uforget([dyn,eV]);  
351 (%o11)                           [false, false]
352 (%i12) kg*m/s^2;
353 (%o12)                                 N
354 (%i13) kg*m^2/s^2;
355 (%o13)                                 J
356 (%i14) kg*m^3/s^2;
357 (%o14)                                J m
358 (%i15) kg*m*km/s^2;
359 (%o15)                            (1000) (J)
360 @end example
361 Sem @code{usersetunits}, as entradas iniciais poderiam ter sido convertidas
362 para o sistema de unidades MKS, e @code{uforget} poderia ter resultado em um retorno para as regras do MKS.  Em vez disso,
363 as preferências do usuário foram respeitadas em ambos os casos.  Note que esse podem ainda
364 serem sobrescritos se for desejado.  Para eliminar completamente essa simplificação - i.e.
365 ter as preferências de usuário escolhidas para os padrões de unidade do Maxima - o comando
366 @code{dontusedimension} pode ser usado.  @code{uforget} pode restabelecer as preferências de usuário novamente, mas
367 somente se @code{usedimension} liberar isso para uso.  Alternativamente,
368 @code{kill(usersetunits)} irá remover completametne todo o conhecimento dessas escolhas de usuário
369 da sessão atual.  Aqui está alguns exemplos de como esssas várias opções trabalham.
370 @example
371 (%i2) kg*m/s^2;
372 (%o2)                                  N
373 (%i3) kg*m^2/s^2;
374 (%o3)                                  J
375 (%i4) setunits([dyn,eV]);
376 (%o4)                                done
377 (%i5) kg*m/s^2;
378 (%o5)                           (100000) (dyn)
379 (%i6) kg*m^2/s^2;
380 (%o6)                     (6241509596477042688) (eV)
381 (%i7) uforget([dyn,eV]);
382 (%o7)                          [false, false]
383 (%i8) kg*m/s^2;
384 (%o8)                                  N
385 (%i9) kg*m^2/s^2;
386 (%o9)                                  J
387 (%i10) dontusedimension(N);
388 (%o10)                             [%force]
389 (%i11) dontusedimension(J);
390 (%o11)                         [%energy, %force]
391 (%i12) kg*m/s^2;
392                                      kg m
393 (%o12)                               ----
394                                        2
395                                       s
396 (%i13) kg*m^2/s^2;
397                                          2
398                                      kg m
399 (%o13)                               -----
400                                        2
401                                       s
402 (%i14) setunits([dyn,eV]);
403 (%o14)                               done
404 (%i15) kg*m/s^2;
405                                      kg m
406 (%o15)                               ----
407                                        2
408                                       s
409 (%i16) kg*m^2/s^2;
410                                          2
411                                      kg m
412 (%o16)                               -----
413                                        2
414                                       s
415 (%i17) uforget([dyn,eV]);
416 (%o17)                         [false, false]
417 (%i18) kg*m/s^2;
418                                      kg m
419 (%o18)                               ----
420                                        2
421                                       s
422 (%i19) kg*m^2/s^2;
423                                          2
424                                      kg m
425 (%o19)                               -----
426                                        2
427                                       s
428 (%i20) usedimension(N);
429 Done.  To have Maxima simplify to this dimension, use setunits([unit]) 
430 to select a unit. 
431 (%o20)                               true
432 (%i21) usedimension(J);
433 Done.  To have Maxima simplify to this dimension, use setunits([unit]) 
434 to select a unit. 
435 (%o21)                               true
436 (%i22) kg*m/s^2;
437                                      kg m
438 (%o22)                               ----
439                                        2
440                                       s
441 (%i23) kg*m^2/s^2;
442                                          2
443                                      kg m
444 (%o23)                               -----
445                                        2
446                                       s
447 (%i24) setunits([dyn,eV]);
448 (%o24)                               done
449 (%i25) kg*m/s^2;
450 (%o25)                          (100000) (dyn)
451 (%i26) kg*m^2/s^2;
452 (%o26)                    (6241509596477042688) (eV)
453 (%i27) uforget([dyn,eV]);
454 (%o27)                           [false, false]
455 (%i28) kg*m/s^2;
456 (%o28)                                 N
457 (%i29) kg*m^2/s^2;
458 (%o29)                                 J
459 (%i30) kill(usersetunits);
460 (%o30)                               done
461 (%i31) uforget([dyn,eV]);
462 (%o31)                          [false, false]
463 (%i32) kg*m/s^2;
464                                      kg m
465 (%o32)                               ----
466                                        2
467                                       s
468 (%i33) kg*m^2/s^2;
469                                          2
470                                      kg m
471 (%o33)                               -----
472                                        2
473                                       s
474 @end example
475 Desafortunadamente essa ampla variedade de opções é um pouco confus no início,
476 mas uma vez que o usuário cultiva o uso delas o usuário perceberá que elas permitem completo
477 controle sobre seu ambiente de trabalho.
479 @c One other significant customization option available is the @code{setunitprefix}
480 @c command.  Normally, abbreviations used in this package are as close to those
481 @c used in standard texts as possible.  Some people, however, prefer to use those
482 @c symbols for normal work and have units labeled in some other fasion. 
483 @c @code{setunitprefix} is provided for this case.  Here is an example of its use:
485 @end defvr
488 @deffn {Função} metricexpandall (@var{x})
489 Reconstrói listas de unidades globais automaticamente criando todas as unidades métricas desejadas.
490 @var{x} é um argumento numérico que é usado para especificar quantos prefixos
491 métricos o usuário deseja que seja definido.  Os argumentos são os seguintes, com cada
492 maior número definindo todos os menores números de unidade:
493 @example
494            0 - none. Only base units
495            1 - kilo, centi, milli
496 (default)  2 - giga, mega, kilo, hecto, deka, deci, centi, milli,
497                micro, nano
498            3 - peta, tera, giga, mega, kilo, hecto, deka, deci,
499                centi, milli, micro, nano, pico, femto
500            4 - all
501 @end example
502 Normalmente, Maxima não irá definir a expansão completa desses resultados em uma
503 grande número de unidades, mas @code{metricexpandall} pode ser usada para
504 reconstruir a lista em um estilo mais ou menos completo. A variável relevante
505 no arquivo @emph{unit.mac} é @var{%unitexpand}.
506 @c This should be made configurable as a maxima-init.mac controllable option.
507 @end deffn
509 @defvr {Variável} %unitexpand
510 Valor padrão: @code{2}
512 Ess é o valor fornecido a @code{metricexpandall} durante a inicialização
513 de @emph{unit}.
515 @end defvr
518 @c @deffn {Função} functionname (@var{arg1}, @var{arg2}, ..., @var{argn})
519 @c @end deffn
521 @c @defvr {Variável de opção} variablename
522 @c Default value: @code{true}
523 @c @end defvr