Questão 1: designam-se por pontos de sela de uma matriz, os

Propaganda
Turma 1
Questão 1: designam-se por pontos de sela de uma matriz, os elementos dessa matriz
que são, simultaneamente, o maior elemento da linha e o menor da coluna, ou viceversa. Por exemplo, na matriz
1 2 3 4 5
10 9 8 10 11


6 7 8 7 7


1 1 1 1 1
são pontos sela o 1 (toda a 4ª linha) e o 8 (segunda linha, terceira coluna). Note que
apenas nos interessa o valor 1 e o valor 8, não a sua localização na matriz.
Escreva um programa em Matlab que leia um array A e determine os pontos sela.
Resposta 1:
A=input('matriz= ');
max_linhas=max(A,[],2);
min_colunas=min(A,[],1);
intersect(max_linhas,min_colunas)
min_linhas=min(A,[],2);
max_colunas=max(A,[],1);
intersect(min_linhas,max_colunas)
Questão 2: As funções trigonométricas Seno e Coseno podem ser calculadas por
intermédio das seguintes séries de potências:

x3 x5 x7
x 2i 1
i
sin( x )  x 


    ( 1)
3! 5! 7!
(2i  1)!
i 0
2i

x2 x4 x6
i x
cos( x )  1 


    ( 1)
2! 4! 6!
(2i )!
i 0
Escreva um programa em Matlab que leia um valor de x e calcule uma aproximação a
sin( x ) e a cos( x) utilizando os 10 primeiros termos das séries acima.
Como verificação, o programa deve imprimir o valor que obtém para
sin 2 ( x)  cos2 ( x)
Resposta 2:
x=input('x= ');
N=10;
i=0:N-1;
fact=cumprod(1:2*N-1);
seno=sum( (-1).^i .* x.^(2*i+1)
coseno=sum( (-1).^i .* x.^(2*i)
disp(seno^2+coseno^2)
./
./
fact(1:2:2*N-1) );
[1 fact(2:2:2*N-1)]
);
nota: o exercício 4.11 da 5ª aula é semelhante a este. A sua resolução está
disponibilizada na 6ª aula e estava disponível para consulta durante o mini-teste.
Questão 3: Uma série de medidas ao longo do tempo pode ser "suavizada" com o
método das médias móveis. Por exemplo, medidas diárias do caudal de um rio deram:
[1.35 2.43 3.27 8.15 6.21 7.49 6.31 12.22 61.17 13.25]
Como podem haver particularidades num ou noutro dia (descargas de barragens, etc.)
que confundem a avaliação da evolução global, pode ser interessante substituir cada
valor pela média com os seus vizinhos imediatos (excepto os valores extremos)
[1.35 2.35 4.62 5.88 7.28 6.67 8.67 26.57 28.88 13.25]
Se xi for um elemento da série original (com N elementos) e yi a série "suavizada", a
relação será
 yi  ( xi 1  xi  xi 1 ) / 3 1  i  N

yi  xi
i  1 i  N

Escreva um programa em Matlab que leia um array de medidas e determine e escreva
o array obtido aplicando as médias móveis.
Resposta 3:
x=input('serie=');
y=[x(1) (x(1:end-2)+x(2:end-1)+x(3:end))/3 x(end)]
Questão 4: A Páscoa (festa móvel do cristianismo) é celebrada no primeiro domingo
após a primeira lua cheia a partir de 21 de Março.
Um algoritmo popular para determinar essa data no ano Y é:
GMOD(Y,19)+1
(número de ouro)
CINT(Y/100)+1
(século)
XINT(3C/4)-12
(1ª correcção)
ZINT((8C+5)/25)-5
(2ª correcção)
DINT(5Y/4)-X-10
(domingo)
EMOD(11G+20+Z-X,30)
Se E=25 e G>11, ou se E=24, então EE+1
(a epacta da lua cheia)
N44-E
Se N<21 então NN+30
(lua cheia)
NN+7-MOD(D+N,7)
(avançar para domingo)
Se N>31 a data é (N-31) de Abril; senão a data é N de Março
Escreva um programa em Matlab que leia o ano e escreva a data do domingo de
Páscoa.
Resposta 4:
Y=input('ano? ');
Gmod(Y,19)+1;
C=fix(Y/100)+1;
X=fix(3*C/4)-12;
Z=fix((8*C+5)/25)-5;
D=fix(5*Y/4)-X-10;
E=mod(11*G+20+Z-X,30);
if (E==25 & G>11) | E==24 , EE+1; end
N=44-E;
if N<21 , NN+30; end
N=N+7-mod(D+N,7);
if N>31
disp(N-31),disp(' de Abril');
else
disp(N),disp(' de Março');
end
Download