RICHIESTA URGENTE DI AIUTO: VISUAL BASIC

cristiano_1970
Buongiorno a tutti,

avrei bisogno di un aiuto urgente. Devo invertire una matrice 102x102, che ha una struttura abbastanza regolare (é 5-diagonale). Per farla breve, colevo usare il metodo di Gauss-Seidel o un metodo TDMA, ma sono troppo pigro (e ignorante), per cui non riesco ascrivere l' algoritmo in VB.

Qualcuno puó aiutarmi ???


QUESTA E' LA STRUTTURA DELLA MATRICE DA INVERTIRE:



[i]
Rem Definition of the Matrix A

i = 0


Do Until i = 50

k = 0

Do Until k = 101


Select Case k

Case 2 * i - 1
If i = 0 Then
GoTo FINE
Else
A(2 * i, k) = -BETA
A(2 * i + 1, k) = -THETA_1
End If

FINE::

Case 2 * i
A(2 * i, k) = 1 + OMEGA_GAS
A(2 * i + 1, k) = -THETA_2

Case 2 * i + 1
A(2 * i, k) = -OMEGA_GAS

A(2 * i + 1, k) = 1 + 2 * THETA_1 + THETA_2 + THETA_3


Case 2 * i + 2
If i = 50 Then
GoTo FINE1
Else
A(2 * i, k) = BETA
A(2 * i + 1, k) = 0
End If

FINE1::


Case 2 * i + 3
If i = 50 Then
GoTo FINE2
Else
A(2 * i + 1, k) = -THETA_1
End If

FINE2::

Case Else

A(2 * i, k) = 0
A(2 * i + 1, k) = 0

End Select

k = k + 1
Loop

i = i + 1
Loop

Risposte
TheWiz@rd
Buongiorno a tutti,

avrei bisogno di un aiuto urgente. Devo invertire una matrice 102x102, che ha una struttura abbastanza regolare (é 5-diagonale). Per farla breve, colevo usare il metodo di Gauss-Seidel o un metodo TDMA, ma sono troppo pigro (e ignorante), per cui non riesco ascrivere l' algoritmo in VB.

Qualcuno puó aiutarmi ???


QUESTA E' LA STRUTTURA DELLA MATRICE DA INVERTIRE:




Rem Definition of the Matrix A

i = 0


Do Until i = 50

k = 0

Do Until k = 101


Select Case k

Case 2 * i - 1
If i = 0 Then
GoTo FINE
Else
A(2 * i, k) = -BETA
A(2 * i + 1, k) = -THETA_1
End If

FINE::

Case 2 * i
A(2 * i, k) = 1 + OMEGA_GAS
A(2 * i + 1, k) = -THETA_2

Case 2 * i + 1
A(2 * i, k) = -OMEGA_GAS

A(2 * i + 1, k) = 1 + 2 * THETA_1 + THETA_2 + THETA_3


Case 2 * i + 2
If i = 50 Then
GoTo FINE1
Else
A(2 * i, k) = BETA
A(2 * i + 1, k) = 0
End If

FINE1::


Case 2 * i + 3
If i = 50 Then
GoTo FINE2
Else
A(2 * i + 1, k) = -THETA_1
End If

FINE2::

Case Else

A(2 * i, k) = 0
A(2 * i + 1, k) = 0

End Select

k = k + 1
Loop

i = i + 1
Loop

:?

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.