Notas sôbre Escalas Funcionais
Ivan de Queiroz Barros
2005
2
Contents
1 Escalas Funcionais
1.1 Introdução . . . . . . . . . . . . . . . . .
1.2 Escala Funcional . . . . . . . . . . . . .
1.3 Representação prática . . . . . . . . . .
1.4 Cesuras . . . . . . . . . . . . . . . . . .
1.5 Escolha dos passos e pontos de cesura . .
1.5.1 Marcha de Cálculo Manual . . . .
1.5.2 Exemplo didático . . . . . . . . .
1.6 Interpolação linear numa escala funcional
1.7 Ajuste dos Módulos . . . . . . . . . . . .
1.8 Erro relativo na leitura de uma escala . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
. 3
. 3
. 5
. 5
. 7
. 8
. 9
. 12
. 12
. 14
2 Programas
15
2.1 O programa Cesuras . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 O programa CadScale . . . . . . . . . . . . . . . . . . . . . . 18
3 Exemplos: Ábacos de Pontos Alinhados
3.1 Ábacos de Pontos Alinhados . . . . . . . . . . . . . . . . . . .
3.2 Casos Particulares . . . . . . . . . . . . . . . . . . . . . . . .
3.3 Exemplo: Ábaco para pV=RT . . . . . . . . . . . . . . . . . .
1
23
23
24
26
2
CONTENTS
Chapter 1
Escalas Funcionais
1.1
Introdução
Com o advento dos computadores digitais muitos dispositivos de cálculo
cairam em desuso como a régua de cálculo, as máquinas manuais e elétricas de calcular. Outros meios como o cálculo gráfico, os ábacos cartesianos
e os de pontos alinhados, perderam grande parte de sua importância, mas
continuam ainda a serem empregados em muitas situações.
O objetivo destas notas é mostrar a utilização dos programas Cesuras,
CadScale e Cadinho na construção e desenho das escalas funcionais e dos
ábacos de pontos alinhados que usam essas escalas.
Neste capítulo, revisitamos a teoria das escalas funcionais, utilizadas nos
ábacos de pontos alinhados. No capítulo 2 apresentamos os programas para
cálculo e desenho das escalas funcionais com o emprego do programa Cadinho (CAD a duas dimensões). No capítulo 3 introduzimos os ábacos de
pontos alinhados e usamos os programas na construção e desenho de um
ábaco para a equação dos gases perfeitos.
Os programas são escritos em Java. O programa Cesuras está escrito de
forma a facilitar o entendimento por quem não é familiar com Java. A seção
2.2 e parte da seção 3.3 supõem o conhecimento de Java.
1.2
Escala Funcional
Seja f : [am , aM ] ⊂ R → R2 uma função de classe C 3 tal que f (a) = 0,
∀a ∈ [am , aM ]. Sejam ainda, x0 ∈ R2 e u1 , u2 ∈ R, u1 > 0, u2 > 0.
3
4
CHAPTER 1. ESCALAS FUNCIONAIS
As equações
x1 = u1 f1 (a) − x01,
x2 = u2 f2 (a) − x02 ,
a ∈ [am , aM ] ,
estabelecem uma correspondência entre os valores a ∈ [am , aM ] e os pontos
x ∈ R2 de uma curva f parametrizada por a, de classe C 3 . Essa correspondência será chamada escala funcional e o suporte da curva, suporte da
escala. Os valores a, são chamados cotas, os valores u1 e u2 são os módulos
da escala, e x0 é chamado ponto de referência.
Se x01 = u1f1 (am ) e x02 = u2f2 (am ), as equações da escala tornamse
x1 = u1 [f1 (a) − f1 (am )] ,
x2 = u2 [f2 (a) − f2 (am )] ,
e a cota am fica associada ao ponto de referência x0.
Se x0 = 0, as equações da escala ficam
x1 = u1 f1 (a) ,
x2 = u2 f2 (a) ,
e o ponto de referência x0 coincide com o ponto origem.
Por conveniência, vamos introduzir a função g : [am , aM ] ⊂ R → R2
definida por
g1 (a) = u1 f1 (a) ,
g2 (a) = u2f2 (a) .
O comprimento da escala entre duas cotas a1 e a2 pode ser calculado por
a2
|g (a)| da
a1
e os comprimentos das projeções do suporte sôbre cada um dos eixos do
sistema de referência valem
l 1 = u1
max f1 (a) − min f1 (a)
am ≤a≤aM
e
l 2 = u2
max
am ≤a≤aM
am ≤a≤aM
f2 (a) −
min
am ≤a≤aM
f2 (a)
1.3. REPRESENTAÇÃO PRÁTICA
1.3
5
Representação prática
Para uma representação gráfica, adotaremos como unidade gráfica 1 mm.
Como o intervalo [am , aM ] é um conjunto infinito, limitamo-nos a representar graficamente um número finito de cotas, as chamada cotas explícitas. Quando não houver perigo de confusão referir-nos-emos simplesmente a
cotas.
Definimos passo, símbolo θ, como a diferença em valor absoluto entre
duas cotas explícitas consecutivas.
Definimos intervalo gráfico, símbolo t, como a medida em valor absoluto
do segmento determinado por duas cotas explícitas consecutivas. Podemos
então escrever
a+θ
t=
|g (s)| ds.
a
onde a é uma cota explícita.
Dois critérios práticos são utilizados para a escolha das cotas explícitas:
Viabilidade Fixamos um valor mínimo t0 para os intervalos gráficos,
com a condição que a olho nu possamos avaliar um décimo do intervalo mínimo escolhido. Dada a possibilidade de avaliação visual de
ε = 0, 1 mm, podemos escolher t0 = 1 mm.
Utilidade A fim de facilitar a leitura das cotas implícitas, adotamos passos
constantes em sub-intervalos, passos êsses, escolhidos entre os seguintes:
···
0, 01
0, 02
0, 05
0, 1
0, 2
1
2
1
2
5
10
20 · · ·
ou
··· 1
2
5
30
1.4
10
15
1o
2o
30
5o
10o · · ·
5
10
15
(1.1)
Cesuras
Chamamos pontos de cesura os pontos do suporte da escala cuja cotas
satisfazem as condições:
1. dividem o intervalo [am , aM ] em partes onde o passo θ é constante
6
CHAPTER 1. ESCALAS FUNCIONAIS
Figure 1.1: Ponto de Cesura
2. em cada uma delas, o valor de θ à esquerda e à direita são distintos.
Indicaremos a cota de um ponto de cesura pela letra ξ.
Suponhamos que estamos cotando a escala com o passo θ e queremos
determinar a cota ξ a partir da qual o passo θ ocasionará intervalos gráficos t
menores que o intervalo mínimo t0 . Temos dois casos, conforme os intervalos
gráficos aumentem num sentido ou outro da curva. Como ambos conduzem
à mesma fórmula, consideraremos apenas um deles, representado na figura
1.1
Num ponto de cesura de cota ξ vale
ξ
ξ+θ
|g (a)| da ≥ t0 >
|g (a)| da.
ξ−θ
ξ
A favor da segurança, podemos escrever
max |g (a)| θ ≥ t0 > min |g (a)| θ
ξ−θ≤a≤ξ
ξ≤a≤ξ+θ
e dividindo por θ
max |g (a)| ≥
ξ−θ≤a≤ξ
t0
> min |g (a)|
ξ≤a≤ξ+θ
θ
Existem ε1 ≥ 0 e ε2 ≥ 0, tais que
max |g (a)| = |g (ξ)| + ε1
ξ−θ≤a≤ξ
e
1.5. ESCOLHA DOS PASSOS E PONTOS DE CESURA
7
min |g (a)| = |g (ξ)| − ε2
ξ≤a≤ξ+θ
donde
t0
> |g (ξ)| − ε2
θ
t0
− |g (ξ)| ≤ ε1 + ε2 .
θ
|g (ξ)| + ε1 ≥
ou
Como ε1 + ε2 → 0 quando θ → 0, e como não se requer uma precisão
absoluta, pois que de qualquer forma o valor achado para ξ será aproximado
para uma cota explícita conveniente respeitando os passos adotados, podemos
escrever
t0
= |g (ξ)|
θ
ou
t0
θ= .
|g (ξ)|
Observemos que
1. g (ξ) = 0.
2. O passo θ obtido da fórmula acima é o passo que ja não serve mais a
partir da cota ξ dada, e que devemos portanto aumentar. A fórmula
porém não nos diz se êsse passo é o passo à direita ou à esquerda de ξ.
3. A cota ξ obtida da fórmula acima a partir de um passo θ dado, é a
cota do ponto de cesura a partir da qual devemos aumentar o passo.
A fórmula porém não indica se θ é o passo à direita ou à esquerda de
ξ.
1.5
Escolha dos passos e pontos de cesura
Inicialmente escolhemos os comprimentos l1 e l2 , de acordo com o retângulo
disponível na folha de desenho para a representação da escala.
Em seguida determinamos os módulos u1 e u2 pelas equações
l 1 = u1
max f1 (a) − min f1 (a)
am ≤a≤aM
am ≤a≤aM
8
CHAPTER 1. ESCALAS FUNCIONAIS
e
l 2 = u2
max
am ≤a≤aM
f2 (a) −
min
am ≤a≤aM
f2 (a)
Se
max f1 (a) =
am ≤a≤aM
min
am ≤a≤aM
f1 (a)
temos necessariamente l1 = 0, e escolhemos arbitrariamente u1 = 1.
A mesma observação vale para f2. Notemos que a condição
f (a) = 0,
∀a ∈ [am , aM ] ,
impede que essa situação aconteça simultaneamente com f1 e f2 .
1.5.1
Marcha de Cálculo Manual
1. Calculamos
θmin =
θmax =
t0
maxam ≤a≤aM |g (a)|
t0
minam ≤a≤aM |g (a)|
,
.
2. Para cada valor do passo que consta na tabela 1.1 e que está incluido no
intervalo [θmin , θmax ] ou que é imediatamente vizinho a êle, calculamos
os valores de ξ que lhe correspondem por meio da equação
|g (ξ)| =
t0
.
θ
3. Pelo exame dos pares (ξ 1 , θ1 ) , (ξ 2, θ2 ) , . . . , (ξ n , θ n ), assim obtidos, fiqual o passo θ a ser atribuído a cada subintervalo
camos sabendo
ξ i , ξ i+1 , i = 1, 2, . . . , n − 1.
4. Finalmente ajustamos os valores ξ i adotando valores convenientes para
as cotas explicitas, e conservamos os que caem dentro do intervalo
[am , aM ].
1.5. ESCOLHA DOS PASSOS E PONTOS DE CESURA
1.5.2
9
Exemplo didático
Escolher os passos e pontos de cesura para uma escala funcional, da qual são
dados
f1 (a) = (a − 1)2
f2 (a) = (a − 2) (10 − a) + 4
2 ≤ a ≤ 10
l1 = 160, l2 = 100.
Cálculo de u1 e u2.
Como f1 (a) = 2 (a − 1) > 0, para 2 ≤ a ≤ 10, f1 é estritamente crescente, donde
160 = l1 = u1 [f1 (10) − f1 (2)] = u1 (81 − 1) = 80u1 .
Logo
u1 = 2
Como f2 (a) = 2 (6 − a) vemos que f2 admite máximo em a = 6 onde assume o valor f2 (6) = 20, é estritamente crescente à esquerda de
a = 6, e estritamente decrescente à direita. Nas extremidades do intervalo
de definição, apresenta os valores f2 (2) = 0, e f2 (10) = 0. Portanto
100 = l2 = u2 [f2 (6) − f2 (2)] = u2 (20 − 0) = 20u2.
Logo
u2 = 5
Cáculo de θmax e θmin .
A função g e sua derivada g ficam definidas por
g1 (a) = 2 (a − 1)2 ,
g2 (a) = 5 (a − 2) (10 − a) + 20,
g1 (a) = 4 (a − 1) ,
g2 (a) = 10 (6 − a) .
Para cálculo de θmax e θmin usamos a fórmula
θ2 =
t20
.
|g (a)|2
10
CHAPTER 1. ESCALAS FUNCIONAIS
Adotaremos t0 = 1 mm. Então
θ2 =
g1
1
1
.
2 =
2
(a) + g2 (a)
16 (a − 1) + 100 (6 − a)2
2
Derivando h (a) = 16 (a − 1)2 + 100 (6 − a)2
obtemos
h (a) = 232a − 1.232
cuja raiz é a = 5, 31 .
Como
h (2) < 0, h (2) = 1.616,
e
h (5, 31) = 366, 21,
h (10) > 0, h (10) = 2.896,
vemos que
max h (a) = 2.896 e
min h (a) = 366, 21
2≤a≤10
Portanto
θmin =
θmax =
2≤a≤10
√ 1
2.896
√ 1
366,21
= 0, 0185
= 0, 0523
Cálculo dos pares (ξ i , θi ).
Tendo em vista os valores de θmin e θmax , selecionamos na tabela 1.1 os passos
0, 01 0, 02 0, 05 0, 10
Calculamos as cotas dos pontos de cesura ξ pela fórmula
2
|g (ξ)| =
t20
θ2
Mas
|g (ξ)|2 = 16 (a − 1)2 + 100 (6 − a)2 = 116ξ 2 − 1.232ξ + 3.613
Devemos então resolver a equação
116ξ 2 − 1.232ξ + 3.613 −
1
=0
θ2
1.5. ESCOLHA DOS PASSOS E PONTOS DE CESURA
11
para θ = 0, 01, 0, 02, 0, 05, e 0, 10 .
Obtemos
θ
0, 01
0, 02
0, 05
0, 10
Raiz
Raiz
−3, 814 14, 435
0, 997 9, 624
4, 602 6, 018
−
−
As raizes para θ = 0, 10 são complexas.
Atribuição dos passos aos subintervalos ξ i , ξ i+1 .
Pela tabela 1.2,
ξ
θ
−3, 814
0, 997
4, 602
6, 018
9, 624
14, 435
0, 01
0, 02
0, 05
0, 05
0, 02
0, 01
(1.2)
resulta a distribuição das cotas dos pontos de cesura e passos representada
na tabela 1.3.
Passos
−3, 814 a 0, 997
0, 01
0, 997 a 4, 602
0, 02
(1.3)
4, 602 a 6, 018
0, 05
6, 018 a 9, 624
0, 02
9, 624 a 14, 435
0, 01
Ajustamento dos pontos de cesura.
Ajustando as cotas dos pontos de cesura para cotas explícitas convenientes,
levando em consideração os passos, resulta a distribuição final representada
12
CHAPTER 1. ESCALAS FUNCIONAIS
na tabela 1.4
2, 0 a 4, 0
4, 0 a 7, 0
7, 0 a 10, 0
1.6
Passos
0, 02
0, 05
0, 02
(1.4)
Interpolação linear numa escala funcional
Para efetuarmos uma leitura entre duas cotas explícitas da escala funcional,
podemos imaginar o segmento de curva, entre duas cotas explicitas, subdividido segundo um passo dez vezes menor.
A leitura assim feita é problemática porquê a subdivisão assim feita é em
geral não uniforme e portanto de difícil avaliação.
Um procedimento aproximado, mais realista, consiste em supor que o
suporte da escala entre duas cotas explícitas consecutivas é um segmento de
reta (corda) , e dividir mentalmente o intervalo gráfico em dez partes iguais.
Estaremos então fazendo uma interpolação linear visual. É com o objetivo
de possibilitar essa interpolação que escolhemos t0 = 10ε = 1 mm.
Êsse processo envolve na maioria das vezes um erro gráfico, que pode ser
expresso por
|x − x1 |
onde x é posição verdadeira da cota e x1 a posição aproximada em que se
supõe que esteja.
Para que o processo seja considerado “praticamente exato” é preciso que
o erro gráfico cometido |x − x1 |, não exceda o menor intervalo entre dois
pontos que o olho humano possa perceber, isto é,
|x − x1| ≤ ε.
Para que esta condição seja satisfeita, veremos como ajustar os módulos
por um fator α > 0.
1.7
Ajuste dos Módulos
Substituamos os módulos u1 e u2 por αu1 e αu2 .
Sejam a e a + θ duas cotas explícitas consecutivas, e a + mθ,
com 0 ≤ m ≤ 1, uma cota intermediária. Substituindo
x − x1 = α [g (a + mθ) − g (a)] − mα [g (a + θ) − g (a)]
1.7. AJUSTE DOS MÓDULOS
13
em |x − x1 | ≤ ε (condição fundamental), vem
α |g (a + mθ) − g (a) − mg (a + θ) + mg (a)| ≤ ε.
Desevolvendo g (a + mθ) e g (a + θ) pela fórmula de Taylor e desprezando
os termos de ordem superior à segunda, obtemos as expressões aproximadas
g (a + mθ) − f (a) ≈ mθg (a) +
e
m [g (a + θ) − g (a)] ≈ mθg (a) +
m2 θ2 g (a)
2
mθ2 g (a) .
2
Ficamos com,
m (m − 1) 2 θ g (a) ≤ ε.
2
O valor máximo de m (m − 1) é 1/4 e portanto a favor da segurança
podemos escrever
αθ2 g (a) ≤ ε.
8
O valor máximo que admitimos para θ num ponto a é, como ja vimos,
α
θ=
2t0
α |g (a)|
(condição subsidiária), e portanto ainda a favor da segurança,
4t20
α
(a)
g
≤ ε,
2
8 α2 |g (a)|
isto é,
α≥
t20 g (a) ε
.
2 |g (a)|2
Se adotarmos os valores t0 = 1 mm, e ε = 0, 05 mm, teremos:
g (a)
α ≥ 10 ·
|g (a)|2
Em conclusão, se esta desigualdade for respeitada, ao fazermos uma interpolação linear a olho, o erro gráfico cometido será menor que ε = 0, 05 mm
(condição fundamental) desde que os intervalos gráficos não excedam apreciavelmente o dobro do intervalo gráfico mínimo t0 = 1 mm (condição subsidiária).
14
1.8
CHAPTER 1. ESCALAS FUNCIONAIS
Erro relativo na leitura de uma escala
Da equação de construção da escala
x = g (a) − x0
resulta a aproximação
|∆x| = |g (a)| |∆a| .
Fazendo |∆x| = ε, temos a estimativa para o erro relativo na avaliação
da cota a.
|∆a|
ε
δa =
= |a|
|g (a)| |a|
Chapter 2
Programas
Conforme as expressões que definem as funções f1 e f2 , o procedimento indicado no Capítulo 1 para o cálculo das cesuras pode ser muito trabalhoso.
Como alternativa, apresentamos a seguir um programa simples em Java, facilmente transportável para outra linguagem, para obter os pontos de cesura e
os passos, e que dispensa o cálculo das derivadas.
2.1
O programa Cesuras
package cesura;
abstract class CesurasData {
static double getMinimumInterval() {
return 1.0;
}
static double getStartCota() {
return 2.0;
}
static double getEndCota() {
return 10.0;
}
static double[] getStepTable() {
return new double[] {0.01,0.02,0.05,0.10,0.20,0.50,1.00};
15
16
CHAPTER 2. PROGRAMAS
}
static double g1(double a) {
return 2*(a-1)*(a-1);
}
static double g2(double a) {
return 5*(a-2)*(10-a)+4;
}
} // end of CesurasData class
public class Cesuras {
static double[] theta = CesurasData.getStepTable();
static double a = CesurasData.getStartCota();
static double aM = CesurasData.getEndCota();
static double t0 = CesurasData.getMinimumInterval();
static {t0 = t0*t0;}
// Returns the index of a step that is neither too small
// nor too large.
// Returns − 1 if the method f ails.
static int startStepIndex(double a) {
double t;
for (int k = 0; k < theta.length; k++) {
t = interval(a,theta[k]);
if (t >= t0 && t <= 6.25*t0) {
return k;
}
}
return -1;
}
2.1. O PROGRAMA CESURAS
17
// Returns the square of g(a + step) − g(a)
static double interval(double a, double step) {
double x1 = CesurasData.g1(a);
double x2 = CesurasData.g2(a);
double y1 = CesurasData.g1(a + step) - x1;
double y2 = CesurasData.g2(a + step) - x2;
return y1*y1 + y2*y2;
}
public static void main(String[] args) {
double t, t1;
int k = startStepIndex(a);
double step = theta[k];
System.out.println(‘‘Cesura = ’’+a+‘‘ Passo = ’’+step);
do {
a = a+step;
t = interval(a,step);
if (t > 6.25*t0) {
t1 = interval(a,theta[k-1]);
if (t1 >= t0) {
k=k-1;
step = theta[k];
System.out.println(‘‘Cesura = ’’+a+‘‘ Passo = ’’+step);
}
}
else if (t < t0) {
k = k + 1;
step = theta[k];
System.out.println(‘‘Cesura = ’’+a+‘‘ Passo = ’’+step);
}
}
while (a <= aM);
}
} // end of Cesuras class
18
CHAPTER 2. PROGRAMAS
A classe CesurasData fornece os dados da escala que ja havíamos analisado. Para usar o programa com outra escala, basta substituir o corpo dos
métodos da classe CesurasData de acordo com os novos dados. Os pontos
de cesura fornecidos pelo programa devem ser ajustados convenientemente
de conforme os passos fornecidos. Observe que não é necessário o cálculo das
derivadas de f1 e f2 .
2.2
O programa CadScale
Uma vez determinados os pontos de Cesura, queremos desenhar a escala
funcional. Para isso podemos empregar o programa Cadinho. Este possui
no seu menu File o comando Load Objects que carrega um arquivo de
objetos gráficos e os adiciona ao desenho corrente.
Para construir o arquivo de objetos que descreve a escala funcional, usamos o programa CadScale.
Os dados para o programa CadScale devem ser fornecidos pelos métodos
de uma classe que implementa a interface CadScale.ScaleData declarada
a seguir.
interface CadScale.ScaleData {
boolean isStraightLine();
double getStartCota();
double getEndCota();
double[][] getCesurasTable();
double g1(double a);
double g2(double a);
int getNumberOfDecimals();
int getFontSize();
double getAdjustmentFactor();
}
Para o exemplo analisado no Capítulo 1, implementamos a interface
CadScale.ScaleData pela classe abaixo, que denominamos
ExampleScaleData
package cadscale;
2.2. O PROGRAMA CADSCALE
class ExampleScaleData implements CadScale.ScaleData {
public ExampleScaleData() {
}
public boolean isStraightLine() {
return false;
}
public double getStartCota() {
return 2.0;
}
public double getEndCota() {
return 10.0;
}
public double[][] getCesurasTable() {
return new double[][] {{ 2.0, 0.05, 10},
{ 4.0, 0.10, 10},
{ 7.0, 0.05, 10},
{10.0, 0.00, 0}};
}
public double g1(double a) {
return 2*(a-1)*(a-1);
}
public double g2(double a) {
return 5*(a-2)*(10-a)+4;
}
public int getNumberOfDecimals() {
return 2;
}
public int getFontSize() {
return 14;
}
public double getAdjustmentFactor() {
return 1.2;
}
}
19
20
CHAPTER 2. PROGRAMAS
Compilamos a classe ExampleScaleData. Vamos supor que o arquivo
resultante ExampleScaleData.class, foi colocado na pasta <path>\cadscale,
onde <path> indica a rota do package cadscale.
O programa CadScale pode então ser executado pela linha de comando
Java -cp <path> cadscale.CadScale(“ExampleScaleData”)
Durante a execução, o programa CadScale pede o nome do arquivo no
qual os objetos que descrevem graficamente a escala são gravados. Suponhamos que chamamos esse arquivo c:\ExemploScaleData.obj .
Carregamos agora o programa Cadinho e invocamos o seu comando
LoadObjects indicando o arquivo c:\ExemploScaleData.obj .
O desenho da escala aparece na janela do Cadinho. Podemos agora
manipular o desenho, ampliando, reduzindo, centralizando, colocando título,
margem, etc.
Na figura 2.1 vemos uma reprodução do desenho da escala impressa pelo
Cadinho.
2.2. O PROGRAMA CADSCALE
Figure 2.1:
21
22
CHAPTER 2. PROGRAMAS
Chapter 3
Exemplos: Ábacos de Pontos
Alinhados
O objetivo desta seção é demonstrar o uso dos programas Cesuras,
CadScale e Cadinho na construção de Ábacos de Pontos Alinhados.
Inicialmente, uma breve introdução a este tipo de ábaco.
3.1
Ábacos de Pontos Alinhados
Êstes ábacos permitem a representação de certas equações da forma
F (z1 , z2 , z3 ) = 0 por meio de três escalas funcionais
x1 = u1 ϕ1 (z1) + x0
y1 = u2 ϕ2 (z1) + y0
x2 = u1 ψ 1 (z2 ) + x0
y2 = u2 ψ 2 (z2 ) + y0
x3 = u1 ν 1 (z3 ) + x0
y3 = u2 ν 2 (z3 ) + y0
(3.1)
As escalas são contruidas de modo que a leitura no ábaco possa ser feita
da seguinte maneira.
Dados os valores de dois argumentos de F , por exemplo z1 e z2 , obtemos
o terceiro z3 traçando a reta que passa pelo ponto de cota z1 da primeira
escala e pelo ponto de cota z2 da segunda escala.
O valor z3 correspondente é lido na terceira escala como a cota do ponto
de interseção da reta com a terceira escala. Daí o nome de ábaco de pontos
alinhados.
23
24
CHAPTER 3. EXEMPLOS: ÁBACOS DE PONTOS ALINHADOS
A condição para que tres pontos (x1 , y1 ), (x2 , y2), (x3 , y3 ) pertençam a
uma reta é


