Notifications
Clear all

Algoritmo Método de Jacobi

3 Posts
2 Usuários
0 Reactions
1,193 Visualizações
(@cfdasn)
Posts: 1
New Member
Topic starter
 

Boa tarde. Alguém poderia revisar o algoritmo abaixo, pfv?
Grata pela atenção. :D

Sub MetodoDeJacobi()

'A partir da expressão x = Fx+d, determina-se o valor posterior de x a partir do valor inicial do mesmo
'Portanto os valores de x que constituem a solução do sistema linear fazem parte de um vetor
'Dado o sistema abaixo, utilize o método de Jacobi para determinar a sua solução:
'2*x1 - x2 = 1
'x1 + 2*x2 = 3
'tolerância
'tol = (10) ^ (-2)
'Número máximo de iterações
'n = InputBox("Dê o número máximo de iterações: ")
'Explicitou-se x1 na equação 1 e x2 na equação 2 para obter equaçõe do tipo x = F*x + d
'x1(k + 1) = 0.5 * (1 + x2(k))
'Aqui F = 0.5, d=0.5 e x = x2(k)
'x2(k + 1) = 0.5 * (3 - x1(k))
'Aqui F=-0.5, d=1.5, x = x1(k)
'Uma estimativa inicial é escolhida arbitrariamente
'x(0) = [x1(0) x2(0)] = [0 0]
'x1(0) = 0
'x2(0) = 0
'As iterações são designadas por k
'Sendo k=0 a estimativa inicial
'k = 0
'x1(1) = 0.5
'x2(1) = 1.5
'Então os valores de x para a primeira iteração são 0.5 e 1.5
'x(1) = [0.5 1.5]

Dim x1(), x2(), tol, n, k, erro As Double

'Os vetores de x têm um número k de elementos
ReDim x1(k), x2(k), x1(k + 1), x2(k + 1)

'Solicitar ao usuário o número de iterações e redefinir os vatores
n = InputBox("Dê o número máximo de iterações: ")

'Dados
x1(0) = 0
x2(0) = 0
tol = (10) ^ (-2)

'Para entrar no loop
k = 0
erro = 1

While Abs(erro) > tol & k < n
x1(k) = x1(0)
x2(k) = x2(0)
For k = 0 To n
x1(k + 1) = 0.5 * (1 + x2(k))
x2(k + 1) = 0.5 * (3 - x1(k))
k = k + 1
Next
erro = x2(k + 1) - x1(k)
Wend

Cells(1, 2) = x1(k + 1)
Cells(2, 2) = x2(k + 1)
Cells(3, 2) = k

End Sub

 
Postado : 18/04/2017 2:20 pm
(@jonascruz)
Posts: 64
Trusted Member
 

Olá, você tem alguma dúvida ou algo que queira corrigir?

Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.

Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.

 
Postado : 18/05/2017 5:38 pm
(@jonascruz)
Posts: 64
Trusted Member
 

Aproveita e posta a planilha também. Da um direcionamento do que vc quer. Fiquei mega interesssado em ajudar, mas ficou vago. No aguardo

Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.

Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.

 
Postado : 18/05/2017 5:43 pm