Informática, perguntado por icarobrand, 10 meses atrás

alguem consegue fazer um algoritmo de python disso aqui?

Anexos:

Soluções para a tarefa

Respondido por SelfTaught
0

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.

Perguntas interessantes