x 1 y1 1
det  x2 y2 1  = 0.
x 3 y3 1
Substituindo as expressões 3.1, obtemos


u1 ϕ1 (z1 ) + x0 u2 ϕ2 (z1) + y0 1
det  u1 ψ1 (z2 ) + x0 u2 ψ 2 (z2 ) + y0 1  = 0
u1 ν 1 (z3) + x0 u2 ν 2 (z3 ) + y0 1
que após simplificação fica


ϕ1 (z1 ) ϕ2 (z1 ) 1
det  ψ 1 (z2 ) ψ2 (z2 ) 1  = 0
ν 1 (z3 ) ν 2 (z3) 1
(3.2)
A equação 3.2 é a forma mais geral das equações F (z1 , z2 , z3) = 0 representáveis por ábacos de pontos alinhados.
3.2
Casos Particulares
Conforme a natureza dos suportes das escalas, a equação F (z1 , z2 , z3 ) = 0
assume formas particulares:
1. Caso de tres retas paralelas
Fazendo ϕ1 (z1) = δ1 ,
ψ1 (z2 ) = δ 2,

δ1 ϕ2 (z1 )

det δ2 ψ 2 (z2)
δ3 ν 2 (z3 )
ν 1 (z3 ) = δ 3, temos

1
1 =
1
= ϕ2 (z1 ) (δ 3 − δ 2) + ψ 2 (z2) (δ 1 − δ3 ) + ν 2 (z3) (δ2 − δ1 ) = 0
A forma canônica para este tipo de ábaco é então
f (z1 ) + g (z2) + h (z3 ) = 0
3.2. CASOS PARTICULARES
25
2. Caso de duas retas paralelas e uma inclinada
Fazendo ϕ1 (z1 ) = 0,

