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