[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
RE: PROBLEMAS NA FUNÇÃO LOCALIZA
- Subject: RE: PROBLEMAS NA FUNÇÃO LOCALIZA
- From: Yoshiko Wakabayashi <yw@ime.usp.br>
- Date: Mon, 06 Nov 2000 21:21:18 -0300
Resposta à mensagem abaixo enviada por Ricardo da Silva Benedito:
> Date: Mon, 6 Nov 2000 14:10:11 -0200
> From: "Ricardo Benedito" <risibe@ig.com.br>
> To: "Lista MAC115" <yoshi-mac115@ime.usp.br>
> Subject: =?iso-8859-1?Q?PROBLEMAS_NA_FUN=C7=C3O_LOCALIZA?=
>
>
> De Ricardo da Silva Benedito
>
>
> Olá Pessoal!!! Aqui está uma parte da msg que enviei ao professor,
> referindo-me a problemas na função LOCALIZA..
>
> Na verdade, utilizando os valores de X1,Y1,D10....etc fornecidos no
> exemplo de entrada e saída, não chego ao resultado de d12-d13 (ainda
> não pensei em como extrair d21-d23 e d31-d32). De acordo com o
> exemplo, deveríamos chegar em (X0,Y0)=(271.3952 , 148.5536). Eu estou
> chegando em (X0,Y0)=(1.06952e+007, 1.16484e+007). Absurdo? Pois
> resolvendo manualmente o sistema, ou seja, sem usar o programa,
> chegamos no mesmo resultado!!!. Vou mostrar como resolvi:
>
> Para a combinação (1-2)(1-3):
> Do enunciado, temos que xo = a12 + b12yo (1) e
> xo = a13 + b13yo (2)
> Igualando-se (1) e (2), temos:
>
> a12+b12yo = a13 +b13yo
> yo(b12-b13) = a13 - a12
>
> yo = (a13-a12)/(b12-b13) (3)
>
> Voltando em (1) e substituindo o valor de yo,
> temos que:
> xo = a12 + b12*yo (4)
>
> Basta agora calcular os valores de a12, a13, b12,
> b13, sabendo que :
>
> a12=(X1*X1-X2*X2+Y1*Y1-Y2*Y2-D10*D10+D20*D20)/2*(X1-X2);
> a13=(X1*X1-X3*X3+Y1*Y1-Y3*Y3-D10*D10+D30*D30)/2*(X1-X3);
> b12=(Y2-Y1)/(X1-X2);
> b13=(Y3-Y1)/(X1-X3);
>
> De acordo com o exemplo de entrada e saída:
>
> X1=320.1 ; X2=110.2 ; Y1= 149.8 ;
> Y2=97.9 ; D10= 48.867 ; D20=169.0088
> X3=205.4 ; Y3= 234.1 ; D30=108.1103
>
> Então, podemos escrever:
>
> a12= (sqr(320.1) - sqr(110.2) +sqr(149.8)-
> sqr(97.9) -sqr(48.867)+
> sqr(169.0088))/2*(320.1-110.2) = 13575449
>
> a12=(sqr(320.1) - sqr(205.4) +sqr(149.8)-
b12
> sqr(234.1)-sqr(48.867)+
> sqr(108.1103))/2*(320.1-205.4)= 2134104,4
>
> b12=(97.9-149.8)/(320.1-110.2) = -
> 0,2472606
> b13=(234.1-149.8)/(320.1-205.4) =
> 0,73496077
>
> Substituindo esses valores em (3) e (4),
> resulta:
>
> yo = (2134104.4-13575449)/( -0.2472606 -
> 0.73496077) =11648438=1.16484e+007
>
> xo = 13575449+( -0.2472606*11648438) =10695249 =
> 1.06952e+007
>
> Como vcs viram, esse valor "absurdo" foi obtido
> manualmente (claro que usei uma calculadora)!!!!
>
> SE ALGUÉM TEVE OS MESMOS PROBLEMAS , POR FAVOR, COMUNIQUE A LISTA, SE
> POSSÍVEL FORNECENDO A SOLUÇÃO CORRETA DO SISTEMA. OBRIGADO. RICARDO.
>
Oi Ricardo,
O seu raciocínio está correto. Mas, v. cometeu um erro ao
transcrever as fórmulas para o cálculo de a12 e a13.
Você escreveu:
> a12=(X1*X1-X2*X2+Y1*Y1-Y2*Y2-D10*D10+D20*D20)/2*(X1-X2);
> a13=(X1*X1-X3*X3+Y1*Y1-Y3*Y3-D10*D10+D30*D30)/2*(X1-X3)
Veja porém que as fórmulas corretas são:
a12=(X1*X1-X2*X2+Y1*Y1-Y2*Y2-D10*D10+D20*D20)/(2*(X1-X2));
^ ^
| |
a13=(X1*X1-X3*X3+Y1*Y1-Y3*Y3-D10*D10+D30*D30)/(2*(X1-X3))
^ ^
| |
Nas suas fórmulas estão faltando os parênteses na expressão do
denominador. Esses parênteses fazem uma grande diferença!
Note que a fórmula genérica dada no enunciado esta' assim:
aij = (xi*xi - xj*xj + yi*yi - yj*yj - dio*dio + djo*djo)/(2(xi-xj)).
Pelo que deu para notar, você de fato fez os cálculos usando as suas
fórmulas: calculou a expressao contida no primeiro parêntesis,
dividiu o resultado por 2 e depois multiplicou por x1-x2. Idem para a
segunda fórmula.
Refizemos os cálculos usando essas fórmulas (as suas e as corretas),
e encontramos os seguintes valores:
a12 = 1.35754e+07 <------- resultado usando a sua fórmula
A12 = 308.127 <------- resultado usando a fórmula correta
a13 = 2.1341e+06 <------- resultado usando a sua fórmula
A13 = 162.214 <------- resultado usando a fórmula correta
b12 = -0.247261
b13 = 0.734961
yo = 1.16484e+07 <------- resultado usando os seus valores
Yo = 148.554 <------- resultado usando os valores corretos
xo = 1.06952e+07 <------- resultado usando os seus valores
Xo = 271.395 <------- resultado usando os valores corretos
Até mais,
Yoshiko e Yoshi