0
ϕ2 (z1 )

ψ2 (z2)
det δ
ν 1 (z3 ) m ν 1 (z3 )
ou
ϕ2 (z1)
ψ 1 (z2 ) = δ, ν 2 (z3) = m ν 1 (z3) , temos

1
1  = ϕ2 (z1 ) (ν 1 (z3 ) − δ)−ψ 2 (z2 ) ν 1 (z3 )+δ m ν 1 (z3 ) = 0
1
(ν 1 (z3 ) − δ)
= ψ 2 (z2) − δ m
ν 1 (z3 )
(3.3)
A forma canônica para este tipo de ábaco é então
f1 (z1 ) h (z3 ) = g (z2)
3. Caso de tres retas concorrentes
Fazendo ϕ2 (z1 ) = m1 ϕ1 (z1 ) , ψ1 (z2 ) = m2 ψ1 (z2 ) ,
temos


ϕ1 (z1 ) m1 ϕ1 (z1) 1
det  ψ 1 (z2) m2 ψ 1 (z2 ) 1  =
ν 1 (z3 ) m 3ν 1 (z3 ) 1
ν 2 (z3 ) = m3 ν 1 (z3 ),
= m1 ϕ1 (z1) (ν 1 (z3 ) − ψ1 (z2 )) + m2 ψ 1 (z2 ) (ϕ1 (z1 ) − ν 1 (z3 )) +
+m3 ν 1 (z3) (ψ1 (z2) − ϕ1 (z1 )) = 0
ou
m3 − m2 m1 − m3 m2 − m1
+
+
=0
ϕ1 (z1)
ψ 1 (z2 )
ν 1 (z3 )
A forma canônica para este tipo de ábaco é então
1
1
1
+
+
=0
f (z1 ) g (z2 ) h (z3)
4. Caso de duas retas paralelas e uma curva
Fazendo ϕ1 (z1 ) = 0, ψ 1 (z2 ) = δ, temos


