[Matematica pura, fisica, chimica, ecc.: problemi di allenamento del cervello non legati in alcun modo al commercio - pagina 557
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Sembra funzionare per l'immagine piatta. Mi sembra che funzionerà anche per il caso N-dimensionale. Ci sono obiezioni?
Mi sembra che sia il momento di scrivere uno script e controllarlo... :)
Bene, il vettore normale all'unità data può essere costruito più facilmente - basta sostituire ogni sua coordinata xi con -sqrt(1-xi^2). Questo è in realtà equivalente a una rotazione di 90 gradi nel piano del vettore lontano dall'asse i-esimo (cioè sostituiamo il coseno con -seno, otteniamo il coseno dell'angolo+pi/2). Dopodiché non resta che normalizzare il risultato.
Ma non è affatto detto che si possa ottenere un vettore normale a tutti gli altri dell'insieme in questo modo. Così come qualsiasi altro modo che seleziona un vettore normale tra tutte le varianti...
Bene, il vettore normale all'unità data può essere costruito più facilmente - basta sostituire qualsiasi delle sue coordinate xi con -sqrt(1-xi^2). Questo equivale in realtà a ruotare di 90 gradi i poli del vettore lontano dall'asse i-esimo (cioè sostituiamo il coseno con il -seno, otteniamo il coseno dell'angolo+pi/2). Dopodiché non resta che normalizzare il risultato.
Ma non è affatto detto che si possa ottenere un vettore normale a tutti gli altri dell'insieme in questo modo. Così come qualsiasi altro modo che seleziona un vettore normale tra tutte le varianti...
Esattamente. Non nel caso generale.
--
Sembra che io abbia trovato una soluzione rapida. Quando mi sono seduto a scrivere e mi sono rilassato sull'algoritmo, è saltato fuori.
Quindi, dal vettore generato x1r, basta sottrarre la sua proiezione su x0 (cioè x0*sp(x0,x1r), dove sp() è il prodotto scalare).
In breve la formula è in una riga: x1 = x1r - x0*sp(x0,x1r);
:))
:))
Sì, ma bisogna approssimarlo dopo.
Bene comunque in una linea: x1 = norma(x1r - x0*sp(x0,x1r))
Sembra funzionare per l'immagine piatta. Mi sembra che funzionerà anche per il caso N-dimensionale. Ci sono obiezioni?
Sembra che sia il momento di scrivere uno script e controllare... :)
Non c'è bisogno di scriverlo. Prova:
sX = (a1+b1,a2+b2); dX = (a1-b1,a2-b2);
Poiché i vettori a e b sono vettori unitari, il parallelogramma corrispondente è un rombo e le sue diagonali sono perpendicolari, quindi la somma e la differenza sono ortogonali tra loro. Quindi lo scambio di moduli equivale a girarne uno di 90 gradi a destra e l'altro a sinistra. In coordinate cartesiane possiamo esprimerlo semplicemente riordinando la prima e la seconda coordinata:
sXtr = (a2-b2,a1-b1); dXtr = (a2+b2,a1+b1)
=>
sXtr+dXtr = (2*a2,2*a1) è un vettore con modulo 2 e ovviamente ortogonale al vettore (a1,a2), cioè il vettore a. H.t.c.
Non resta che correre in un ciclo. for(i=0; i<InpVectorCount; i++) {....}
No, si tratta ancora di scegliere inizialmente il giusto vettore "arbitrario", che darà l'ortogonalità a tutto l'insieme. Cioè l'arbitrario non è affatto arbitrario. Ancora una volta torniamo a come calcolare il vettore iniziale richiesto.
Stronzate. Solo controlli ad ogni passo. Se in qualsiasi passo della trasformazione un vettore diventa contraddittorio con il vettore successivo nell'insieme, generiamo nuovamente il vettore casuale iniziale e ripetiamo la procedura. Poiché questo caso è improbabile (con dimensione finita), è più facile (più economico) che sospettare immediatamente che sia linearmente dipendente (cercando il rango della matrice).
Stronzate. Solo controlli ad ogni passo. Se in qualsiasi passo della trasformazione un vettore diventa contraddittorio con il vettore successivo nell'insieme, generiamo nuovamente il vettore casuale iniziale e ripetiamo la procedura. Poiché questo caso è improbabile (con dimensione finita), è più facile (più economico) che sospettare immediatamente che sia linearmente dipendente (cercando il rango della matrice).