Algoritmia - VB: Inversa PORFAS!

 
Vista:

VB: Inversa PORFAS!

Publicado por Ro (1 intervención) el 25/11/2006 07:58:16
HOLA!! Les queria pedir ayuda para conseguir la Inversa de una Matriz en Visual Basic, que realmente estoy pasando muy malos ratos con ella, ojala si la tienen me pudieran ayudar mandandomela, MIL GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cálculo de la inversa de una matriz en Visual Basic

Publicado por Alejandro (307 intervenciones) el 08/03/2024 00:12:30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Module Module1
 
    Sub Main()
        ' Ejemplo de uso para calcular la inversa de una matriz en Visual Basic '
        Dim matriz(,) As Double = {{2, -1, 0}, {-1, 2, -1}, {0, -1, 2}}
 
        ' Verificar si la matriz es cuadrada antes de calcular la inversa '
        If EsMatrizCuadrada(matriz) Then
            ' Calcular la inversa de la matriz '
            Dim matrizInversa(,) As Double = CalcularMatrizInversa(matriz)
 
            ' Mostrar la matriz original y su inversa '
            Console.WriteLine("Matriz original:")
            MostrarMatriz(matriz)
 
            Console.WriteLine("Matriz inversa:")
            MostrarMatriz(matrizInversa)
        Else
            Console.WriteLine("La matriz no es cuadrada. No se puede calcular la inversa.")
        End If
 
        Console.ReadLine()
    End Sub
 
    Function EsMatrizCuadrada(matriz(,) As Double) As Boolean
        ' Verificar si la matriz es cuadrada (igual número de filas y columnas) '
        Return matriz.GetLength(0) = matriz.GetLength(1)
    End Function
 
    Function CalcularMatrizInversa(matriz(,) As Double) As Double(,)
        ' Calcular la inversa de una matriz utilizando librerías existentes o algoritmos específicos '
        ' En este ejemplo, se utiliza la librería MathNet.Numerics para simplificar el cálculo '
        ' Asegúrate de instalar la librería antes de ejecutar el código (puedes usar NuGet Package Manager) '
 
        ' Instalar la librería desde la consola de NuGet: '
        ' Install-Package MathNet.Numerics '
 
        Dim matrizOriginal As MathNet.Numerics.LinearAlgebra.Matrix(Of Double) = MathNet.Numerics.LinearAlgebra.Matrix(Of Double).Build.DenseOfArray(matriz)
        Dim matrizInversa As MathNet.Numerics.LinearAlgebra.Matrix(Of Double) = matrizOriginal.Inverse()
 
        Return matrizInversa.ToArray()
    End Function
 
    Sub MostrarMatriz(matriz(,) As Double)
        ' Mostrar la matriz en la consola '
        For i As Integer = 0 To matriz.GetLength(0) - 1
            For j As Integer = 0 To matriz.GetLength(1) - 1
                Console.Write(matriz(i, j).ToString("0.0000") & " ")
            Next
            Console.WriteLine()
        Next
        Console.WriteLine()
    End Sub
 
End Module

Nota: Este código utiliza la librería MathNet.Numerics para calcular la inversa de la matriz. Asegúrate de instalar la librería antes de ejecutar el código. Puedes instalarla desde la consola de NuGet con el comando `Install-Package MathNet.Numerics`. Además, ten en cuenta que calcular la inversa de una matriz puede no ser posible en todos los casos, especialmente si la matriz es singular o no es cuadrada, Ro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar