Diferenças entre edições de "Manipulação de vetores"

De GNU Octave
Ir para: navegação, pesquisa
(Exercícios)
Linha 96: Linha 96:
  
 
# Crie um vetor com todos os múltiplos de 3, entre 1 e 100.
 
# Crie um vetor com todos os múltiplos de 3, entre 1 e 100.
 +
# Seja x = [1 2 3 4 5].
 +
## Calcule os valores da função y = -3x^2 +4x -1, para os valores de x.
 +
## Calcule o máximo valor de y (no domínio definido por x).
 +
## Calcule o máximo valor de y (no domínio definido por x).
 +
# Considere os seguintes dados. Tem 3 artigos diferentes, cada um com o seu preço unitário, e quer adquirir determinadas quantidades de cada um desses artigos.
 +
#* Seja preco = [ 2.45, 3.95, 8]
 +
#* Seja quantidade = [2 6 3]
 +
## Calcule o preço a pagar por cada um dos artigos, atendendo à quantidade.
 +
## Calcule valor total, isto é o valor apagar por todos os artigos multiplicados pelas respectivas quantidades.
 +
 
{| class="collapsible collapsed wikitable"
 
{| class="collapsible collapsed wikitable"
 
|-
 
|-
 +
! Soluções dos exercícios
 +
! Resumo
 
! Resposta
 
! Resposta
 
|-
 
|-
 +
| 1
 +
| Múltiplos de 3
 
| <syntaxhighlight>3:3:100</syntaxhighlight>
 
| <syntaxhighlight>3:3:100</syntaxhighlight>
|}
 
# Seja x = [1 2 3 4 5].
 
## Calcule y = -3x^2 +4x -1, para os valores de x.
 
{| class="collapsible collapsed wikitable"
 
 
|-
 
|-
! Resposta
+
| 2
 +
| Dados do problema
 +
| <syntaxhighlight>x = [1 2 3 4 5]</syntaxhighlight>
 
|-
 
|-
| <syntaxhighlight>y = -3*x.^2 + 4*x -1</syntaxhighlight>
+
| 2.1
 +
| Calcular os valores da função y
 +
| <syntaxhighlight>y = -3*x.^2 + 4*x -1
 +
y =
 +
    0  -5  -16  -33  -56
 +
</syntaxhighlight>
 +
|-
 +
| 2.2
 +
| Máximo de y
 +
| <syntaxhighlight> max(y)
 +
ans = 0
 +
</syntaxhighlight>
 +
|-
 +
| 3
 +
| Dados do problema
 +
| <syntaxhighlight>preco = [ 2.45, 3.95, 8 ]
 +
quantidade = [2 6 3]
 +
</syntaxhighlight>
 +
|-
 +
| 3.1
 +
| Valor a pagar por cada artigo (preço x quantidade)
 +
| <syntaxhighlight>preco .* quantidade
 +
ans =
 +
    4.9000  23.7000  24.0000
 +
</syntaxhighlight>
 +
|-
 +
|rowspan="3"|3.2
 +
| Valor total a pagar
 +
| <syntaxhighlight>sum(preco .* quantidade)
 +
ans =  52.600
 +
</syntaxhighlight>
 +
|-
 +
| Valor total a pagar
 +
| <syntaxhighlight>preco * quantidade'
 +
ans =  52.600
 +
</syntaxhighlight>
 +
|-
 +
| Valor total a pagar
 +
| <syntaxhighlight>dot(preco,quantidade)
 +
ans =  52.600
 +
</syntaxhighlight>
 
|}
 
|}
## Calcule o máximo valor de y.
 
## Calcule o máximo valor de y.
 
# COnsidere os seguintes dados.
 
#* Seja precounitario = [ 2.45, 3.95, 8 ]
 
#* Seja quantidade = [2 6 3]
 
## Calcule o produto dos vetores precounitario e quantidade
 
 
p .* q (produto elemento a elemento; .+ soma lemento a elemento)
 
P * q (erro)
 
 
5) Calcule o total resultante do produto anterior
 
p*q'
 
dot(p,q)
 
  
 
===== Mais sobre a gestão de ficheiros no Octave =====
 
===== Mais sobre a gestão de ficheiros no Octave =====
 +
 
pwd
 
pwd
  

Revisão das 00h27min de 15 de outubro de 2012

Existem muitas formas de manipular vetores no Octave.

Constantes

