Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: .:: KsV ::. en 11 Julio 2015, 23:20 pm



Título: [Vbs] Calculo de un determinante Algebra Lineal
Publicado por: .:: KsV ::. en 11 Julio 2015, 23:20 pm
Tengo una funcion para el calculo de la determinante de 3*3 pero esta ya no me sirve si ingreso matrizes mas grandes  ,si alguien me puede ayudar  con una nueva funcion


Código
  1. a11 = 1
  2. a12 = 2
  3. a13 = 3
  4. a21 = 1
  5. a22 = 2
  6. a23 = 1
  7. a31 = 2
  8. a32 = 1
  9. a33 = 1
  10.  
  11. '  |1 2 3|
  12. 'A=|1 2 1|
  13. '  |2 1 1|
  14.  
  15. '|A|=-6
  16.  
  17. MSGBOX determinante(a11,a12,a13,a21,a22,a23,a31,a32,a33 )
  18.  
  19.  
  20.  
  21. Function determinante(ij11,ij12,ij13,ij21,ij22,ij23, ij31, ij32, ij33)
  22.  
  23.  
  24. FC = ij11 * ((ij22 * ij33) - (ij32 * ij23)) +((-1 * ij12) * ((ij21 * ij33) - (ij31 * ij23)) +
  25. (ij13 * ((ij21 * ij32) - (ij31 * ij22))))
  26. determinante = FC
  27. End Function
  28.  
  29.  





Encontre este code  para determinantes n*n Pero no lo comprendo


visual basic 2010 este codigo al pareser usa el metodo de cofactor y yo lo quiero en script vbs

si alguien me ayuda estare agradesido

 
Código
  1.  
  2. Function DET(ByVal Aux(,) As Double)
  3.  
  4. For i As Integer = 1 To n
  5.  
  6. For j = 1 To n
  7. T(i, j) = Aux(i, j)
  8. Next
  9. Next
  10. deter = 1
  11. For k As Integer = 1 To n
  12. If T(k, k) = 0 Then
  13. j = k If T(k, j)= 0 Then
  14. If j =n Then
  15. deter = 0
  16. End If
  17. j = j+ 1
  18. End If
  19. If T(k, j) <> 0 Then
  20. For i As Integer = k To n
  21. temp = T(i, j)
  22. T(i, j) = T(i, k)
  23. T(i, k) = temp
  24. Next i
  25. deter= -deter
  26. End If
  27. End If
  28. If (k - n) < 0 Then
  29. k1 = k + 1
  30. For i As Integer = k1 To n
  31. For j = k1 To n
  32. T(i, j) = T(i, j) - (T(i,k) * T(k, j) /T(k, k))
  33. Next j
  34. Next i
  35. End If
  36. deter = deter * T(k, k)
  37. Next k
  38. DET = deter
  39. End Function
  40.  
  41.