︠56f34c66-31f1-48d1-ba43-f35ad3a45b2di︠ %md # Vetores ︡5ac23165-d716-43ae-86a2-916178823b62︡{"done":true,"md":"# Vetores"} ︠9b82fe69-7d28-4d59-b9a8-e321bff2ec79i︠ %md Vetores no Sage são representados por objetos do tipo `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: ︡daa49ad7-6311-437a-a3bc-35ee7b74170f︡{"done":true,"md":"Vetores no Sage são representados por objetos do tipo `vector`.\nPor exemplo, para criar um vetor com coordenadas (-1.5, 3.2, 4.6) e atribuí-lo à variável `v`, usamos o seguinte comando:"} ︠e94f62c0-709f-47b8-92df-9280f64ee3afs︠ v = vector([-1.5, 3.2, 4.6]) ︡8bffdeab-363f-47fa-b13f-c40eeff22f4c︡{"done":true} ︠425bbb8e-606f-4e11-9677-5048ec6bbfafi︠ %md Para imprimir na tela uma variável, simplesmente digitamos o nome da variável ou usamos o comando `print`: ︡8c7e060d-85de-403a-953b-464f3a0f682e︡{"done":true,"md":"Para imprimir na tela uma variável, simplesmente digitamos o nome da variável ou usamos o comando `print`:"} ︠6a73bf14-aeb0-43e8-ba21-a6f0a946cc68s︠ v ︡d9e277c6-4efa-4544-b3f1-29fe57b3e34d︡{"stdout":"(-1.50000000000000, 3.20000000000000, 4.60000000000000)\n"}︡{"done":true} ︠6ea4216a-1503-4158-b305-1976ad6f5d13s︠ print(v) ︡90c942e3-782b-40b0-8edf-ec138413f4c2︡{"stdout":"(-1.50000000000000, 3.20000000000000, 4.60000000000000)\n"}︡{"done":true} ︠8f77fb5c-7e54-4e9d-99c0-d575fd5874a8i︠ %md Para imprimir na tela uma variável em formato LaTeX, usamos o comando `show`: ︡8f3c75a8-d913-4b5a-a610-6bb4d584ef93︡{"done":true,"md":"Para imprimir na tela uma variável em formato LaTeX, usamos o comando `show`:"} ︠2132ea80-1efd-4551-a757-92fb1c76ecb4s︠ show(v) ︡cfdf0527-a5e2-4889-83bd-71ef86af83a9︡{"html":"
$\\displaystyle \\left(-1.50000000000000,\\,3.20000000000000,\\,4.60000000000000\\right)$
"}︡{"done":true} ︠e5066e10-39f2-4608-bec4-8be73a9f43b4i︠ %md ## Número de coordenadas de um vetor ︡6417ed8e-e3d2-475b-bda7-c3d82756c3ee︡{"done":true,"md":"## Número de coordenadas de um vetor"} ︠28b1b129-961f-4129-8917-38cd28e1914di︠ %md Para obter o número de coordenadas do vetor `v`, usamos o método `length` de `v`: ︡0e63773f-d0f3-4289-ac61-adc31cbc9c3a︡{"done":true,"md":"Para obter o número de coordenadas do vetor `v`, usamos o método `length` de `v`:"} ︠de53d555-bd0e-459d-bff7-079a27e2b62as︠ v.length() ︡11fb6208-e384-4494-86a4-77874b4ea4db︡{"stdout":"3\n"}︡{"done":true} ︠8df3df08-92e7-497c-a8b8-dec04e406cc1i︠ %md ## Coordenadas de um vetor ︡041ed1c6-689d-4dd2-8a84-c0837bf72577︡{"done":true,"md":"## Coordenadas de um vetor"} ︠5d3a64ca-849c-403f-8c1b-5b9b5284422ai︠ %md No Sage, as coordenadas de vetores do $\mathbb{R}^n$ são indexadas de 0 a n-1. Por exemplo, se `v` é um vetor do $\mathbb{R}^3$, 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]`: ︡ee85bd41-9c05-4ac3-bb5c-0c0b64cf5661︡{"done":true,"md":"No Sage, as coordenadas de vetores do $\\mathbb{R}^n$ são indexadas de 0 a n-1.\nPor exemplo, se `v` é um vetor do $\\mathbb{R}^3$, então as coordenadas de `v` são indexadas de 0 a 2, ou seja, $v = (v_0, v_1, v_2)$.\n\nPara obter o valor da coordenada `j` do vetor `v`, usamos o comando `v[j]`:"} ︠da6ed6c3-3435-4e22-bed8-b64a40389561s︠ v = vector([5, 6, 7]) ︡24f99e74-2770-4d13-9dc9-c55be80390d2︡{"done":true} ︠a442abb3-0d2f-41bb-888b-dc3e4d5e93b6s︠ v[0] ︡38d0b90c-ef19-4c9e-9ebe-9bf651e7b399︡{"stdout":"5\n"}︡{"done":true} ︠8c7a1876-ce61-4142-bb87-d71168ee6d1fs︠ v[2] ︡44d22b8b-2678-426a-8657-57bbbdff1487︡{"stdout":"7\n"}︡{"done":true} ︠417a4cde-9774-49bd-8c50-d49a6c1fb2dci︠ %md Podemos também modificar o valor de uma coordenada com o seguinte comando: ︡5de98dd0-4545-4dfc-beb2-a47360559581︡{"done":true,"md":"Podemos também modificar o valor de uma coordenada com o seguinte comando:"} ︠0af763a5-8a3f-4ba4-83f9-ee9e0458ec5es︠ v[0] = 10 v ︡31580019-6c4d-4949-b4a5-8e124c9ba1b5︡{"stdout":"(10, 6, 7)\n"}︡{"done":true} ︠5fe2c8eb-dbe1-4f72-8c86-41f7882ca155i︠ %md ## Copiando vetores ︡763c88d4-7458-46fc-baa6-2d56c6a09d65︡{"done":true,"md":"## Copiando vetores"} ︠56158cfc-ddb9-43cd-b3fa-407e3e9f071bi︠ %md Para criar uma cópia de um vetor, usamos o comando `copy`: ︡d076048e-6978-4d08-9313-67b24ac30e1c︡{"done":true,"md":"Para criar uma cópia de um vetor, usamos o comando `copy`:"} ︠bbaa44a8-1b0e-4c1c-aea0-3ffd254ff343s︠ w = copy(v) ︡0b633982-72fe-4977-833e-25f085273470︡{"done":true} ︠2b5c40ab-eea8-471a-8692-04b34b153befi︠ %md Podemos comparar dois vetores usando o operador `==`: ︡f6e4e25a-528b-44d8-b3da-cf7eb676b3e0︡{"done":true,"md":"Podemos comparar dois vetores usando o operador `==`:"} ︠72a267ba-9eb2-40ef-a189-f06e5bc51d4bs︠ w == v ︡6013b519-bbe0-46f1-8709-501de521ea0f︡{"stdout":"True\n"}︡{"done":true} ︠f8cfaba1-4856-4495-b2da-fc985f088bedi︠ %md O seguinte comando modifica o valor da terceira coordenada de `w` (lembre que as coordenadas são indexadas a partir de 0): ︡a2f7df69-383a-49bc-a248-2902ca9d22fc︡{"done":true,"md":"O seguinte comando modifica o valor da terceira coordenada de `w` (lembre que as coordenadas são indexadas a partir de 0):"} ︠f823e585-d8bb-4c93-9c13-ce2d6ed8b233s︠ w[2] = 10 ︡316221b0-fc43-4680-b50b-0e55d9728c64︡{"done":true} ︠72555948-cfbe-41b0-813b-424fa60d2aaci︠ %md Agora os vetores `v` e `w` são diferentes: ︡cd66b605-3d9e-414b-992d-3804e709ebd6︡{"done":true,"md":"Agora os vetores `v` e `w` são diferentes:"} ︠5b5937d1-a6fa-4439-ad9d-5a60573cda19s︠ w == v ︡e6e5ff6b-bebb-45a3-b016-136c4de98e3b︡{"stdout":"False\n"}︡{"done":true} ︠412d393d-1d9c-4b9a-8ddb-e2f58e22cac9i︠ %md De fato ︡f28be3ab-c9a0-43a2-be34-2a08a1126fb1︡{"done":true,"md":"De fato"} ︠f52f80ce-400a-4396-b9e8-f7381f2286f9s︠ w ︡30457284-5df7-4d38-abf4-809ac08852bc︡{"stdout":"(10, 6, 10)\n"}︡{"done":true} ︠53c23797-9575-45f6-9528-b429517dbed6s︠ v ︡e95ca6c9-de34-4605-8576-d7a959f37066︡{"stdout":"(10, 6, 7)\n"}︡{"done":true} ︠a5777aa1-a8cc-40dc-9903-184b29c36752i︠ %md ## Vetor zero ︡b7190f6b-20ed-4330-acce-d8a5b2f6883c︡{"done":true,"md":"## Vetor zero"} ︠4f852aa3-abe5-4ff4-8cac-c7ea70272fcci︠ %md O comando `zero_vector(3)` fornece o vetor zero do $\mathbb{R}^3$: ︡f0e9150d-49c3-424c-baf8-36eb56f7e0be︡{"done":true,"md":"O comando `zero_vector(3)` fornece o vetor zero do $\\mathbb{R}^3$:"} ︠8c9c6958-805f-4539-b1c7-f93d499e222ds︠ zero_vector(3) ︡53eea0b9-e994-441a-9286-b57a6b816ec6︡{"stdout":"(0, 0, 0)\n"}︡{"done":true} ︠9f37eeec-a425-42d0-b29e-73272d6494f0i︠ %md Podemos atribuí-lo à variável `zero`, por exemplo: ︡2e5eeeaa-ecae-4578-a34e-fa03c541e8d9︡{"done":true,"md":"Podemos atribuí-lo à variável `zero`, por exemplo:"} ︠4fb5c0b3-2098-4483-9709-fd8df041e3b9s︠ zero = zero_vector(3) print(zero) ︡816f6cd4-ce87-4785-b9e0-292f9e04a7f7︡{"stdout":"(0, 0, 0)\n"}︡{"done":true} ︠c5705f6f-bcce-4b94-8124-fd017e4e360ci︠ %md ## Vetores aleatórios ︡e9042305-d12e-493c-b945-3691954c5e67︡{"done":true,"md":"## Vetores aleatórios"} ︠c0e3e259-6186-4542-ab63-2652351db1fei︠ %md Muitas vezes é útil tomar um vetor qualquer. O comando `random_vector(3)` fornece um vetor do $\mathbb{R}^3$ em que as coordenadas foram escolhidas aleatóriamente: ︡7e6d4f62-ce07-4096-ae12-ad9adefc85b5︡{"done":true,"md":"Muitas vezes é útil tomar um vetor qualquer.\nO comando `random_vector(3)` fornece um vetor do $\\mathbb{R}^3$ em que as coordenadas foram escolhidas aleatóriamente:"} ︠4d297293-cc73-4c5b-95b9-df474a74965ds︠ random_vector(3) ︡5f8f9c3d-8bf9-4864-9c2a-d0c75a7d2e96︡{"stdout":"(-2, -1, -1)\n"}︡{"done":true} ︠59f58e23-54c2-4085-9178-223f0f2ead1ai︠ %md Por definição, esse comando fornece um vetor cujas coordenadas são números inteiros. Se quisermos obter vetores cujas coordenadas são números do tipo `float` (grosso, números reais), usamos o comando ︡bd795784-01e0-434f-a7ae-9fa1f974bbe4︡{"done":true,"md":"Por definição, esse comando fornece um vetor cujas coordenadas são números inteiros.\nSe quisermos obter vetores cujas coordenadas são números do tipo `float` (grosso, números reais), usamos o comando"} ︠770a5359-ed8d-4b2c-b6e4-cf30986aa423s︠ random_vector(RR, 3) ︡5b1166f3-aeec-4bed-bb9c-ad80c6ff2e50︡{"stdout":"(-0.765230441237253, -0.845791783980390, -0.651697419467054)\n"}︡{"done":true} ︠06501a02-ec8d-475c-a2b7-447944c74b4di︠ %md Podemos também selecionar um vetor cujas coordenadas são números racionais: ︡87914274-3dfc-4398-a538-a0ba8db893c9︡{"done":true,"md":"Podemos também selecionar um vetor cujas coordenadas são números racionais:"} ︠85a7aa4a-91c1-4527-9f8e-6ae38c8a7a43s︠ random_vector(QQ, 3) ︡6eaafb1b-c2a0-493c-84ab-1cbdae146b37︡{"stdout":"(-1, 1, 1/9)\n"}︡{"done":true} ︠b197fc11-e7d3-45aa-ab13-a9c2b33ee1e6i︠ %md Para calcular a soma de `v` e `w` usamos o comando `v + w`: ︡4ed59ffa-1c2a-4712-a02a-77c7d42a1892︡{"done":true,"md":"Para calcular a soma de `v` e `w` usamos o comando `v + w`:"} ︠78b47fa2-39e4-446f-af33-45f0fc1e6c6es︠ v = vector([1, 2, 3]) w = vector([5, 5, 5]) v + w ︡7482acb3-2efd-4e69-984c-16cd06ea45fb︡{"stdout":"(6, 7, 8)\n"}︡{"done":true} ︠d5a4bb61-f86a-477e-b44d-8508d947c9d7i︠ %md Analogamente, podemos calcular `v - w`: ︡705ee22e-bef4-4a05-8a7f-579bee99bdab︡{"done":true,"md":"Analogamente, podemos calcular `v - w`:"} ︠1c5c46f7-7c63-41d8-b12f-74081f23751ds︠ v - w ︡89d2f995-70ed-410a-957f-ee3ec3387c32︡{"stdout":"(-4, -3, -2)\n"}︡{"done":true} ︠8b70341d-444d-4e98-82c1-fdde2002bd36i︠ %md ## Multiplicação de vetor por escalar ︡5a718d71-588e-4082-9366-fa204efe9bdf︡{"done":true,"md":"## Multiplicação de vetor por escalar"} ︠d3b61606-5a79-4f55-b9ad-4f769305479ai︠ %md Multiplicamos um escalar por um vetor usando o operador `*`. O comando `2*v` calcula `2` vezes o vetor `v`, por exemplo: ︡38afaa95-90cd-472c-921e-2a7716ae9e35︡{"done":true,"md":"Multiplicamos um escalar por um vetor usando o operador `*`.\nO comando `2*v` calcula `2` vezes o vetor `v`, por exemplo:"} ︠5fa3cc76-30af-4966-b735-05154f886e31s︠ v = vector([-1, 0, 3]) ︡a10122f2-6d11-4a16-b8a6-1aaa09c90a42︡{"done":true} ︠ea8a0fd7-5bf1-49fa-b0d8-8cc02e47e39es︠ 2*v ︡aad36572-20dd-402c-a849-839c8ae360a0︡{"stdout":"(-2, 0, 6)\n"}︡{"done":true} ︠5365e1cb-5e24-40c9-963e-517870a973f5i︠ %md ## Combinações lineares ︡728cb1c1-a0da-4e6e-a49e-fe2a5e257e3d︡{"done":true,"md":"## Combinações lineares"} ︠baa0d74e-44b2-4551-80dc-5f80e5207567i︠ %md Podemos atribuir vetores e escalares a variáveis: ︡4c438758-cd57-4a40-a63d-a1ebb84500e9︡{"done":true,"md":"Podemos atribuir vetores e escalares a variáveis:"} ︠3c397df7-44ca-4cf0-b209-ec60fd6bd4abs︠ u = vector([2, 0, 7]) v = vector([-3, 5, 1]) a = 2 b = -3 ︡3b1eacd3-1681-4113-a6e9-3850c844989e︡{"done":true} ︠38539be3-ff20-4aca-9b6a-d3f7a31957fdi︠ %md Então calculamos uma combinação linear de `u` e `v`: ︡b8c6f418-829c-4b9c-a06e-293250be34c1︡{"done":true,"md":"Então calculamos uma combinação linear de `u` e `v`:"} ︠2e5b3d58-f56c-47ca-b142-6d22fcf5a064s︠ w = a*u + b*v w ︡16784d39-7334-4180-8788-6d0f4c2e5b97︡{"stdout":"(13, -15, 11)\n"}︡{"done":true} ︠47418694-9241-4b9d-9e0c-d0b4544bdbdfi︠ %md ## Gráficos de vetores ︡fefe245a-f221-4685-8c16-87fda3ae61f2︡{"done":true,"md":"## Gráficos de vetores"} ︠5c06047e-56c4-4684-a0da-40e1b5a6b865i︠ %md Consideremos dois vetores no plano: ︡b346e3cd-444a-4eeb-9a80-e0a8f3db72f0︡{"done":true,"md":"Consideremos dois vetores no plano:"} ︠27bf0ae3-fe4f-46dd-a78e-c921fba6b759s︠ u = vector([5, 1]) v = vector([1, 3]) ︡d3bbbeef-cdbe-44c6-b871-1f7fd2af2db9︡{"done":true} ︠7abf060d-5d9c-4de6-9c09-a03ebc9c662di︠ %md Para criar o gráfico de um vetor com ponto inicial na origem, usamos o comando `plot`: ︡5cae02c1-cebd-4c66-9cf6-459cd267c159︡{"done":true,"md":"Para criar o gráfico de um vetor com ponto inicial na origem, usamos o comando `plot`:"} ︠a8e05611-4b00-49a4-aa79-a2b557eed815s︠ plot(u) ︡770abf31-dee1-4375-9217-d8d335453ce1︡{"file":{"filename":"/home/user/.sage/temp/project-718af838-09e2-466f-8d10-8d4ffb49dd92/10985/tmp_dAoAQj.svg","show":true,"text":null,"uuid":"c6fcd9a8-7223-45f0-9a0a-57bfeeb039f0"},"once":false}︡{"done":true} ︠e211a6f7-6666-41f7-91a7-06f44c3d31f4i︠ %md 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`: ︡ab85229a-719c-4135-ae4e-42333eb0684b︡{"done":true,"md":"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.\nPor exemplo, somamos os gráficos dos vetores `u`, `v` e `u + v` e armazenamos na variável `p`:"} ︠bba0799e-aa57-4b1c-8560-c0a8ed66474ds︠ p1 = plot(u, color='blue') p2 = plot(v, color='red') p3 = plot(u + v, color='green') p = p1 + p2 + p3 ︡7cbd245f-59c4-42c0-b734-4c88694286af︡{"done":true} ︠73072e71-c2c1-4f90-871a-6aef8168a6b9i︠ %md Em seguida, exibimos o gráfico `p` com o comando `show(p)`: ︡843d277d-05de-4039-aad5-ee3c84425ded︡{"done":true,"md":"Em seguida, exibimos o gráfico `p` com o comando `show(p)`:"} ︠e36aac36-4618-4ec9-8d8b-4bb8e8bbee6bs︠ show(p, axes_labels=['X', 'Y']) ︡67ee95b2-1cf8-47d8-ac7d-2d4e9e2a799e︡{"file":{"filename":"/home/user/.sage/temp/project-718af838-09e2-466f-8d10-8d4ffb49dd92/10985/tmp_eh3gc4.svg","show":true,"text":null,"uuid":"35370844-ea28-48ff-b20d-1c8b8ec4adfd"},"once":false}︡{"done":true} ︠a8075674-aebf-46ab-a4a2-2924af482867︠