CoCalc Public Filessage / vetores.sagewsOpen with one click!
Author: Gustavo de Oliveira
Views : 35
License: GNU General Public License v3.0
Description: Tutorial Sage/Python: Vetores

Vetores

Primeiramente, vamos descrever como criar vetores no Sage. Em seguida, descreveremos diversas funções que fornecem informações sobre vetores. Por fim, mencionamos como fazer operações básicas com vetores.

Criando vetores

Vetores no Sage são criados com a função vector(). Por exemplo, para criar um vetor com coordenadas (-1.5, 3.2, 4.6) e atribuí-lo à variável v, usamos o seguinte comando:

v = vector([-1.5, 3.2, 4.6])
type(v)
<type 'sage.modules.free_module_element.FreeModuleElement_generic_dense'>

Para imprimir na tela um vetor, simplesmente digitamos o nome do vetor ou usamos a função print():

v
(-1.50000000000000, 3.20000000000000, 4.60000000000000)
print(v)
(-1.50000000000000, 3.20000000000000, 4.60000000000000)

Para imprimir na tela um vetor em formato LaTeX, usamos a função show():

show(v)
(1.50000000000000,3.20000000000000,4.60000000000000)\displaystyle \left(-1.50000000000000,\,3.20000000000000,\,4.60000000000000\right)

Dimensão de um vetor

Chamamos de dimensão de um vetor o número de coordenadas do vetor. Não devemos confundir a dimensão de um vetor com o comprimento (ou norma) de um vetor (discutiremos esse conceito posteriormente).

Para obter o número de coordenadas do vetor v, usamos o método (ou função) length() de v:

v.length()
3

Coordenadas de um vetor

No Sage, as coordenadas de vetores com n coordenadas são indexadas de 0 a n-1. Por exemplo, se v é um vetor com 3 coordenadas, então as coordenadas de v são indexadas de 0 a 2, ou seja, v = (v_0, v_1, v_2).

Para obter o valor da coordenada j do vetor v, usamos o comando v[j]:

v = vector([5, 6, 7])
v[0]
5
v[2]
7

Podemos modificar o valor de uma coordenada com o seguinte comando:

v[0] = 10 v
(10, 6, 7)

Copiando vetores

Para criar uma cópia de um vetor, usamos a função copy():

w = copy(v)

Podemos comparar dois vetores usando o operador de igualdade == entre dois objetos:

w == v
True

O seguinte comando modifica o valor da terceira coordenada de w (lembre que as coordenadas são indexadas a partir de 0):

w[2] = 10

Agora os vetores v e w são diferentes:

w == v
False

De fato

w
(10, 6, 10)
v
(10, 6, 7)

Atribuição versus cópia

Se em vez de usar o comando w = copy(v) tivéssemos simplesmente declarado w = v, não teríamos criado um novo vetor. Teríamos apenas atribuído à variável w o mesmo vetor já atribuído à variável v. Em outras palavras, teríamos apenas dado um outro nome (no caso w) para o vetor v. Veja o exemplo abaixo.

v = vector([5, 6, 7]) w = v v[0] = -10 w[0]
-10

Acima, criamos um vetor v e atribuímos w = v. Depois, alteramos a primeira coordenadas de v. Então imprimimos a primeira coordenads de w e vimos que ela também foi alterada. Ou seja, o vetor w não é um novo vetor diferente de v.

Vetor zero

O comando zero_vector(3) fornece o vetor zero de três coordenadas:

zero_vector(3)
(0, 0, 0)

Podemos atribuí-lo à variável zero, por exemplo:

zero = zero_vector(3) print(zero)
(0, 0, 0)

Vetores aleatórios

Muitas vezes é útil tomar um vetor qualquer. O comando random_vector(3) fornece um vetor com três coordenadas em que as coordenadas foram escolhidas aleatóriamente:

random_vector(3)
(-2, 1, -5)

Por definição, esse comando fornece um vetor cujas coordenadas são números do tipo Inteiro. Se quisermos obter vetores cujas coordenadas são números do tipo Real, usamos o seguinte comando:

random_vector(RR, 3)
(0.169851707146654, 0.827152737719533, -0.293493729103805)

Podemos também selecionar um vetor cujas coordenadas são números do tipo Racional:

random_vector(QQ, 3)
(1, -1/29, -5)

Adição de vetores

Para calcular a soma de v e w usamos o comando v + w:

v = vector([1, 2, 3]) w = vector([5, 5, 5]) v + w
(6, 7, 8)

Analogamente, podemos calcular a diferença v - w:

v - w
(-4, -3, -2)

Multiplicação de vetor por escalar

Multiplicamos um escalar por um vetor usando o operador *. O comando 2*v calcula 2 vezes o vetor v, por exemplo:

v = vector([-1, 0, 3])
2*v
(-2, 0, 6)

Combinações lineares

Como já vimos, podemos atribuir vetores e escalares a variáveis:

u = vector([2, 0, 7]) v = vector([-3, 5, 1]) a = 2 b = -3

Então calculamos uma combinação linear de u e v:

w = a*u + b*v w
(13, -15, 11)

Gráficos de vetores

Consideremos dois vetores no plano (ou seja, dois vetores de duas coordenadas):

u = vector([5, 1]) v = vector([1, 3])

Para criar o gráfico do vetor u com ponto inicial na origem, usamos o comando plot(u). A função plot() é usada para criar gráficos de vários tipos (usaremos ela muitas vezes posteriormente).

plot(u)

Para representar vários vetores em um mesmo gráfico, primeiro "somamos" os gráficos de cada um deles e armazenamos em uma variável. Por exemplo, somamos os gráficos dos vetores u, v e u + v e armazenamos na variável p:

p1 = plot(u, color='blue') p2 = plot(v, color='red') p3 = plot(u + v, color='green') p = p1 + p2 + p3

Em seguida, exibimos o gráfico p com o comando show(p):

show(p, axes_labels=['X', 'Y'])

Analogamente, podemos fazer gráficos de vetores com três coordenadas. Veja o exemplo a seguir.

v = vector([1, 1, 1]) plot(v)
3D rendering not yet implemented