Beruflich Dokumente
Kultur Dokumente
ACE 2008/2009
Parte II
T
opicos:
N
umeros aleatorios e estatstica elementar
Graficos 3D
Ciclos e instrucoes decisorias
Funcoes
Aproximacao polinomial
Importacao e manipulacao de dados
N
umeros aleat
orios e estatstica elementar
Exerccio 2. Gere um vector x, com 105 elementos aleatorios que seguem uma distribuicao normal com media igual a 4 e desvio padrao igual a 2. Apresente o histograma
do vector x com 20 classes. Calcule ainda a fraccao de elementos no intervalo [2, 6].
1 NUMEROS
ALEATORIOS
E ESTATISTICA ELEMENTAR
Figura 1.1: Ex. 3: Estimativa da area limitada pela exponencial decrescente 5et/2 no
intervalo t [0, 5]
Figura 1.2: Ex. 4: Estimativa da area limitada pela curva |sinx/x| no intervalo x
[0, 3]
1 NUMEROS
ALEATORIOS
E ESTATISTICA ELEMENTAR
1 NUMEROS
ALEATORIOS
E ESTATISTICA ELEMENTAR
Exerccio 10. Recorde a instrucao fix. A partir dessa instrucao gere uma matriz C (5
3), de no s inteiros aleatorios equiprovaveis no intervalo [4, 4]. Admita que cada coluna
dessa matriz C constitui o vector dos coeficientes dum polinomio do 4o grau. Calcule cada
um dos polinomios definidos por 200 pontos no intervalo x [4, 4]. Crie uma matriz M ,
em que cada coluna contem os valores de cada polinomio. Sem recorrer a hold on elabore
um grafico onde se devem sobrepor as 3 curvas polinomiais. Documente devidamente o
grafico.
2 GRAFICOS
3D
Gr
aficos 3D
p
x2 + y 2 )
Calcule a funcao numa grelha de 51 51 pontos e elabore um grafico de superfcie utilizando um sombreado interpolado. Acrescente as legendas necessarias para aumentar a
legibilidade do grafico.
3 CICLOS E INSTRUC
OES
DECISORIAS
x = sincos
y = sinsin
z = cos
Construa, um grafico de superfcie da funcao considerando [0, 2] com 200 pontos
e [0, ] com 100 pontos. Acrescente os rotulos aos eixos e garanta a razao 1:1:1 no
aspecto dos eixos.
5
sin sin
2
sin sin
2
Para uma grelha de 201 201 valores definidos no domnio 2 , 2 [0, 2].
Calcule Z(, ) e faca o grafico de superfcie da funcao Z mas relativamente a`s coordenadas
x = cos e y = sin. Acrescente os rotulos aos eixos e garanta a razao 1:1:1 no aspecto
dos eixos. Aplique sombreado interpolado.
z4 1
Ciclos e instruco
es decis
orias
20
P
un quando
n=1
un = (1/2)n (1/n)(1/2)
Compare com a solucao vectorizada.
Q100
n=1
exp(un ) quando
3 CICLOS E INSTRUC
OES
DECISORIAS
un =
(1)n+1
n
Exerccio 21. Recorrendo a um ciclo for comece por gerar a sequencia un ate n = 10000
com
(1
se n mpar
4
un = n
1 n
1+ n
se n par
p P
De seguida, com um novo ciclo for calclule S = 4 90 un para n mpar. Termine o
exerccio calculando (u10000 )i S em que i e a unidade imaginaria.
Exerccio 22. Gere uma sequencia aleatoria x com 200 n
umeros equiprovaveis no intervalo ]0, 10[.
1. Use um ciclo for para calcular a media de x.
2. Use um ciclo for para calcular quantos valores estao acima da media.
Exerccio 25. Crie uma matriz M contendo os valores dum quadrado magico de dimensao
10.
1. Use um ciclo for para calcular o traco da matriz, isto e a soma dos elementos da
diagonal principal. Compare com uma solucao vectorizada.
2. Modifique a solucao anterior de modo a obter tambem a soma dos elementos da
antidiagonal.
4 FUNC
OES
1
1
1
1 1
4 3 2 1 0
6
3
1
0
0
A=
4 1
0
0 0
1
0
0
0 0
Recorra a um ciclo while para determinar o menor inteiro k tal que Ak = I. Sugere-se a
instrucao any para validacao da condicao de execucao do ciclo.
Exerccio 27. Use ciclos for encadeados para gerar uma matriz de Hilbert H de dimensao
10. Recorde que o elemento hi j duma matriz de Hilbert e dado por
hi j =
1
i+j1
Compare com solucoes vectorizadas que podem ser obtidas com base nas funcoes meshgrid() ou repmat().
Exerccio 28. Gere um vector x com 101 pontos igualmente espacados no intervalo x
[10, 10]. Use ciclos for encadeados para calcular a funcao f (x) para todos os valores de
x e N = 100.
N
Y
x2
f (x) =
1 2
n
n=1
Resolva o mesmo problema usando uma estrategia vectorizada com base na funcao meshgrid(). Elabore os graficos sobrepostos de f (x) para N = 50, 75, 100. Legende devidamente o grafico.
Func
oes
Exerccio 29. Escreva uma funcao designada mystats de acordo com as seguintes especificacoes
4 FUNC
OES
% variance of A
...
...
stats = [...]
Teste a funcao com uma matriz aleatoria gaussiana G(30 10) de media 10 e desvio
padrao 2.
Exerccio 30. Escreva uma funcao designada nmultk que tem como resultado um vector
contendo ate n m
ultiplos do inteiro k que possam existir numa matriz de inteiros. Defina
a funcao de acordo com o prototipo seguinte
function nmu = nmultk(A,n,k)
% This function computes extracts from A the first n multiples of
% integer k
% A - input matrix or vector
% n - the number of multiples
% k - the integer to be tested
...
...
Teste a funcao com um vector de inteiros equiprovaveis no intervalo [1, 100] e para n = 10,
k = 3, 5, 7.
Exerccio 31. Um n
umero inteiro diz-se perfeito se igular a soma dos seus divisores
(excluindo o proprio). Escreva uma funcao isperfect que verifique se um dado inteiro
k > 1 e perfeito. Recorra `a funcao rem() para efectuar testes de divisibilidade. Defina a
funcao de acordo com o seguinte prototipo
function p = isperfect(k)
% This function verifies if the integer k is a perfect number
% k - the integer to be tested
% p = 1 if k is perfect p = 0 otherwise
...
...
Teste a funcao com k = 6, 28, 100, 496, 1200, 8128
Exerccio 32. Escreva uma funcao ismagic que verifique se uma dada matriz quadrada
e uma quadrado magico. Desenvolva a funcao de acordo com as seguintes orientacoes
function m = ismagic(M)
% This function verifies if the square matrix M is a magic square
4 FUNC
OES
%
%
%
%
10
ie. the sum along colunms must be constant and equal to the sum along
lines and main diagonal
M - is the input matrix
m = 1 if M is a magic square p = 0 otherwise
% Check if M is square
...
% Compute sums along colunms,lines and diagonal
...
% Check the magic square criteria
Teste a funcao com varias matrizes em que algumas devem ser geradas com a funcao
magic().
Exerccio 33. Escreva uma funcao dsums que calcule as somas da diagonal e da antidiagonal duma matriz quadrada. Baseie-se no seguinte protoptipo
function [smd, sad] = dsums(A)
% This function computes the sums of the main and the antidiagonal
% of a square matrix
% A - input square matrix
% smd - sum of the main diagonal
% sad - sum of the antidiagonal
%Check if A is square
...
%Compute main diagonal sum
...
%Compute antidiagonal sum
...
Exerccio 34. Escreva uma funcao clsums que calcula as somas ao longo da linha e
u
coluna a que um dado elemento duma matriz pertence. E
lil recorrer `a funcao find().
Note que apenas devem ser calculadas as somas para a primeira ocorrencia do elemento
k. Desenvolva a funcao de acordo com as seguintes orientacoes
function [Cs,Ls] = clsums(A,k)
%This function computes the sum along line i and the along column j
% in matrix A for the first occurrence of k = Aij if it exists
% A - is the input matrix
% k - is the entry
% Cs - is the column sum
% Ls - is the line sum
% Both Cs and Ls must be empty if k is not in A
% Check if k is somewhere in A. Use find() to retrieve the line and column
4 FUNC
OES
11
% indexes
...
% Compute sums along line i and column j
...
Teste a funcao com varias matrizes confirmando quer os casos em que k existe em A quer
o contrario.
Exerccio 35. Complete a funcao seguinte. Trata-se da funcao getsubm que a partir
duma matriz de entrada A, extrai uma submatrix G(w w) centrada no elemento (i, j).
A dimensao w deve ser mpar e deve ser assegurado que os ndices da submatriz G sao
tambem ndices validos da matriz A. funcao calcula ainda os valores medio, maximo e
mnimo da submatriz G.
function [G,av,M,m] = getsubm(A,i,j,w)
% This function extracts a (w by W) submatrix of matrix A.
% The function also computes the mean, maximum and minimum values
% of the submatrix.
% A
- the input matrix
% i,j - coordinates of the center of the submatrix
% w
- width of the submatrix. w must be odd
% G
- the submatrix
% av - mean of G
% M
- max. of G
% m
- min. of G
% Check if w is odd
if rem(w,2)~= 1
error(submatrix size must be odd...)
end
% Check if submatrix is inside A
...
G = A(...,...);
av = ...;
M = ...;
m = ...;
Teste a funcao com, por exemplo, um quadrado magico de dimensao 10. Extraia submatrizes com varias dimensoes e verifique casos em que e impossvel definir a submatriz
uma vez que os respectivos ndices nao sao compatveis com as dimensoes da matriz de
entrada.
4 FUNC
OES
12
= an cos(bn x)
n=0
Escreva uma funcao weierstrass que calcule esta funcao para um dado intervalo x, e para
os parametros a, b, N em que N e o no de termos para calcular a serie. Escreva a funcao
de acordo com o prototipo abaixo. Note que deve tambem incluir uma subfuncao para
verificar a validade dos parametros a e b.
function f = weierstrass(x,a,b,N)
% Computes the weierstrass function for a domain x
% x
- input vector defining the domian of f
% a,b - function parameters: ab > 1+3pi/2
% N
- number of terms
% Check if a,b are legal parameters
% Use the subfunction "check_ab"
...
% Use a for cycle to perform the sum
...
function valid = check_ab(a,b)
if rem(b,2)~=1
disp(b must an odd integer...)
valid = 0;
elseif (a <= 0) | (a >= 1)
disp(0 < a < 1 required ...)
valid = 0;
elseif (a*b) <= (1 + 3*pi/2)
disp(a*b > 1 + 3*pi/2 ... required...)
valid = 0
else
valid = 1
end
Teste a funcao com varios parametros a, b, para x [0.5, 0.5], com 500 pontos e N =
100. Verifique se para a = 0.7 e b = 9 obtem o grafico da figura
4 FUNC
OES
13
Exerccio 37. Escreva uma funcao movavg que implemente um filtro de media movel
sobre um determinado conjunto deo dados. Isto se tivermos um vector de dados f com
N elementos, a aplicacao dum filtro de media movel de largura k resulta num vector g tal
que
gn =
fnbk/2c + fn + fn+bk/2c
, n = bk/2c + 1, . . . , N bk/2c 1, g1 = f1 , gN = fN
k
Note que bk/2c e o mesmo que floor(k/2). Recorra a um ciclo for para calcular o vector
g e certifique-se a lagura k do filtro e sempre mpar. Sugere-se o seguinte prototipo
function g = movavg(f,k)
% This function implements a moving average filter of width k over the
% data vector f.
% f - input vector
% k - width of the moving average filter
% g - filtered version of f
% check if width is odd
...
% Compute g with a for cycle
...
4 FUNC
OES
14
Figura 4.2: Filtro de media movel de largura 7 aplicado a` funcao de Weierstrass obtida
no exerccio 36