alguem consegue fazer um algoritmo de python disso aqui?
Soluções para a tarefa
Resposta:
Código abaixo
Explicação:
O "para" se traduz em linguagem Python para "for" que é um loop.
O "faça" se traduz em linguagem Python para ":" (dois pontos).
O "fim" se traduz em linguagem Python como uma saída do loop, e isso acontece quando o loop termina ou quando colocamos a linha logo abaixo do loop fora da indentação.
Sabendo disso, vamos ao código.
Sistema Triangular Superior.
______ Inicio do Código_____
>>> import numpy as np
>>> for i in np.arange(n)[::-1] :
s = 0
for j in np.arange(n) :
s = s + A[i][j]*x[j]
### fim
xi = (b[i] - s) / A[i][i]
x[i] = xi
### fim
______ Término do Código______
______ Inicio do Exemplo_______
>>> A = [[1, 2, 3, 4], [0, 5, 6, 7], [0, 0, 8, 9], [0, 0, 0, 10]] # linha 1
>>> b = [11, 12, 13, 14] # linha 2
>>> x = [0,0,0,0] # linha 3
>>> for i in np.arange(n)[::-1] : # linha 4
s = 0
for j in np.arange(n) :
s = s + A[i][j]*x[j]
### fim
xi = (b[i] - s) / A[i][i]
x[i] = xi # linha 5
### fim
>>> print("x = ", x) #linha 6
x = [4.49, 0.38000000000000006, 0.050000000000000044, 1.4]
>>> b_teste = np.dot(A,x)
>>> print("b_teste = ", b_teste)
b_teste = [11, 12, 13, 14]
_____ Fim do Exemplo_____
_________________________________
Breve explicação:
- O símbolo "#" significa comentário. O Python ignora todos os comentários.
- O símbolo ">>>" é o prompt de comando do Python. Talvez o seu tenha, talvez não, não é importante.
- Antes de rodar o código para calcular o vetor x, precisa informar a matriz A e o vetor b. (linhas 1 e 2).
- Como não conhecemos o vetor x então todos os seus elementos são inicialmente desconhecidos, ou seja, x = [? , ? , ? , ?]. Obviamente o Python não entende o símbolo "?", então todas as entradas de x foi inicializada como sendo zero, ou seja, x = [0,0,0,0] (linha 3). Depois, dentro do próprio loop, o Python encontra cada elemento recursivamente e troca o zero pelo valor encontrado. É isso que foi feito na linha 5.
- Na linha 1, o [::-1] serve para inverter a ordem dos números gerado com o np.arange(n).
- "i" significa i-ésima linha e "j" significa j-ésima coluna.
- No "Exemplo", o comando "np.dot(A,x)" serve para calcular o produto da matriz A pelo vetor x que foi encontrado na linha 6. Chamando de "b_teste" o vetor np.dot(A,x), podemos ver b_teste é igual ao vetor b que foi passado inicialmente na linha 2, portanto o código encontrou corretamente a solução para o sistema triangular superior.
Última coisa, quando for copiar esse código para o seu arquivo, tome cuidado com a indentação, pois ao copiar e colar pode ser que a indentação fique atrapalhada no meio do caminho. Aí é só você indentar corretamente.
O sistema triangular inferior é o sistema triangular superior com tudo invertido. É só usar esse código como exemplo para fazer o sistema triangular inferior.