Somme vectorielle

Bonjour

j'ai ecris le bout de code suivant qui est une fonction permettant de faire la somme de deux vecteurs de R^3 et je souhaiterai

pouvoir generaliser cela à un plus grand nombre de vecteurs

La fonction :

Function somvect(x, y As Variant) As Variant
For i = 0 To UBound(x)
 s = s & " " & x(i) + y(i)
Next
somvect = Split(LTrim(s), " ")
End Function

'la partie test avec 4 vecteurs

Sub somme_de_vecteurs()
t = Array(1, 2, 3)
u = Array(4, 5, 6)
v = Array(7, 8, 9)
w = Array(0, 8, 6)
For j = 0 To UBound(somvect(somvect(t, u), v))
   msgbox somvect(somvect(somvect(t, u), v), w)(j)   ' ligne qui retourne  chaque composante de la somme des 4 vecteurs
Next
End Sub

Ca marche bien , mais si j'ai 10 vecteurs les emboitements successif de "somvect" ne seraient pas tres elegants

Une meilleure idée ?

En vous remerciant

Bonjour,

une proposition

Sub somme_de_vecteurs()
    t = Array(1, 2, 3)
    u = Array(4, 5, 6)
    v = Array(7, 8, 9)
    w = Array(0, 8, 6)
    sv = somvect(t, u, v, w)
    MsgBox "somme des vecteurs " & Join(sv, " ")
End Sub

Function somvect(ParamArray vector() As Variant)
    Dim rep()
    fe = LBound(vector(LBound(vector)))
    le = UBound(vector(LBound(vector)))
    ReDim rep(fe To le)
    For i = LBound(vector) To UBound(vector)
        For j = fe To le
            rep(j) = rep(j) + vector(i)(j)
        Next j
    Next i
    somvect = rep
End Function

Un grand merci h2so4 , pour ne pas non plus recuperer toute votre proposition sans avoir cherché un minimum de mon coté j'ai pu obtenir ceci , encor bien plus court

t = Array(1, 2, 3)
u = Array(4, 5, 6)
v = Array(7, 8, 9)
w = Array(0, 8, 6)
M = Array(t, u, v, w)
k = 2
  p = somvect(M(0), M(1))
   Do
    p = somvect(p, M(k))      'sur cette ligne j'ai simplement utilisé l'analogie  des compositions de fonctions qu'on peut faire en math du genre f(f(f(f(x)= fofof..of
    k = k + 1
   Loop Until k = UBound(M) + 1
For j = 0 To UBound(p)
  msgbox p(j)   'me retourne bien les composantes : 12, 23 et 24 
Next

Bonsoir,

content que tu aies trouvé une solution bien plus courte.

Rechercher des sujets similaires à "somme vectorielle"