6
Multiplicación entre matrices Public Class Form1 Dim m, n, p As Integer Dim a(0 To 100, 0 To 100) As Single ' Matriz a Dim b(0 To 100, 0 To 100) As Single ' Matriz b Dim c(0 To 100, 0 To 100) As Single ' Matriz a x b Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click m = Val(TextBox1.Text) n = Val(TextBox2.Text) p = Val(TextBox3.Text) 'Matriz a For i = 1 To n DataGridView1.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To m DataGridView1.Rows.Add() Next 'Matriz b For i = 1 To p DataGridView2.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To n DataGridView2.Rows.Add() Next 'Matriz a x b For i = 1 To p DataGridView3.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To m DataGridView3.Rows.Add() Next 'Lectura de la matriz a For i = 1 To m For j = 1 To n a(i, j) = Val(InputBox("Digitar el dato a(" & Str(i) & "," & Str(j) & ")", "Matriz a")) DataGridView1(j - 1, i - 1).Value = Str(a(i, j)) Next Next 'Lectura de la matriz b For i = 1 To n For j = 1 To p b(i, j) = Val(InputBox("Digitar el dato b(" & Str(i) & "," & Str(j) & ")", "Matriz b")) DataGridView2(j - 1, i - 1).Value = Str(b(i, j)) Next Next 'Realizando el calculo de la multiplicacion For i = 1 To m For j = 1 To p c(i, j) = 0 For k = 1 To n c(i, j) = c(i, j) + a(i, k) * b(k, j) Next Next Next

Multiplicación entre matrices.docx

Embed Size (px)

Citation preview

Multiplicacin entre matricesPublic Class Form1 Dim m, n, p As Integer Dim a(0 To 100, 0 To 100) As Single ' Matriz a Dim b(0 To 100, 0 To 100) As Single ' Matriz b Dim c(0 To 100, 0 To 100) As Single ' Matriz a x b Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click m = Val(TextBox1.Text) n = Val(TextBox2.Text) p = Val(TextBox3.Text) 'Matriz a For i = 1 To n DataGridView1.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To m DataGridView1.Rows.Add() Next 'Matriz b For i = 1 To p DataGridView2.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To n DataGridView2.Rows.Add() Next 'Matriz a x b For i = 1 To p DataGridView3.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To m DataGridView3.Rows.Add() Next 'Lectura de la matriz a For i = 1 To m For j = 1 To n a(i, j) = Val(InputBox("Digitar el dato a(" & Str(i) & "," & Str(j) & ")", "Matriz a")) DataGridView1(j - 1, i - 1).Value = Str(a(i, j)) Next Next 'Lectura de la matriz b For i = 1 To n For j = 1 To p b(i, j) = Val(InputBox("Digitar el dato b(" & Str(i) & "," & Str(j) & ")", "Matriz b")) DataGridView2(j - 1, i - 1).Value = Str(b(i, j)) Next Next 'Realizando el calculo de la multiplicacion For i = 1 To m For j = 1 To p c(i, j) = 0 For k = 1 To n c(i, j) = c(i, j) + a(i, k) * b(k, j) Next Next Next 'Mostrar la matriz a x b For i = 1 To m For j = 1 To p DataGridView3(j - 1, i - 1).Value = Str(c(i, j)) Next Next End SubEnd ClassGauss JordanDim n As Integer 'Numero de ecuaciones Dim a(0 To 100, 0 To 100) As Single 'Matriz a resolver Dim i, j, k As Integer Dim q, t As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click n = Val(TextBox1.Text) 'Leyendo el numero de ecuaciones 'Formandola matriz a resolver For i = 1 To n + 1 DataGridView1.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To n DataGridView1.Rows.Add() Next 'Formando la matriz resuelta For i = 1 To n + 1 DataGridView2.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To n DataGridView2.Rows.Add() Next For i = 1 To n For j = 1 To n a(i, j) = Val(InputBox("Digite el dato (" & Str(i) & "," & Str(j) & ")", "Lectura de datos")) DataGridView1(j - 1, i - 1).Value = Str(a(i, j)) Next a(i, j) = Val(InputBox("Digitar el dato a(" & Str(i) & "," & Str(j) & ")", "Lectura de la matriz")) DataGridView1(j - 1, i - 1).Value = ":" + Str(a(i, j)) Next 'Resolviendo la matriz For i = 1 To n For j = 1 To n If j i Then q = a(j, i) / (a(i, i)) For k = 1 To n + 1 a(j, k) = a(j, k) - (a(i, k) * q) Next End If Next Next For i = 1 To n t = a(i, i) For j = 1 To n + 1 a(i, j) = a(i, j) / t Next Next For i = 1 To n For j = 1 To n DataGridView2(j - 1, i - 1).Value = Str(a(i, j)) Next DataGridView2(j - 1, i - 1).Value = ":" + Str(a(i, j)) Next End SubEnd Class

Inversa de una matrizDim n As Integer Dim a(0 To 100, 0 To 100) As Single Dim i, j, k As Integer Dim q, t As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click n = Val(TextBox1.Text) For i = 1 To n + n DataGridView1.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To n DataGridView1.Rows.Add() Next For i = 1 To n DataGridView2.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To n DataGridView2.Rows.Add() Next 'Lectura de lamatriz hacer invertida For i = 1 To n For j = 1 To n a(i, j) = Val(InputBox("Digitar elvalor de a(" & Str(i) & "," & Str(j) & ")", "Lectura de la matriz")) DataGridView1(j - 1, i - 1).Value = Str(a(i, j)) If i = j Then a(i, j + n) = 1 DataGridView1(j + n - 1, i - 1).Value = Str(a(i, j + n)) Else a(i, j + n) = 0 DataGridView1(j + n - 1, i - 1).Value = Str(a(i, j + n)) End If Next Next 'Solucion For i = 1 To n For j = 1 To n If j i Then q = a(j, i) / a(i, i) For k = 1 To 2 * n a(j, k) = a(j, k) - (a(i, k) * q) Next End If Next Next For i = 1 To n t = a(i, i) For j = 1 To 2 * n a(i, j) = a(i, j) / t Next Next 'Mostrando la matriz inversa For i = 1 To n For j = n + 1 To 2 * n DataGridView2(j - n - 1, i - 1).Value = Str(a(i, j)) Next Next

End SubEnd ClassDeterminante de una matrizDim n As Integer Dim a(0 To 100, 0 To 100) As Single Dim i, j, k As Integer Dim q, det As Double Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click n = Val(TextBox1.Text) For i = 1 To n DataGridView1.Columns.Add("col" & Str(i), "Columna" & Str(i)) Next For i = 1 To n DataGridView1.Rows.Add() Next For i = 1 To n For j = 1 To n a(i, j) = Val(InputBox("Digite el dato a(" & Str(i) & "," & Str(j) & ")", "Lectura de la matriz")) DataGridView1(j - 1, i - 1).Value = Str(a(i, j)) Next Next For i = 1 To n For j = 1 To n If j i Then q = a(j, i) / a(i, i) For k = 1 To n a(j, k) = a(j, k) - (a(i, k) * q) Next End If Next Next det = 1 For i = 1 To n det = det * a(i, i) Next TextBox2.Text = Str(det) End SubEnd ClassAreaDim pi, n As Integer Dim a, b As Single Dim c(0 To 100) As Single Dim d(0 To 100) As Single Dim dd As Single Dim m(0 To 2) As Single Dim v, mul, dx As Double Dim sp, si As Single Dim area As Double Public Function F(ByVal x As Single) F = Math.Sqrt(x) - (1 / Math.Sqrt(x)) End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click pi = Val(TextBox1.Text) If pi > 2 Then MsgBox("LOS PUNTOS DE INTERSECCION NO PUEDEN SER MAYOR QUE 2", vbCritical, "CONTROL") TextBox1.Text = "" Else If pi = 1 Then dd = Val(InputBox("Digite el punto que tiene", "Lectura de datos")) c(1) = Val(InputBox("Digite el primer punto de su parametro", "Lectura de datos")) d(1) = Val(InputBox("Digite el segundo punto punto de su parametro", "Lectura de datos")) Do m(1) = ((c(1) * F(d(1))) - (d(1) * F(c(1)))) / (F(d(1)) - F(c(1))) v = Math.Abs(F(m(1))) mul = F(c(1)) * F(m(1)) If mul >= 0 Then a = m(1) b = b Else a = a b = m(1) End If Loop While v > 0.0001 If dd > m(1) Then a = m(1) b = dd Else a = dd b = m(1) End If n = Val(InputBox("Digite el valor de n", "Lectura de datos")) dx = (b - a) / n sp = 0 si = 0 For i = 1 To n If (i Mod 2 = 0) Then sp = sp + F(a + (i * dx)) Else si = si + F(a + (i * dx)) End If Next area = (dx / 3) * (F(a) + F(b) + (2 * sp) + (4 * si)) TextBox2.Text = Str(area) Else For i = 1 To 2 c(i) = Val(InputBox("Digite el primer punto de su parametro(" & Str(i) & ")", "Lectura de datos")) d(i) = Val(InputBox("Digite el segundo punto punto de su parametro(" & Str(i) & ")", "Lectura de datos")) Do m(i) = ((c(i) * F(d(i))) - (d(i) * F(c(i)))) / (F(d(i)) - F(c(i))) v = Math.Abs(F(m(i))) mul = F(c(i)) * F(m(i)) If mul >= 0 Then a = m(i) b = b Else a = a b = m(i) End If Loop While v > 0.0001 Next If m(1) > m(2) Then a = m(2) b = m(1) Else a = m(1) b = m(2) End If n = Val(InputBox("Digite el valor de n", "Lectura de datos")) dx = (b - a) / n sp = 0 si = 0 For i = 1 To n If (i Mod 2 = 0) Then sp = sp + F(a + (i * dx)) Else si = si + F(a + (i * dx)) End If Next area = (dx / 3) * (F(a) + F(b) + (2 * sp) + (4 * si)) TextBox2.Text = Str(area) End If End If End SubEnd Class