Você está na página 1de 3

Computação Científica Folha Prática – Programação em Matlab

Implemente um programa em MatLab para cada um dos problemas que se seguem.

1. Implemente uma função para construir uma matriz de números inteiros gerados aleatoriamente e
compreendidos entre dois dados números inteiros (use a função rand(m, n)). Testar para
atribuir valores aleatórios:
a) aos escalares inteiros num1 e num2, ambos compreendido entre 5 e 20;
b) ao vetor linha VL com num1 números inteiros entre -20 e 20;
c) ao vetor coluna VC com num2 números inteiros entre 10 e 50;
d) à matriz M com num1 linhas e num2 colunas de números inteiros entre -30 e 50 .

2. Dada uma matriz M (5x7), preenchê-la com valores gerados aleatoriamente e mostrar:
a) o maior elemento de cada linha da matriz;
b) o maior elemento de cada coluna da matriz;
c) a média dos elementos de cada linha;
d) a média dos elementos de cada coluna;
e) o produto de todos os elementos diferentes de zero;
f) quantos elementos são negativos;
g) posição ocupada (linha-coluna) por um elemento cujo valor será lido pelo programa.

3. Dada uma matriz M (6x6), preenchê-la com valores gerados aleatoriamente e realizar as
seguintes ações:
a) Construir um vetor com os elementos das linhas pares da matriz M (linhas 2, 4 e 6).
b) Construir um outro vetor com os elementos da diagonal principal somados com os
elementos da mesma linha, contidos na diagonal secundária.
c) Mostrar a matriz e os dois vetores.

4. Uma matriz esparsa é uma matriz que tem mais de 2/3 de seus elementos iguais a zero. Fazer
um programa que leia uma matriz esparsa M(10,10) e construa uma matriz condensada, de
apenas três colunas, com os elementos não nulos de M, de forma que:
a) a primeira coluna contém o valor não nulo de M;
b) a segunda coluna contém a linha de M onde foi encontrado este valor; e
c) a terceira coluna contém a coluna de M onde foi encontrado este valor.
Imprimir as duas matrizes.

5. Na Teoria de Sistemas define-se como elemento minimax de uma matriz o menor elemento da
linha em que se encontra o maior elemento da matriz. Pretende-se preencher uma matriz
M(10,10) com valores gerados aleatoriamente e determinar o seu elemento minimax.

6. Determinar o maior e o menor dos números positivos introduzidos pelo utilizador; termina
quando o utilizador indicar um número não positivo (≤ 0).

Carlos Barrico 1
Folha Prática - Implementacao de Algoritmos Computação Científica

7. Calcular sucessivamente a raiz quadrada de números introduzidos pelo utilizador até que este
indique o número zero. Utilize a função sqrt(x) para calcular a raiz quadrada e input(‘x = ?’)
para ler os valores.

8. Uma Cooperativa Agricola recolheu dados relativos à temperatura mínima diária de 10 locais de
uma região ao longo do mês de agosto de 2009. Depois de inserir estes valores (números reais),
os quais estão compreendidos entre –10 e 40, realizar as seguintes ações:
a) Mostrar para cada um dos 10 locais: as temperaturas fornecidas, a temperatura mínima, a
temperatura máxima e a temperatura média das temperaturas do local.
b) Mostrar também as temperaturas mínima geral, a máxima geral e a média geral da região.

9. Construa um vetor com valores gerados aleatoriamente, some os seus elementos e conte os
positivos.

10. Dado um vetor, substitua cada um dos elementos pela média do próprio e dos 2 vizinhos
adjacentes. Ex: [2 4 1 7 4 4] resulta em [3 2.3 4 4 5 4].

11. Usar a função anterior para gerar N valores no intervalo [0,1], N a especificar pelo utilizador.
De seguida, determinar quantos valores aleatórios ocorreram em cada um de k intervalos [1/k,
…, 1], k a especificar pelo utilizador. Determinar a média e desvio padrão dos valores gerados.

12. Construa uma função que, dada uma sequência com N números, determine quantos e quais os
elementos que são maiores do que a soma dos seus vizinhos. Ex: Y = (7 3 5 1 4 12 5 8);
Resposta: 4 elementos, 1º, 3º, 6º, 8º.

13. Diz-se que uma matriz tem um mínimo local no elemento (i, j) se este for inferior face aos seus
8 vizinhos. Construa uma função que receba uma matriz como parâmetro e determine todos os
seus pontos mínimos.

14. Determinar o maior elemento em cada linha de uma matriz A de dimensão m x n.

15. Calcular o vetor X (nx1) resultante do produto de uma matriz A (nxm) por um vetor Y (mx1).

16. Implementar o método das divisões sucessivas para a conversão de qualquer número inteiro da
base 10 para a base 2.

17. Implementar o algoritmo de Horner para conversão de números inteiros da base 2 para a base
decimal.

18. Implementar o algoritmo de Horner para conversão de números fracionários da base 2 para a
base decimal.

19. Calcular o valor de , com uma dada precisão, utilizando a série

π = 4× 1− ( 1 1 1 1
+ − + − ...
3 5 7 9 )
2 Carlos Barrico
Computação Científica Folha Prática – Programação em Matlab

20. Calcular o traço de uma matriz A (soma dos elementos da sua diagonal principal):
n
traço (A) = ∑ aii.
i=1

21. Calcular ex usando a expressão seguinte (desenvolver até ao termo com valor absoluto inferior
ou igual a d):

x2 x3 xn
ex = 1 + x + + + ... + + ...
2! 3! n!
Teste para o valor de e-100 = 3.7200759760208359630 ×10-44 (com d = 10-50).
Use a expressão 1/ex e teste para o mesmo valor.

22. Calcular o produto externo entre os vetores X e Y de tamanhos n e m, respetivamente, que


resulta matriz M = XYT de dimensão (n x m), tal que

[ ]
x 1 y 1 ... x 1 y m

{
mij = x i y i = i=1,2, ... , n ou M =
j=1,2, ... ,m
... ... ...
x n y 1 ... x n y m

23. Calcular a norma matricial de soa máxima de coluna, que é dada pela expressão
n
∥A∥1 = max ∑ ∣aij ∣
1≤j≤n i=1

24. Calcular a norma de Frobenius, que é definida pela seguinte expressão:


n n
∥A∥F = ∑ ∑ ∣aij ∣2
i=1 j=1

25. Calcular o produto de uma matriz A de dimensão (nxp) por outra matriz B de dimensão (pxm),
que resulta na matriz C = AB (nxm), tal que
p
c ij = ∑ aik bkj
k=1
{
i=1,2, ..., n
j=1,2 ,... , m

Carlos Barrico 3

Você também pode gostar