[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

RE: PROBLEMAS NA FUNÇÃO LOCALIZA





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