[Archive!] Pure mathematics, physics, chemistry, etc.: brain-training problems not related to trade in any way - page 555

 
Svinotavr:

Is this video also a scam? PS: Not only Alexey's opinion, but that of other forum members is interesting.


"The only person I know who managed to build a Searle generator that was named after Searle was Searle himself":)
 
Svinotavr:
The people who took over half of Europe aren't many either. Dimitri, do you think this phrase "disavows" the rest of the film? So, what do you think, divorce or not?


The film looks like sectarian propaganda. Utter nonsense to take it even the slightest bit seriously... For 60 years he's been giving... and what did he give?

 
MetaDriver:

// Immediately pardon the off-topic, as the particular case of application of solutions (if solutions are found) is still trade-related.

// (: but on the other hand, this is an incentive, right? :)

// If you really help, I'll tell you why I need it... ;) I assure you - it may come in handy...

Task:

Given: a set of M orthogonal vectors in N-dimensional space (M<N) // in the limiting case M==1

Required: build a generator of vectors (!) orthogonal to a given set. I need an idea how to quickly generate random vectors which satisfy the condition (! ) .

Explanation-reminder: For N-dimension space, dimension of solution space is equal to (N-M), i.e. with initial set in number (M=N-1) of vectors we have one unique solution (by the way, how to get it in one move? There's an article in wiki, but I haven't worked it out yet. Who can explain algorithm on fingers - give mint(again - tell me what I need it all for)). With smaller initial set - there is infinite number of such vectors, i.e. "there are variants". These are the variants that need to be generated.

The phrase "the set of orthogonal vectors A is orthogonal to the set B" is somewhat ambiguous (in the sense of what exactly is orthogonal to what)... Can you specify the exact condition, preferably by a formula?
 
alsu:
The phrase "the set of orthogonal vectors A is orthogonal to the set B" is somewhat ambiguous (in the sense of what exactly is orthogonal to what)... Can we specify the exact condition, preferably by a formula?

You can be more specific. Words are easier for me. All vectors are orthogonal to each other. :) I don't need set B. I mean, I do, but not immediately, but gradually. :))

You should make a function in mql(5) that takes an initial set of vectors (A) as an array and returns one vector orthogonal to all input vectors.

Like this :

bool GetOrtoVector(int Dimention, int InputCount, double &Input[], double &Out[]); 
  { 
    .....  
    return succes; 
  }

The output vector is random, but guaranteed to be from a complementary space. (In case InputCount == Dimention-1, the only possible single-valued vector is returned)

Important condition : the function must be [as fast as possible]. I can do it myself. :)

 
alsu:
The phrase "the set of orthogonal vectors A is orthogonal to the set B" is somewhat ambiguous (in the sense of what exactly is orthogonal to what)... Can you specify the exact condition, preferably by a formula?

About the formula : mutual pairwise scalar products of all incoming and outgoing vectors == 0

This condition allows us to uniquely solve the system of equations and obtain the last vector (when M==N-1).

In the case (M<N-1) the system already has a space of solutions.

And it is from this solution space that I need to extract random vectors. Preferably, very quickly.

 
MetaDriver:

This condition allows us to uniquely solve the system of equations and obtain the last vector (at M==N-1).

Only if the set is normalized. If not, we also get infinitely many solutions.

Example: For a set {(1,0,0), (0,2,0)} any vector of the form (0,0,z) will be orthogonal

 
alsu:

Only if the set is normalised. If not, we also get an infinite set of solutions.

Example: For a set {(1,0,0), (0,2,0)} any vector of the form (0,0,z) will be orthogonal

Yes, of course. All vectors are normalized. Both input and output.
 
MetaDriver:
Yes, of course. All vectors are normalised. Both input and output.
There is a simple solution... on the tongue as they say))) Right now
 
alsu:
There is a simple solution... on the tongue as they say))) now

For a single vector (x0) on the input I easily and long ago came up with a solution (for a space of arbitrary dimensionality):

. . 1. Генерируем случайный вектор (x1r)

. . 2. Нормируем его -> (x1rn)

. . 3. Находим сумму и разность вродного (х0) и полученного (x1rn) -> (sX, dX)

. . 4. Складываем sX+dX и нормируем сумму.

. . 5. Готово. Возвращаем из функции и берём с полки пирожок.

--

But for more than one input vector this algorithm is no good. Or I haven't been able to adapt it properly.

If you have an idea how to adapt it so that iterations do not multiply like a snowball, it would be useful.

 

Shit, while I was explaining it, I think I got it. :)

If we do the above procedure for each input vector, then all vectors obtained by summation with subsequent normalization of the sum will give the desired pseudo-random vector!

alsu, correct me if I'm being obtuse.

--

//yeah, almost got it. A little bit more complicated, it doesn't work that easy. After xi vector is obtained at each step, you should first "add-subtract-normalize" it with the next input vector and so on, until input vectors run out. Something like this.

Reason: