MAS PROBLEMAS CON MATRICES...
despues de haber hecho varios cambios en las variables parecia que todo iba bien y me calculaba las matrices, pero al probar otra vez el programa, me da error de "fuera de intervalo" el codigo siguiente:
Private Sub dcalc_Click()
n = Text1.Text
' Calculo de la matriz A (2*NUM PUNTOS x 4)
' ----------------------
' X1 Y1 1 0
' Y1 -X1 0 1
' X2 Y2 1 0
' Y2 -X2 0 1
' .. .. .. ..
' Xn Yn 1 0
' Yn -Xn 0 1
ReDim matA_dch(0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2)) ' redimensionamos las matrices
ReDim solucion1(0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2)) ' redimensionamos las matrices
contador = 0 'calculamos la matriz A
For fila = 0 To (2 * n - 2) Step 2
matA_dch(fila, 0) = CDbl(Text2(contador).Text)
matA_dch(fila, 1) = CDbl(Text3(contador).Text)
matA_dch(fila, 2) = 1
matA_dch(fila, 3) = 0
matA_dch(fila + 1, 0) = CDbl(Text3(contador).Text)
matA_dch(fila + 1, 1) = -CDbl(Text2(contador).Text)
matA_dch(fila + 1, 2) = 0
matA_dch(fila + 1, 3) = 1
contador = contador + 1
Next
solucion1() = matA_dch()
' Calculo de la matriz Atraspuesta (4 x 2*NUM PUNTOS )
' ----------------------
' X1 Y1 X2 Y2 .. Xn Yn
' Y1 -X1 Y2 -X2 .. Yn Xn
' 1 0 1 0 .. 1 0
' 0 1 0 1 .. 0 1
' calculo de la matriz de terminos independientes L ( 2*NUM PUNTOS x 1)
' ---------------------------------------------
' X1
' Y1
' X2
' Y2
' ..
' Xn
' Yn
ReDim matL_dch(0 To (2 * n - 2)) ' redimensionamos las matrices
ReDim solucion3(0 To (2 * n - 2))
contador = 0 'calculamos la matriz L
For fila = 0 To (2 * n - 2) Step 2
matL_dch(fila) = CDbl(Text4(contador).Text)
matL_dch(fila + 1) = CDbl(Text5(contador).Text)
contador = contador + 1
Next
solucion3() = matL_dch()
' impresion del formulario donde se visualizaran las matrices importantes y continua el calculo
' -------------------------------------------------------------------------
Form6.Show
fila = 0
Form6.Text1.Text = solucion1(fila) & vbCrLf
Form6.Text2.Text = solucion3(fila) & vbCrLf
For fila = 1 To (2 * n - 2)
Form6.Text1.Text = Form6.Text1.Text & solucion1(fila) & vbCrLf
Form6.Text2.Text = Form6.Text1.Text & solucion3(fila) & vbCrLf
Next
End Sub
el error me lo da en la linea::
matA_dch(fila, 0) = CDbl(Text2(contador).Text)
asi que como no continua el programa, no se si el resto lo hace bien, aunque me temo que con la otra matriz tendre el mismo problema.
como puedo solucionarlo??
Gracias otra vez
Salu2
Private Sub dcalc_Click()
n = Text1.Text
' Calculo de la matriz A (2*NUM PUNTOS x 4)
' ----------------------
' X1 Y1 1 0
' Y1 -X1 0 1
' X2 Y2 1 0
' Y2 -X2 0 1
' .. .. .. ..
' Xn Yn 1 0
' Yn -Xn 0 1
ReDim matA_dch(0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2)) ' redimensionamos las matrices
ReDim solucion1(0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2), 0 To (2 * n - 2)) ' redimensionamos las matrices
contador = 0 'calculamos la matriz A
For fila = 0 To (2 * n - 2) Step 2
matA_dch(fila, 0) = CDbl(Text2(contador).Text)
matA_dch(fila, 1) = CDbl(Text3(contador).Text)
matA_dch(fila, 2) = 1
matA_dch(fila, 3) = 0
matA_dch(fila + 1, 0) = CDbl(Text3(contador).Text)
matA_dch(fila + 1, 1) = -CDbl(Text2(contador).Text)
matA_dch(fila + 1, 2) = 0
matA_dch(fila + 1, 3) = 1
contador = contador + 1
Next
solucion1() = matA_dch()
' Calculo de la matriz Atraspuesta (4 x 2*NUM PUNTOS )
' ----------------------
' X1 Y1 X2 Y2 .. Xn Yn
' Y1 -X1 Y2 -X2 .. Yn Xn
' 1 0 1 0 .. 1 0
' 0 1 0 1 .. 0 1
' calculo de la matriz de terminos independientes L ( 2*NUM PUNTOS x 1)
' ---------------------------------------------
' X1
' Y1
' X2
' Y2
' ..
' Xn
' Yn
ReDim matL_dch(0 To (2 * n - 2)) ' redimensionamos las matrices
ReDim solucion3(0 To (2 * n - 2))
contador = 0 'calculamos la matriz L
For fila = 0 To (2 * n - 2) Step 2
matL_dch(fila) = CDbl(Text4(contador).Text)
matL_dch(fila + 1) = CDbl(Text5(contador).Text)
contador = contador + 1
Next
solucion3() = matL_dch()
' impresion del formulario donde se visualizaran las matrices importantes y continua el calculo
' -------------------------------------------------------------------------
Form6.Show
fila = 0
Form6.Text1.Text = solucion1(fila) & vbCrLf
Form6.Text2.Text = solucion3(fila) & vbCrLf
For fila = 1 To (2 * n - 2)
Form6.Text1.Text = Form6.Text1.Text & solucion1(fila) & vbCrLf
Form6.Text2.Text = Form6.Text1.Text & solucion3(fila) & vbCrLf
Next
End Sub
el error me lo da en la linea::
matA_dch(fila, 0) = CDbl(Text2(contador).Text)
asi que como no continua el programa, no se si el resto lo hace bien, aunque me temo que con la otra matriz tendre el mismo problema.
como puedo solucionarlo??
Gracias otra vez
Salu2
Para ir por partes, aqui pongo el codigo primero que me da error:
n = CDbl(Text1.Text)
' calculo de la matriz de terminos independientes L ( 2*NUM PUNTOS x 1)
' ---------------------------------------------
' X1
' Y1
' X2
' Y2
' ..
' Xn
' Yn
ReDim matL_dch(0 To (2 * n - 2)) ' redimensionamos las matrices
ReDim solucion1(0 To (2 * n - 2))
contador = 0 'calculamos la matriz L
For fila = 0 To (2 * n - 1) Step 2
matL_dch(fila) = CDbl(Text4(contador).Text)
matL_dch(fila + 1) = CDbl(Text5(contador).Text)
contador = contador + 1
Next
solucion1 = matL_dch()
lo he probado por ejemplo para n=5 y me dice que
matL_dch(fila + 1) = CDbl(Text5(contador).Text)
esta fuera del intervalo en la fila 8 contador 4.
por favor, si alguien me puede ayudar. estoy bloqueada y no puedo continuar hasta que arregle este fallo
gracias
salu2
n = CDbl(Text1.Text)
' calculo de la matriz de terminos independientes L ( 2*NUM PUNTOS x 1)
' ---------------------------------------------
' X1
' Y1
' X2
' Y2
' ..
' Xn
' Yn
ReDim matL_dch(0 To (2 * n - 2)) ' redimensionamos las matrices
ReDim solucion1(0 To (2 * n - 2))
contador = 0 'calculamos la matriz L
For fila = 0 To (2 * n - 1) Step 2
matL_dch(fila) = CDbl(Text4(contador).Text)
matL_dch(fila + 1) = CDbl(Text5(contador).Text)
contador = contador + 1
Next
solucion1 = matL_dch()
lo he probado por ejemplo para n=5 y me dice que
matL_dch(fila + 1) = CDbl(Text5(contador).Text)
esta fuera del intervalo en la fila 8 contador 4.
por favor, si alguien me puede ayudar. estoy bloqueada y no puedo continuar hasta que arregle este fallo
gracias
salu2
Perdona maestro, pero puedes explicar, sin codigo y con palabras, que quieres hacer. Pues por mas que intento no logro entender que intentas hacer. Desde ya creo que la linea que te debe dar error es la siguiente
matL_dch(fila) = CDbl(Text4(contador).Text)
matL_dch(fila + 1) = CDbl(Text5(contador).Text)
por lo que se aprecia, tienes una matriz de TEXT
Explicanos y veremos como te ayudamos
Un Saludo
Jose Oscar
vueno, vamos aya... intentare explicar lo mejor que pueda de que va esto:
haber: Resulta que yo tengo una serie de datos numericos que he introducido en una serie de textbox.
para poder calcular una serie de matrices matematicas, una de las matrices sera la matL_dch() que contendra los valores de esos textbox
como el numero de puntos puede variar por eso es n = numero de puntos
ademas por cada punto tengo 2 coordenadas (x,y) que son precisamente las que se escriben en los textbox
lo que pretendo es que los valores del textbox formen la matriz matL_dch() para poder luego multiplicarla con otra que se consigue de la misma forma.
Espero que esto os aclare un poquito lo que quiero conseguir..... si no es asi preguntarme :))
Gracias
salu2
haber: Resulta que yo tengo una serie de datos numericos que he introducido en una serie de textbox.
para poder calcular una serie de matrices matematicas, una de las matrices sera la matL_dch() que contendra los valores de esos textbox
como el numero de puntos puede variar por eso es n = numero de puntos
ademas por cada punto tengo 2 coordenadas (x,y) que son precisamente las que se escriben en los textbox
lo que pretendo es que los valores del textbox formen la matriz matL_dch() para poder luego multiplicarla con otra que se consigue de la misma forma.
Espero que esto os aclare un poquito lo que quiero conseguir..... si no es asi preguntarme :))
Gracias
salu2