Matrix plugin

Bonjour,
Quelqu’un sur ce forum a t-il une connaissance des classes matrices qui constituent le Matrix plugin de Robert M. Delaney ?
les diffrentes fonctions, createMatrix, Transpose, Inverse, dterminant, … fonctionnent trs bien, sauf que je n’arrive pas les faire intgrer
dans une boucle For-next.

Un petit bout de code pourrait aider…

Oui Eric, je voulais savoir si quelqu’un a dj eu connaissance et utilis le Matrix plugin.
Donc, la fonction Kaplan retourne la Matrice YMat().

[code]
Call Astropos.Kaplan(T(),t0,DEC(),GHA(),Ho(),phi0,lambda0,Spd,Crs,dh(),YVMat(),Hc(),Phi(),Lambda())
//xnr=8
//xnc=4
dim x(99),y(99),z(99),u(99)v(99)w(99) as Matrix

//mise en string de la matrice pour la construire avec: CreateMatrix(nrl,nrc,inpuStrx())

for i=1 to 8
inputStrx(i) =str(str(YVMat(i).element(0,0)) +","+ str(YVMat(i).element(0,1)) +","+ str(YVMat(i).element(0,2)) +","+str(YVMat(i).element(0,3)))
next

for i=1 to 8

x(i)=createMatrix(i,4,inputStrx(i))

//V(i) etant la transpose de x(i)
v(i)=Transpose(x(i))

//Calcul de la pseudo-inverse
//z=Inverse(w)
if xnr > xnc then
  w(i)= v(i)* x(i)
  y(i)=Inverse(w(i))
  z(i) =y(i) * v(i)
  
elseIf xnr < xnc then
  w(i) = x(i) * v(i)
  y(i)= Inverse(w(i))
  z(i)=v(i)*y(i)
else
  z(i)= Inverse(x(i))
end if

//Affiche la matrice z tant la pinv (x(i))
system.debuglog str(z(i).element(0,0)) + " "+str(z(i).element(1,0)) + "  "+ str(z(i).element(2,0)) + "  "+ str(z(i).element(3,0))

next[/code] voil le code :

OK. Quel est le problme ?

en suivant pas a pas, la matrice X(i) 8lignes 4Colonnes est construite, ensuite v(i) le transpose de x(i) ne marche pas,
ainsi que le reste.


x() :
-1.000365  0.005593  0.019545  0.001069
-0.131149  0.681051  0.035242  0.000380
-0.157199 -0.671266 -0.038110 -0.000144
-0.605121  0.547327  0.038907  0.000280
-0.915347  0.284959  0.022824  0.000078
 0.916041  0.256431  0.018853 -0.000023
 0.326323 -0.639233 -0.051054  0.000005
-0.469115 -0.583770 -0.048302 -0.000001


v(): Transpose(x)

-1.000365 -0.131149 -0.157199 -0.605121 -0.915347  0.916041  0.326323 -0.469115
 0.005593  0.681051 -0.671266  0.547327  0.284959  0.256431 -0.639233 -0.583770
 0.019545  0.035242 -0.038110  0.038907  0.022824  0.018853 -0.051054 -0.048302
 0.001069  0.000380 -0.000144  0.000280  0.000078 -0.000023  0.000005 -0.000001

A la fin je dois avoir ce rsultat, c'est a dire la pseudo inverse de x()
z():
   0.066166    0.030828   -0.080985   -0.190480   -0.414833    0.434123    0.162367   -0.238459
  -0.992942    2.047177   -1.205418    0.357420   -0.046039   -0.477661    0.843079    1.231527
  11.990569  -27.370418   13.802430   -1.594819    3.563828    8.713523  -18.536279  -23.318423
 762.417109  544.039587 -238.421106  -60.957723 -462.859851  263.200374  531.088852  167.137515


J’ai pos le problme a Mr Bob Delaney qui a bien voulu me rpondre en me proposant de mettre: x(i)=New Matrix(i,4,inputStrx(i))
a la place de x(i)=createMatrix(i,4,inputStrx(i)) qui d’aprs lui rglerai le problme, en vain.