0
ϕ2 (z1 ) 1
det  δ
ψ2 (z2) 1  = ϕ2 (z1) (ν 1 (z3 ) − δ)−ψ 2 (z2 ) ν 1 (z3 )+δ ν 2 (z3 ) = 0
ν 1 (z3 ) ν 2 (z3 ) 1
26
CHAPTER 3. EXEMPLOS: ÁBACOS DE PONTOS ALINHADOS
ou
= ϕ2 (z1) − ψ 2 (z2 )
ν 1 (z3 )
δ ν 2 (z3 )
+
=0
ν 1 (z3 ) − δ ν 1 (z3 ) − δ
A forma canônica para este tipo de ábaco é então
f (z1) + g (z2 ) h1 (z3 ) + h2 (z3) = 0
3.3
Exemplo: Ábaco para pV=RT
Construir um ábaco de pontos alinhados para a equação dos gases perfeitos
pV = nRT
para n = 1 mol, onde
p pressão em kP a (kilo Pascal)
V volume em L (litro)
R = 8, 3145 (constante universal)
T temperatura em K o (graus Kelvin)
Solução
Comparando pV = RT com a forma canônica f (z1) h (z3) = g (z2)
façamos z1 = p, z2 = T , z3 = V , e
f (p) = 10 p
g (T ) = −RT
h (V ) = −V /10
A adaptação da equação dada à uma forma canônica não é única. Escolhemos aquela que julgamos mais conveniente, por experimentação. Êste foi
o motivo, por exemplo, da escolha do sinal negativo nas definições de g e h,
bem como dos fatores 10 e 1/10 nas definições de f e h.
Comparando com a equação 3.3, temos
ϕ2 (p) = f (p) = 10 p
ψ2 (T ) − δ m = g (T ) = −RT
(ν 1 (V ) − δ) /ν 1 (V ) = h (V ) = −V /10
3.3. EXEMPLO: ÁBACO PARA PV=RT
donde
27
ϕ2 (p) = 10 p
ψ 2 (T ) = δm − RT
ν 1 (V ) = δ/ (1 + V /10)
De acordo com as expressões 3.1 e 3.2, e lembrando que no caso de duas
retas paralelas e uma com inclinação m temos
ϕ1 (p) = 0,
ψ1 (T ) = δ,
ν 2 (V ) = m ν 1 (V ) ,
obtemos as equações das tres escalas funcionais
x1 = x0
y1 = u2 10p + y0
x 2 = u1 δ + x 0
y2 = u2 (δm − RT ) + y0
x3 = u1 1+Vδ/10 + x0
mδ
y3 = u2 1+V
+ y0
/10
Para que o ábaco caiba numa folha tamanho carta, escolhemos o comprimento das duas primeiras escalas igual a 200 mm, e a distância horizontal
x2 − x1 entre elas igual a 125 mm, isto é, u1 δ = 125.
Vamos adotar x0 = 0 e y0 = 0.
Resulta
125
.
x1 = 0, x2 = 125, e x3 =
V
1 + 10
O valo máximo de y2 se dá para T = 0. Portanto 200 = u2 δm.
Logo
200
y3 =
V
1 + 10
Vamos variar T de 0 a 600. Para que y2 = u2 (δm − 600R) seja aproximadamente zero devemos ter δm − 600R ≈ 0, ou δm ≈ 600 × 8, 3145.
Adotemos δm = 5.000.
Então u2 = 200 ÷ 5.000 = 0, 04.
Resulta
y1 = 0, 4 p e y2 = 0, 04 (5000 − 8, 3145 T )
Vamos variar p de 0 a 500 e V de 0 a 100.
As duas escalas verticais paralelas (cotas p e T ) são uniformes e portanto
sem pontos de cesura.
28
CHAPTER 3. EXEMPLOS: ÁBACOS DE PONTOS ALINHADOS
Escolhemos os pontos de cesura da terceira escala (cota V ) por meio do
programa Cesuras.
Obtemos a tabela
Cesura
P asso
0, 0
0, 9
5, 3
14, 3
24, 3
38, 3
68, 3
98, 3
0, 1
0, 2
0, 5
1, 0
2, 0
5, 0
10, 0
20, 0
Cesura
P asso
0, 0
1, 0
5, 0
15, 0
20, 0
40, 0
60, 0
100, 0
0, 1
0, 2
0, 5
1, 0
2, 0
5, 0
10, 0
−
que depois de ajustada fica
Para a construção da escala de cotas V introduzimos a classe
VolumeScaleData, a seguir, que implementa a interface CadScale.ScaleData.
package cadscale;
class VolumeScaleData implements CadScale.ScaleData {
public VolumeScaleData() {
}
public boolean isStraightLine() {
return true;
}
public double getStartCota() {
3.3. EXEMPLO: ÁBACO PARA PV=RT
29
return 0.0;
}
public double getEndCota() {
return 100.0;
}
public double[ ][ ] getCesurasTable() {
return new double[ ][ ]
{{
0.0, 0.1, 10 },
{
1.0, 0.2, 5 },
{
5.0, 0.5, 2 },
{ 15.0, 1.0, 5 },
{ 20.0, 2.0, 5 },
{ 40.0, 5.0, 2 },
{ 60.0, 10.0, 2 },
{ 100.0, 0.0, 0 }};
}
public double g1(double a) {
return 1250/(10+a);
}
public double g2(double a) {
return 2000/(10+a);
}
public int getNumberOfDecimals() {
return 0;
}
public int getFontSize() {
return 20;
}
public double getAdjustmentFactor() {
return -0.8;
}
}
Para a construção da escala de cotas p introduzimos a classe
PressureScaleData, a seguir, que implementa a interface CadScale.ScaleData.
package cadscale;
30
CHAPTER 3. EXEMPLOS: ÁBACOS DE PONTOS ALINHADOS
class PressureScaleData implements CadScale.ScaleData {
public PressureScaleData() {
}
public boolean isStraightLine() {
return true;
}
public double getStartCota() {
return 0.0;
}
public double getEndCota() {
return 500.0;
}
public double[ ][ ] getCesurasTable() {
return new double[ ][ ]
{{
0.0, 5, 5 },
{ 500.0, 0, 0 }};
}
public double g1(double a) {
return 0.0;
}
public double g2(double a) {
return 0.4*a;
}
public int getNumberOfDecimals() {
return 0;
}
public int getFontSize() {
return 20;
}
public double getAdjustmentFactor() {
return 1;
}
}
Para a construção da escala de cotas T introduzimos a classe
TemperatureScaleData, que implementa a interface CadScale.ScaleData.
3.3. EXEMPLO: ÁBACO PARA PV=RT
package cadscale;
class TemperatureScaleData implements CadScale.ScaleData {
public TemperatureScaleData() {
}
public boolean isStraightLine() {
return true;
}
public double getStartCota() {
return 0.0;
}
public double getEndCota() {
return 600.0;
}
public double[ ][ ] getCesurasTable() {
return new double[ ][ ]
{{
0.0, 5, 5 },
{ 600.0, 0, 0 }};
}
public double g1(double a) {
return 125.0;
}
public double g2(double a) {
return 0.04*(5000 - 8.3145*a);
}
public int getNumberOfDecimals() {
return 0;
}
public int getFontSize() {
return 20;
}
public double getAdjustmentFactor() {
return -0.8;
}
}
31
32
CHAPTER 3. EXEMPLOS: ÁBACOS DE PONTOS ALINHADOS
Após compilar as classes VolumeScaleData, PressureScaleData e
TemperatureScaleData, executamos sucessivamente o programa CadScale,
tendo como argumentos “VolumeScaleData”, “PressureScaleData” e “TemperatureScaleData”.
Em cada execução é gerado um arquivo de objetos gráficos para uma das
escalas. Batizamos estes arquivos volume.obj, pressure.obj e temperature.obj.
Usamos agora o programa genérico de desenho Cadinho para obter o
desenho do ábaco, carregando sucessivamente os tres arquivos de extensão
obj pelo comando Load Objects do Cadinho.
Pelo Cadinho incluimos título, borda e textos, e imprimimos o desenho
do ábaco com o comando Print, obtendo a figura 3.1.
3.3. EXEMPLO: ÁBACO PARA PV=RT
Figure 3.1: Ábaco para pV=RT
33
Download

Notas sôbre Escalas Funcionais