Dopo aver discusso della funzione JSL 'Vec Quadratic()' con un informatico, siamo entrambi d'accordo di non capirne l'esatto funzionamento. Ho anche controllato l'indice degli script e la libreria della documentazione:


Il problema è emerso con l'esempio allegato di previsione e calcolo dell'intervallo di confidenza, in cui viene utilizzata questa funzione. Nello specifico, ciò che nessuno degli utenti può leggere è la parte dopo la matrice di covarianza e il motivo per cui implica una concatenazione ('[1] || :X') (vedi anche screenshot sotto).

Se qualcuno potesse spiegarmi o indicarmi una direzione per ulteriore documentazione, lo apprezzerei molto.
Ciao @Ressel ,
Spero di essere in grado di spiegare in qualche modo, o almeno di far luce su questo problema.
Se torni indietro nello Scripting Index e segui l'esempio che hanno per Vec Quadratic() avrà molto più senso. Se hai una matrice X = [1 3 5, 2 4 6], che è una matrice 2x3, e se la trasponi per ottenere una matrice 3x2, X' = [1 2, 3 4, 5 6].
Il passaggio successivo consiste nell'eseguire il prodotto scalare della matrice standard con la matrice simmetrica, S = [1 3 5, 3 2 6 , 5 6 1], S*X':
S*X' = [1 3 5, 3 2 6 , 5 6 1]*[1 2, 3 4, 5 6] = [1+9+25 2+12+30, 3+6+30 6+8 +36, 5+18+5 10+24+6] = [35 44, 39 50, 28 40].
Il passo successivo è quindi fare il prodotto scalare di questa nuova matrice con X per ottenere una nuova matrice 2x2:
X*(S*X') = [1 3 5, 2 4 6]*[35 44, 39 50, 28 40] = [292 394, 394 528].
La funzione Vec Quadratic prende quindi semplicemente gli elementi diagonali di questo per darti il vettore [292, 528].
La funzione concatena || è lì in modo che la formula possa moltiplicare la matrice simmetrica 2x2 per una matrice trasposta 2x1 per quella riga nella tabella dati. Ad esempio, con la riga 1, il Vec Quadratic finirà per assomigliare a questo Vec Quadratic( [2.33333333333333 -1, -1 0.5], [1] || 1 ). che è uguale a Vec Quadratic( [2.33333333333333 -1, -1 0.5], [1,1] ). Il [1]||:X per la riga 1 finisce per assomigliare a [1 1] e per la riga 2 assomiglia a [1 2], ecc. La formula deve prendere la voce della riga singola per :X e convertirla in una matrice , quindi questo è ciò che [1]||:X sta facendo nella formula.
Spero che questo abbia senso.
Buona fortuna!,
DS
Grazie, ovviamente è tutto molto sensato.