Après avoir discuté de la fonction JSL 'Vec Quadratic()' avec un informaticien, nous avons tous deux convenu que nous n'en comprenions pas le fonctionnement exact. J'ai également vérifié l'index de script et la bibliothèque de documentation :


Le problème est apparu avec l'exemple ci-joint de calcul de prédiction et d'intervalle de confiance, où cette fonction est utilisée. Plus précisément, ce que personne ne peut lire, c'est la partie après la matrice de covariance, et pourquoi elle implique une concaténation ('[1] || :X') (voir également capture d'écran ci-dessous).

Si quelqu'un pouvait m'expliquer ou m'orienter vers une documentation supplémentaire, je l'apprécierais beaucoup.
Salut @Ressel ,
J'espère que je pourrai expliquer un peu, ou du moins apporter un peu plus de lumière sur cette question.
Si vous parcourez l'index de script et suivez l'exemple qu'ils ont pour Vec Quadratic(), cela aura beaucoup plus de sens. Si vous avez une matrice X = [1 3 5, 2 4 6], qui est une matrice 2x3, et si vous la transposez pour obtenir une matrice 3x2, X' = [1 2, 3 4, 5 6].
L'étape suivante consiste à effectuer un produit scalaire matriciel standard avec la matrice symétrique, 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].
L'étape suivante consiste ensuite à faire le produit scalaire de cette nouvelle matrice avec X pour obtenir une nouvelle matrice 2x2 :
X*(S*X') = [1 3 5, 2 4 6]*[35 44, 39 50, 28 40] = [292 394, 394 528].
La fonction Vec Quadratic prend alors simplement les éléments diagonaux de celui-ci pour vous donner le vecteur [292, 528].
La fonction concaténer || est-il là pour que la formule puisse multiplier la matrice symétrique 2x2 avec une matrice transposée 2x1 pour cette ligne dans le tableau de données. Par exemple, avec la ligne 1, le Vec Quadratic finira par ressembler à ce Vec Quadratic ( [2.33333333333333 -1, -1 0.5], [1] || 1 ). ce qui est identique à Vec Quadratic( [2.33333333333333 -1, -1 0.5], [1,1] ). Le [1]||:X pour la ligne 1 finit par ressembler à [1 1] et pour la ligne 2 ressemble à [1 2], etc. La formule doit prendre l'entrée d'une seule ligne pour :X et la convertir en matrice , c'est donc ce que fait le [1]||:X dans la formule.
J'espère que cela a du sens.
Bonne chance!,
DS
Merci, cela a beaucoup de sens, bien sûr.