CoCalc Public Filessage / vetores.sagewsOpen with one click!
Author: Gustavo de Oliveira
Views : 124
License: GNU General Public License v3.0
Description: Tutorial Sage (versão sage-worksheet) -- Vetores
Compute Environment: Ubuntu 18.04 (Deprecated)

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'>

O comando type(v) fornece o tipo do objeto v.

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

De fato, o vetor v acima tem três coordenadas.

Coordenadas de um vetor

No Sage, as coordenadas de um vetor são indexadas a partir de 0. Por exemplo, se v é um vetor com três 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 ==:

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)
(1, 0, -1)

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.114031182354963, 0.631904613332512, 0.608370907241339)

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

random_vector(QQ, 3)
(-1/4, 1/6, 1/2)

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 vetor por um escalar usando o operador *. Por exemplo, o comando 2*v calcula 2 vezes o vetor v. De forma mais geral, se a é um número e v é um vetor podemos calcular a*v.

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

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)

Uma combinação linear de vetores é uma soma de múltiplos escalares desses vetores.

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 frequentemente).

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