[Arquivo!] Pura matemática, física, química, etc.: problemas de treinamento do cérebro não relacionados ao comércio de qualquer forma - página 558

 
Se o vetor1 é ortogonal ao vetor2 e o vetor2 é ortogonal ao vetor3, então o vetor1 nem sempre é ortogonal ao vetor3 mesmo no espaço tridimensional, muito menos em mais dimensões
 
alsu:
Pode não se tornar co-direcional, mas simplesmente em um ângulo oblíquo para todos ou alguns dos vetores
Mas não pode! Não pode para aqueles que já foram processados, mas pode para os que já foram processados, mas as próximas iterações irão lidar com eles da mesma forma.
 
MetaDriver:
Mas não pode! Para aqueles que já foram processados, não pode, mas para os próximos insumos, pode, mas as próximas iterações irão lidar com eles da mesma forma.
As próximas iterações em geral não mantêm a orientação para os vetores processados anteriormente - ver meu posto anterior
 
alsu:
Se o vetor1 é ortogonal ao vetor2 e o vetor2 é ortogonal ao vetor3, então o vetor1 está longe de ser sempre ortogonal ao vetor3 mesmo no espaço tridimensional, e muito menos em mais dimensões

Portanto, você ainda não entendeu o ponto principal. A transformação em cada etapa é estritamente plana - coloca o vetor em posição ortogonal ao anterior, deixando-o ortogonal a todos os anteriores. É isso que eu venho buscando desde o início. Esse era o problema (que agora foi resolvido).

Pense novamente. Verificar.

 
alsu:
As seguintes iterações geralmente não retêm uma orogonalidade para os vetores processados anteriormente - ver meu posto anterior

reter.

Talvez eu não tenha deixado isso suficientemente claro. Vou escrever um esquema completo agora. é um esquema pequeno.

 
MetaDriver:

Portanto, você não entende o ponto PRINCIPAL. A transformação em cada etapa é estritamente plana - coloca o vetor em posição ortogonal ao anterior, deixando-o ortogonal a todos os anteriores. É isso que eu venho buscando desde o início. Esse era o problema (que agora foi resolvido).

Pense novamente. Verificar.

Verificado)))

A transformação é, é claro, estritamente plana, e o resultado é geralmente ao sinal exato independente da escolha do vetor arbitrário inicial - mas! somente neste plano. Quem nos disse que de um número infinito de opções para desenhar um avião através de um determinado vetor, nós escolhemos a opção certa?

Aqui está um exemplo. Suponha que você tenha dois vetores no espaço tridimensional: (1,0,0) e (0,sqrt(2),sqrt(2)). Eles são ortogonais, como você pode ver. Você começou levando um x1 arbitrário no plano z=0 e usando-o para construir um vetor ortogonal (0,1,0) para o primeiro vetor. Obtemos que o algoritmo está completo, mas o resultado não é obtido - o terceiro vetor não é ortogonal ao segundo vetor restante. E para obter a resposta certa, você precisa tomar cuidado antes de escolher o plano certo durante a primeira construção - e então você chegará à variante (0,-sqrt(2),sqrt(2)) ou à segunda solução possível.

 
double[dim]  GetOrtoVector(int dim, int count, double[][dim] &Input)

  {

    bool error=false;

    double[dim]  Result = RandomInit(dim);

    for (i=0; i<count; i++)  { Result = Ortogonalize(Result, Input[i], error); }
    
    if (error) return GetOrtoVector(dim,count,Input);  else    return Result;

  }

double[dim] Ortogonalize(double[dim] a, double[dim] b, bool &err)

  {

    double SP = sp(a,b);

    if (sp==1.0) {err = true; return a;} else {return  (a-SP*b);  }

  }

Ainda não expliquei como obter o produto escalar e a geração vetorial inicial. É bastante auto-explicativo.

Também não descrevi a subtração vetorial e a multiplicação vetorial por um número. O Pseudocódigo é tão bom quanto...

 
alsu:

Verificado)))

A transformação é, naturalmente, estritamente planar, e o resultado é geralmente preciso a um sinal, independentemente da escolha do vetor arbitrário original - mas! somente neste plano. Quem nos disse que, de um número infinito de opções para desenhar um plano através de um determinado vetor, escolhemos a opção certa?

Aqui está um exemplo. Suponha que você tenha dois vetores no espaço tridimensional: (1,0,0) e (0,sqrt(2),sqrt(2)). Eles são ortogonais, como você pode ver. Você começou levando um x1 arbitrário no plano z=0 e usando-o para construir um vetor ortogonal (0,1,0) para o primeiro vetor. Obtemos que o algoritmo está completo, mas o resultado não é obtido - o terceiro vetor não é ortogonal ao segundo vetor restante. E para obter a resposta certa, você precisa tomar cuidado antes de escolher o plano certo durante a primeira construção - e então você chegará à variante (0,-sqrt(2),sqrt(2)) ou à segunda solução possível.

Eu não aceitarei o avião Z=0 :))

Vou apenas tomar arbitrariamente x1 = {random, aleatório, aleatório};

Qual é a probabilidade de cair no plano Z=0 ?

;-))

 
MetaDriver:

Eu não vou tomar Z=0 :))

Vou apenas pegar x1 = {random, random, random, random};

qual é a probabilidade de que caia no plano Z=0 ?

;-))

exatamente o mesmo que a probabilidade de atingir o plano "certo", ou seja, zero ))
 
alsu:
exatamente o mesmo que a probabilidade de atingir o plano "certo", ou seja, zero ))
A escolha de um vetor arbitrário fixa o plano de cálculo - um único plano pode ser traçado através de 2 vetores. No meu exemplo, você pode pegar qualquer um de um número infinito de aviões, e obter um número infinito de soluções, mas até que você tome o avião certo, você não terá a resposta certa.