Buscar

Guia prático - Octave_Matlab

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Universidade de Cabo Verde
*****
Análise Numérica - Guia Complementar de Matlab/Octave
Obs.: Os exercícios que constam neste material são de treinamento para a disciplina de AN. Poderão ser úteis no decorrer da
disciplina.
1. A partir do software octave1 crie uma pasta no seu diretório de trabalho com um nome à escolha
(a) Mude para a pasta pelo menu ou usando o comando cd.
(b) Crie um .m-file a partir do command window2 com as iniciais do seu nome (e.g. para Obac
Edrev ponha open oe.m ou edit oe.m).
(c) Abra o .m-file e escreva fprintf(’AN 2018_2019’). Compile o programa pelo ou menu do
command window.
2. Simule os seguintes resultados no caderno, antes de usar no computador
3. Bases conversão/arredondamentos (e mais!):
(a) explore as funções: dec2bin, bin2dec, dec2hex floor, round, mod, sign, abs, fix ...
Sugestão: use o help (e.g. help dec2bin)
(b) Converta para a base binária: 1234. Converta para a base 10: (111011)2 .
4. Depois de cada um dos seguintes comandos introduza x = 3.1415−5
1ou matlab
2Janela de comandos
1
(a) � format rat.
(b) � format short.
(c) � format long.
(d) � format short e.
(e) � format long e.
5. Introduza as variáveis a = 9 e y = 26 e calcule a5 − y, 2ay e tan (ay) .
6. (Análise/manipulação das variáveis) no command window.
(a) Digite who.
(b) Digite whos.
(c) Digite clc para limpar a tela.
(d) Apague da memória uma das variáveis como o comando clear.
(e) Apague da memória todas variáveis como o comando clear all.
7. Introduza vetores usando os seguintes vetores u =
[
4 −2 1
]
e v =

1
4
−1

(a) Determine ut .
(b) Calcule ut + v.
(c) Calcule u · v.
(d) Digite size(v), sort(u) e length(v). Use o Help para cada função.
8. Introduza as seguintes matrizes:
A =

1 −1 0
1 2 −1
2 1 1
 , b =
[
1 0 2
] t .
(a) Digite eye(3).
(b) Digite B=A^-1.
(c) Digite A*B.
(d) Resolva o sistema Ax = B.
(e) Escreva as expressões para: somar os elementos da linha 2 da matriz A; elevar todos elementos
da coluna dois ao quadrado; calcular a média, o máximo e menor elemento da alinha 3 e calcular
o traço e o determinante da matriz A.
9. (randn()) Vetores/matrizes:
(a) Gere um vetor x com números entre 0 e 1 a uma distancia de 0.1
(b) Gere um vetor y com números 10 números entre 0 e 1.
(c) Gere uma matriz com entradas unitárias e de dimensão: 4, 5 e 6.
(d) Gere um vetor aleatório de 3x3.
10. Sistema FP
(a) Explore as seguintes variáveis fixas: realmax, realmin e eps. Qual o significado?
2
(b) Seja a = 3.1e200 e y = 2.2e200 calcule ay. Comente.
(c) a = 3.1e − 200 e y = 2.2e − 200 calcule ay. Comente.
11. Sobre gráficos em matlab/octave:
(a) Para fazer um gráfico de uma função (e.g. y = x2) com −2 ≤ x ≤ 2 calculamos o valor da
função num número suficiente grande de pontos no intervalo, depois esses pontos são unidos
por segmentos.
i. Gere um vetor x com 10 elementos equidistantes no intervalo dado usando a função lins-
pace(). Calcule y pela formula3 dada
ii. Efectue o gráfico.
iii. Coloque os labels no gráfico fazendo xlabel(’(x)’) e ylabel(’(y)’)
title(’y=x^2’) Coloque o titulo fazendo
iv. Mude a cor e o estilo da linha do gráfico.
M-Files, arrays, funções e Programas
12. Escreva um .m-script para gerar as seguintes sequências
(a) 9, 4, 1, -3, -7
(b) 0.00001, 0.0001, 0.001, 0.01, 0.1
(c) Todos os números pares entre 2 e 100.
13. Escreva um programa que retorna soma todos os inteiros entre 1 e 100. Modifique o programa para
uma função que dado um número inteiro positivo qualquer retorna a sua pretendida.
14. Escreva um programa para gerar uma matriz quadrada A =
[
aij
]
de ordem 3 que satisfaz a condição
dada
(a) aij = 0 se i , j
(b) aij = 0 se i > j
(c) aij = 0 se i < j
(d) aij =
{
1, |i − j| > 1
−1, |i − j| ≤ 1
.
15. Generalize o exercício anterior para qualquer n inteiro positivo, maior que 1, introduzido pelo utili-
zador.
16. Seja A uma matriz quadrada de ordem n, sobre um corpo F. Diz-se que A é involuntório sse A2 = In.
Verifique se as matrizes seguintes são involuntórios.
(a) A =

−112 −
39
4 −
39
4
1 52
3
2
2 3 4

(b) B =

−112 −
39
4 −
39
4
1 52
3
2
2 3 4

t
3No caso escreve-se y=x.^2 sendo o ”.” indispensável.
3
17. Investigue se a Matriz A =

0 0 0
10 2 −1
1 4 −2
 é Nilpotente4 e determine a ordem. (Sugestão: faça um
ciclo!)
18. Considere a matiz da alínea anterior e determine: A (1|1) , A (1|1, 2) e A [1, 2|1, 3] .
19. Dada matriz A =

1 0 1
2 3 4
−1 1 1
 de B =

1
2
−1
 . Calcule |A| e A−1. Determine também a forma escalonada
reduzida de [A|B] a resolva o sistema AX = B
20. Escreva uma função para determinar o ângulo entre dois vetores de R3. Para tal, pode-se usar a
relação
cos (θ) =
x · y
‖x‖ ‖y‖
(0.1)
onde θ é o ângulo entre os dois vectores, x · y o seu produto escalar. Para determinar θ sabendo o
seu co-seno, pode usar a função acos().
21. Crie uma função que permite calcular área de uma circunferência usando o input() para ler o raio
e fprintf() (ou disp()) para apresentar o output.
22. O seguinte algoritmo compara dois valores em x e y e coloca em m o maior deles
ler x, y
se x > y então m← x
senão m← y
fim
Escreva um programa em matlab/octave que:
(a) Dados três valores, x, y e z coloque em m o maior deles.
(b) Dados três valores, x, y e z coloque em m1 o maior deles e em m2 o menor deles.
(c) Dados três valores, x, y e z coloque em m o valor do meio.
23. O factorial de um número natural n é n! = 1 × 2 × 3 × · · · × n (e.g. 3! = 1 × 2 × 3.)
(a) Escreva uma programa para calcular o fatorial de um número n ≥ 1
(b) Usando a função cumprod tabele o fatorial de números entre 1 e 10.
24. Escreva um .m-script em matlab/octave que calcule a resistência elétrica RE equivalente a um
circuito em paralelo de resistências R1, R2, . . . , Rn
RE =
1(
1
R1 +
1
R2 + · · · +
1
Rn
) (0.2)
Os valores Ri > 0 devem ser lidos pelo teclado.
25. Um objeto com peso 100 kg deve ser suspenso de uma haste horizontal de 2.5 cm (com peso despre-
zável). A haste está fixa na parede e é suportada por uma cabo de 2 m (figura abaixo) .
4Veja apontamentos de ALGA I
4
A tensão T no cabo é dada pela equação A tensão T no cabo
é dada pela equação
T =
W × g × l × lc
d
√
l2c − d2
onde W é o peso do objecto, g é a aceleração da gravidade,
l é o comprimento da haste, lc é o comprimento do cabo e d
é a distância onde fixamos o cabo.
Escreva um programa em matlab/octave que determine a distância d que minimiza a tensão no
cabo. O programa deve calcular a tensão para d de 0.5 m por incrementos de 5 cm para localizar a
posição da tensão mínima.
26. Em engenharia eletrotécnica é comum exprimir a relação entre dois valores de potência em decibéis,
ou dB, dada pela equação
dB = 10 log10
(
P2
P1
)
(0.3)
onde P2 é o valor de potência a ser medido e P1 é um valor entendido com referência. Utilizando o
valor de referência convencional (1 watt), escreva um programa que dado o valor de P2 o converta
em dB.
27. Numa conta a prazo com a capitalização automática o valor do juro é acumulado ao capital inicial
no final de cada período. Assim, o capital acumulado ao fim de N períodos é dado pela equação
Capital final = Capital inicial × (1 + t)N, 0 < t < 1. (0.4)
(e.g. com um capital inicial de 1000 contos e uma taxa anual de 5 % o capital acumulado ao fim
de dois anos serão de 1000 × (1 + 0.05)2 = 1102.5 contos). Escreva um programa que dados capital
inicial Ci, a taxa de juro anual t e o número de anos N calcule o capital acumulado Cf no final de N
anos.
28. Em álgebra linear é possível definir várias normas de matrizes que traduzem o ’tamanho’ de uma
matriz de forma análoga a um vetpor. O matlab/octave dispõe da função norm() que permite
calcular as normas abaixo para uma matriz do tipo N × M
(a) a norma de Frobenius: ‖A‖F =
√√√√©­«
N∑
i=1
M∑
a2ij
j=1
ª®¬.
(b) a norma-1: ‖A‖1 = max
1≤ j≤M
M∑
i=1
��aij�� .
(c) a norma-∞: ‖A‖∞ =max
1≤i≤N
N∑
j=1
��aij�� .
Sem recurso a função norm(), escreva um programa paracalcular as normas.
5
29. Escreva um programa que leia os valores dos três ângulos de um triângulo e o classifique como
equilátero (três ângulos iguais), isósceles (dois ângulos iguais) ou escaleno (caso contrário). Além
disso, se algum dos ângulos for igual a 90 o programa deve ainda indicar que o triângulo é rectângulo.
30. Escreva um programa que leia as coordenadas (x, y) dum ponto no plano e indique em que quadrante
se encontra o Ponto (1.o, 2.o, 3.o ou 4.o).
31. Escreva um programa que dado a uma aproximação (aprox) de x, e o valor exato e calcule o erro
absoluto e o erro relativo cometido na aproximação. Modifique o programa de modo que se o erro
absoluto for maior que 0.5 × 10−2 ou erro relativo for maior que 5 × 10−3 imprimir uma mensagem
de erro.
32. Dada uma função real de variável real f (x) . Se f for continua em [a, b] , e f (a) × f (b) < 0, pelo
Teorema de Bolzano, então f admite pelo menos um zero no intervalo5.
(a) Escreva um programa em matlab/octave que dado uma função f (x) e um intervalo onde ela é
continua, verificar se a função admite uma raíz.
(b) Uma técnica para verificar se existe um zero num dado intervalo [a, b] é o de varrimento6 descrito
conforme procedimento
i. definir passo h = b−an
ii. calcular f nos pontos xi = a + ih, i = 0, 1, . . . , n
iii. se f (xi) f (xi+1) < 0 então ∃ zero de f em [xi, xi+1] .
Programe a técnica do Varrimento.
(c) Teste os programas tomando:
i. f (x) = e−x − x, I = [0, 1] .
ii. f (x) = ex − 1, I = [−1, 9] .
iii. f (x) = x2 − 1, I = [0, 2] .
(d) Use a função fzero() para determinar o zero das funções anteriores no intervalo dado e visualize
os gráficos no intervalo dado.
FIM
5Atente-se que o Teorema não garante a unicidade. Se para além disso, a função for monótona crescente ou decrescente
no intervalo pode-se concluir a unicidade...
6... a sensibilidade está constrita ao h.
6

Continue navegando