A forma mais simples de definir um vetor em Octave é listando os valores do mesmo entre '[' e ']'. Pode separar cada um dos elementos com vírgulas ou com espaços.

octave:1> vel = [ 50 50 70 90 120 ]
vel =
    50    50    70    90   120
octave:2> peso = [ 82.4, 82.7, 82.5]
peso =
   82.400   82.700   82.500

Operações

Se aplicar um operador normal, como a multiplicação, a um argumento do tipo vetor, o mesmo é aplicado a todos os elementos do vetor.

octave:13> val = [1 2 3 4 5]
val =
   1   2   3   4   5
octave:14> val*2
ans =
    2    4    6    8   10

Da mesma forma, pode aplicar uma função a todos os elementos de um vetor.

octave:15> valores = [0 pi/2 pi]
valores =
   0.00000   1.57080   3.14159
octave:16> sin(valores)
ans =
   0.00000   1.00000   0.00000

Operadores unários

octave:32> x = 4:8
x =
   4   5   6   7   8
octave:33> x^2
error: for A^b, A must be square
octave:33> x.^2
ans =
 
   16   25   36   49   64

Geração de vetores

Existe um operador específico para gerar vetores utilizando um valor inicial, um incremento e um limite. O operador usa-se da seguinte forma:

valor inicial: incremento: limite

octave:30> 1:1/3:3
ans =
    1.0000    1.3333    1.6667    2.0000    2.3333    2.6667    3.0000

Desta forma é muito fácil, por exemplo, calcular os valores da função y = 2 * x - 3 para os valores de 1 a 10.

octave:34> x = 1:1:10
x =
    1    2    3    4    5    6    7    8    9   10
octave:35> y = 2*x-3
y =
   -1    1    3    5    7    9   11   13   15   17

Pode ser abreviado para valor inicial: limite assumindo-se que o incremento é 1. Pode-se fazer, por exemplo:

octave:1> 15:20
ans =
 
   15   16   17   18   19   20

Teste

Exercícios

  1. Crie um vetor com todos os múltiplos de 3, entre 1 e 100.
  2. Seja x = [1 2 3 4 5].
    1. Calcule os valores da função y = -3x^2 +4x -1, para os valores de x.
    2. Calcule o máximo valor de y (no domínio definido por x).
    3. Calcule o máximo valor de y (no domínio definido por x).
  3. Considere os seguintes dados. Tem 3 artigos diferentes, cada um com o seu preço unitário, e quer adquirir determinadas quantidades de cada um desses artigos.
    • Seja preco = [ 2.45, 3.95, 8]
    • Seja quantidade = [2 6 3]
    1. Calcule o preço a pagar por cada um dos artigos, atendendo à quantidade.
    2. Calcule valor total, isto é o valor apagar por todos os artigos multiplicados pelas respectivas quantidades.
Mais sobre a gestão de ficheiros no Octave

pwd

Indica qual é a pasta de trabalho atual

dir

Mostra o conteúdo da pasta de trabalho atual

cd

Permite mudar para outra pasta

cd .. Muda para a pasta anterior

cd NomeDaPasta cd 'Nome da Pasta'

Pode-se usar a tecla <TAB> para expandir o nome da pasta. Por exemplo, para mudar para a pasta Desktop, basta escrever: cd Desk<TAB> e aparece-lhe cd Desktop

Grandes vetores

No Octave pode-se guardar uma ou mais variáveis num arquivo para posterior utilização. No arquivo heartrate.m, disponível em http://octave.di.uminho.pt/images/files/ tem a definição de um vetor chamado bpm. Descarregue o arquivo, e depois leia o vetor bpm do arquivo heartrate.m, com o comando: octave:1> load heartrate.m bpm

octave:1> load "C:/Users/jgr/Downloads/heartrate.m" octave:2> who Variables in the current scope: ans bpm octave:3> bpm

Neste vetor estão registados os batimentos cardíacos (batimentos por minuto) registados com intervalor de 5 segundos. O registo começou às 08:40:19 do dia 2012-10-03.

i) Diga quantos valores (comprimento) tem o vetor bpm.

ii) Diga qual o valor mínimo do vetor.

ii) Diga qual o valor máximo do vetor.

iii) Diga quantas vezes se registaram batimentos acima dos 160.

iv) Diga qual a média dos batimentos cardíacos.

mean(bpm) //ou sum(bpm)/length(bpm)//

v) Mostre apenas os primeiros 5 elementos do vetor bpm