Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

2024-2025 
 
Problemas para as aulas práticas de ACE 
Folha n.º 0 
 
Garantir que os estudantes têm acesso ao Matlab – licença Campus UA 
 - versão local: instalada no portátil pessoal ou num PC do laboratório 
 - versão online: https://matlab.mathworks.com 
 - apresentar a Matlab Drive aos estudantes 
Apresentar a OneDrive aos estudantes, acedendo usando a conta da UA 
Explorar o sistema de ajuda do Matlab (help local e online) 
Explorar as demos do Matlab 
Explorar o Matlab com Calculadora (versão local e versão online) 
 
 Calcular usando a janela de comandos 
 2 x 3 
 √6561 
 𝑒𝜋 
 sen(2𝜋) 
 
 Calcular usando um script 
 tan (𝑒12) 
 √21 × 10123 
 𝑐𝑜𝑠 (𝑒𝜋) 
 𝑎𝑟𝑐𝑡𝑎𝑛 (1) 
 arcsen(1) 
 
https://matlab.mathworks.com/
 2024-2025 
Folha n.º 1 
● Vetores linha 
● Operadores : 
● Função linspace( ) 
● Overloading (operadores e funções) / Múltiplos interfaces 
● Matrizes 
● Indexação linha-coluna e indexação sequencial 
 
Elabore um “script” Matlab que resolva os seguintes problemas: 
1. Gere um vetor linha de números pares com início em 4 e a terminar no número 100. 
 
2. Gere um vetor linha de números inteiros, contendo uma sequência numérica 
decrescente com início em 5 e a terminar em -5. 
 
3. Gere um vetor linha contendo uma sequência a começar em π e a acabar em −π com 
um passo de −π/15. 
 
4. Gere uma sequência numérica com 10 elementos igualmente espaçados pertencentes 
ao intervalo [0, 1]. 
 
5. Gere uma sequência numérica com 100 elementos igualmente espaçados 
uniformemente distribuídos pertencentes ao intervalo [0, 1]. 
 
6. Gere um vetor coluna, x, com os múltiplos de 5 entre 10 e 70. A partir de x, crie um 
vetor y com os múltiplos de 10 entre 10 e 70. 
 
7. Gere um vetor linha, x, com os 10 primeiros múltiplos de 3. A partir de x crie uma 
matriz, A, com 6 linhas: as 3 primeiras iguais a x e as 3 seguintes contendo x ordenado 
de forma decrescente. 
 
8. Crie um vetor s com os primeiros 15 inteiros pares. De seguida crie uma matriz M com 
colunas de acordo com as seguintes especificações: 1ª coluna deve ser igual a s, 2ª coluna 
deve conter os elementos de s por ordem decrescente e a 3ª coluna deverá conter a 
diferença das duas primeiras. 
 
9. Crie uma matriz M, quadrada 10x10, usando o comando magic(10). Dessa matriz 
extraia o elemento que está na linha 2 e coluna 3, e o elemento que está na linha 10 e 
coluna 10. 
 
 2024-2025 
10. Crie uma matriz M, quadrada 5x5, usando o comando magic(5). Dessa matriz extraia 
todos os elementos da segunda linha, e todos os elementos da segunda coluna. 
 
Problemas complementares 
11. O Matlab pode ser usado como uma simples calculadora recorrendo aos operadores 
+, -, *, / e ^ e ainda a um conjunto muito vasto de funções. 
 
a) Execute os seguintes cálculos usando operadores aritméticos (tal como numa 
calculadora): 
 
i.5+6 
ii.3+4*2 
iii.4/2+(5+3)^2 
iv.pi (apresenta o valor da constante 𝜋) 
 
b) Execute os seguintes cálculos que envolvem funções do Matlab aos quais deve atribuir 
respetivamente os nomes x, y, z aos resultados obtidos. 
 
i. sqrt(4), calcular a raiz quadrada (square root) de 4 e atribuir o nome x ao resultado 
ii. x + sin (
𝜋
4
), calcular o resultado da soma do valor anterior, x, com o seno de 
𝜋
4
 e 
atribuir ao resultado o nome de y 
iii. (𝑥 ∗ 𝑦)/ (1 + tan (
𝜋
4
)) , efetuar o cálculo assinalado e atribuir-lhe o nome z 
 
12. Classes de variáveis: introdução 
Qualquer variável do Matlab tem uma classe (double, string, ...) a qual 
é identificada por um pictograma (do lado esquerdo do nome) e um texto a indicar a classe 
na lista de variáveis do WorkSpace (WS). O MatLab tem associado a cada classe um 
conjunto de recursos para manipular as variáveis da classe. 
a) Observe a janela do WS, após conclusão do exercício anterior, e identifique a classe a 
que pertencem as variáveis. 
 
b) Converta os valores 120.7, 580 e 60025.9 para variáveis da classe int8 e int16, usando 
para o 1º caso as instruções int8(120.7) e int16(120.7). Comente os resultados. 
 
c) Crie a variável teste usando a seguinte instrução: teste=5>6 e verifique que pertence à 
classe boolean a qual só assume dois valores possíveis true (verdadeiro) ou false (falso). 
 
d) Verifique se é verdadeiro que 5 é maior que 4 e menor que 3 usando a instrução 
5>4 & 54 | 5𝑆 = ∑ 𝑢𝑛
100
𝑛=1 e 𝑃 = ∏ 𝑢𝑛
100
𝑛=1 . 
 
Problemas complementares 
7. Utilização do operador “:” e indexação 
O Matlab permite a criação de sequências aritméticas de uma forma simplificada (evita a 
introdução manual) usando o operador “:” ou a instrução linspace(). Em particular 
sequências de números inteiros positivos revelam-se muito úteis para indexar matrizes. 
a) Crie um vetor int contendo a sequência de todos os números inteiros positivos até 24. 
b) Crie um vetor pares contendo todos os números pares positivos até 24. 
c) Crie o vetor val de 24 números inteiros positivos aleatórios entre 1 e 50 utilizando a 
seguinte instrução que usa a função randi do Matlab: val=randi([1 50],24,1). 
d) Crie o vetor val2 que deverá conter os valores nos índices pares da matriz val (use o 
vetor pares para indexar). Verifique o resultado obtido. 
e) Crie o vetor Val5 nos índices 5, 10, 15 e 20 usando apenas uma instrução. 
8. Indexação (continuação) 
a) A função magic(N), com 𝑁 um número inteiro positivo, cria uma matriz de dimensão 
NxN em que a soma dos elementos por coluna, por linha e nas diagonais é uma constante. 
Gere a matriz Magica com a instrução Magica=magic(5). 
b) Copie os valores da 2ª linha da matriz Magica para uma matriz Linha2. 
c) Copie os valores das linhas 1 a 3 para uma matriz Linha3. 
d) Repita as duas alíneas anteriores, mas agora referindo as colunas (em vez de linhas) 
e) Crie a matriz Meio com os valores da matriz Magica entre a 2ª e a 4ª linha e a 2ª e a 
4ª coluna. 
f) Crie a matriz Canto com os valores compreendidos entre a 3ª e a última linha e a 3ª e 
a última coluna. Nota: a sua solução deve ser independente do número de linhas e colunas 
da matriz. 
g) Crie um vetor com todos valores da matriz Magica. 
 
 2024-2025 
9. Algumas matrizes particulares criadas automaticamente pelo MatLab 
O Matlab pode criar automaticamente matrizes com determinadas caraterísticas as quais 
são úteis para muitas tarefas de análise de dados ou simulação de sistemas em várias áreas 
da ciência. 
a) Crie a matriz Uns de dimensão 5x5 com os valores todos unitários usando a função 
ones(). 
b) Crie a matriz Olho de dimensão 5x5 contendo na diagonal valores unitários e os 
restantes nulos usando a função eye(). 
c) Combine as duas matrizes anteriores de forma a obter uma matriz com os elementos 
todos unitários exceto os da diagonal que deverão conter 7. 
 
 
 2024-2025 
Folha n.º 3 
● Indexação lógica 
● As função rem( ), round( ) 
● Operadores lógicos == e & 
● Operador multiplicação elemento a elemento .* 
● Gráficos simples e funções associadas: plot( ), axis( ), xlabel( ), ylabel( ), title( ), grid 
on, hold on, hold off 
● Polinómios e funções associadas: roots( ), poly(), polyval( ) 
 
Elabore um “script” Matlab que resolva os seguintes problemas: 
1. A indexação lógica permite endereçar os elementos da matriz alvo com base numa 
matriz de valores lógicos (true ou false) que resulta de uma condição lógica imposta. A 
obtenção dos índices dos elementos que satisfazem a condição lógica, usando a função 
find(), é também frequentemente usada. 
a) Cria a matriz A = magic(5). 
b) Obtenha uma matriz lógica cond que permita indexar os valores superiores a 15 na 
matriz A. Compare as duas matrizes elemento a elemento. 
c) Construa um vetor com todos os elementos superiores a 15 da matriz A. 
d) Construa um vetor com todos os elementos maiores que 10 e menores que 15 da matriz 
A. 
e) Obtenha, usando a função find(), os índices dos valores menores que 5 de A, e usando 
indexação sequencial extraia esses valores da matriz A. 
2. Gere de forma eficiente uma matriz A (4×4) com os 16 primeiros inteiros pares. 
Extraia dessa matriz e de forma eficiente um vector v com os números múltiplos de 4. 
3. Comece por calcular os parâmetros 𝜙 e 𝜓 de tal forma que 𝜙 = (1 + √5)/2 e 𝜓 =
1 − 𝜙. 
a) Para n=1,…20 calcule a sequência de Fibonacci dada pelo arredondamento às 
unidades de, 
𝐹𝑛 =
𝜙𝑛−𝜓𝑛
√5
 
b) Comprove numericamente que a soma dos 10 últimos termos é múltipla de 11. 
c) Comprove numericamente que, ∑ 𝐹𝑛
10
𝑛=1 = 𝐹12 − 1 
 
4. Suponha que pretendia visualizar o gráfico da função y 
 
 𝑦 = 𝑙𝑛(|(𝑥 − 1)(𝑥 − 2)(𝑥 − 3)|) 
quando a variável x pertence ao intervalo [-5,5]. 
 2024-2025 
a) Gere um vetor x com 200 pontos distribuídos uniformemente no intervalo indicado. 
b) Faça o gráfico da função utilizando como argumento o vetor da alínea anterior. A linha 
deve ser a tracejado preto, o eixo das abcissas deve ter a gama [-5 … 5] e o das ordenada 
de [-10 … 10], e o gráfico deverá apresentar uma grelha. Documente o gráfico 
convenientemente. 
c) Utilize a função ginput para recolher as coordenadas x e y de 3 pontos à sua escolha. 
5. Suponha que pretendia visualizar o gráfico do seguinte polinómio 
 𝑝(𝑥) = 𝑥3 − 𝑥 
a) Utilizando o Matlab calcule as raízes deste polinómio. 
b) Construa um gráfico do polinómio 𝑝(𝑥) utilizando como argumento um vetor x com 
200 elementos pertencentes ao intervalo de -2 a 2. A linha deve ser a cheio e de cor 
vermelha, os eixos das abcissas e das ordenadas devem estar compreendidos de -2 a 2. 
Adicione ao gráfico uma grelha com o objetivo de visualizar melhor os zeros da função. 
c) Sobreponha no gráfico anterior um círculo a azul, a sinalizar as raízes do polinómio. 
 
6. . Representação de polinómios, cálculo de polinómios e das respetivas raízes 
a) Crie o vetor p que representa o seguinte polinómio: 
 𝑝(𝑥) = 𝑥3 − 2𝑥 + 1 
b) Represente graficamente a função para o domínio x ∈ [-2,2]. Dê nomes aos eixos, 
coloque uma grelha e um título no gráfico. 
c) Calcule o vetor raízes contendo as raízes do polinómio p(x) e represente no gráfico 
anterior, usando o marcador “square” a vermelho, os valores do polinómio obtidos para 
os valores das raízes. 
Problemas complementares 
 
7. Concatenação de vetores e matrizes 
É possível concatenar (juntar) vetores e matrizes desde que as dimensões sejam 
compatíveis ou “repetir” uma mesma vetor/matriz para formar uma vetor/matriz de 
maiores dimensões. 
a) Crie os seguintes vetores a e b 
𝑎 = [1, 2] , 𝑏 = [3,4,5] 
b) Crie, a partir de a e b, o vetor c 
𝑐 = [1, 2,3, 4,5] 
c) Crie a matriz D a partir de c 
𝐷 = |
1 2 3 4 5
1 2 3 4 5
| 
d) Crie a matriz E a partir de D usando ainda a função ones() e zeros() 
 2024-2025 
𝐸 =
[
 
 
 
 
1 2 3 4 5
1 2 3 4 5
1 1 1 0 0
1 1 1 0 0
1 1 1 0 0]
 
 
 
 
 
e) Crie, com a função repmat(), a matriz F que consiste na repetição da matriz E duas 
vezes em coluna e três vezes em linha. 
 
8. Operações com matrizes 
a) Crie uma matriz A de dimensão 4x4 com todos os elementos unitários. 
b) Usando a matriz A e uma operação de soma com uma constante crie a matriz B cujos 
elementos tenham todos o valor 4. Verifique o resultado. 
c) Obtenha a matriz D resultante da soma da matriz mágica C de dimensão 4x4 (use a 
função magic()) e some-a à matriz A multiplicada por 2. Verifique o resultado. 
d) Divida, numa operação elemento a elemento, a matriz A pela matriz B. Verifique o 
resultado. 
e) Multiplique, numa operação elemento a elemento, a matriz B pela matriz D. 
 
9. Crie um vetor Fase com 91 valores linearmente espaçados entre 0 e 2π. Calcule agora 
o vetor Seno com o seno do vetor da fase. 
 Efetue o gráfico do Seno em função da Fase usando uma linha contínua de cor azul. 
 Ative a grelha. 
 Dê ao eixo dos xx o nome “x (rad)” e ao eixo dos yy “y=sin(x)”. 
 Adicione uma legenda: “sin(x)”. 
 Dê um título ao gráfico: “Gráfico do Seno”. 
 Adicione à figura o gráfico da tg(x) – não esqueça de executar antes o hold on para 
manter o 1º gráfico – com uma linha de cor vermelha dashed line e usando o “.” como 
Marker. De seguida faça: 
 Um ajuste à gama de valores para os eixos dos xx e yy: o eixo dos xx deve ser ajustado 
para a gama [0 2π] e o dos yy para a gama [- 3 3]. 
 Renove agora a legenda para mencionaros dois gráficos. 
 Guardar o gráfico num ficheiro para inserir num documento é uma necessidade 
frequente. Execute a instrução >> saveas(gcf,'MinhaFigura.emf') que obtém a figura ativa 
(get current figure) e guarda-a com o nome MinhaFigura no formato emf. Nota: 
Recomenda-se a consulta da função saveas() para guardar a figura noutros formatos. 
 
10. O Matlab pode efetuar vários gráficos numa só instrução plot(). Basta Y ser uma 
matriz de dimensão compatível com x. 
 Feche todas as figuras existentes e crie o vetor coluna Offset=[0; 2π/3;4π/3] e obtenha 
a matriz Tres_Fases que será a soma de Offset com o vetor Fase. Examine as dimensões 
da matriz obtida. 
 Efetue o gráfico do seno de Tres_Fases em função de Fase. Dê nomes aos eixos, ative 
a grelha e crie uma legenda. 
 
 2024-2025 
Folha n.º 4 
● Gráficos e funções associadas: plot(), subplot(), axis( ), xlabel( ), ylabel( ), title( ), grid 
on, hold on, hold off, legend() 
● Gráficos de vetores complexos 
● Condições lógicas, indexação lógica 
● A função abs() 
 
Elabore um “script” Matlab que resolva os seguintes problemas: 
1. Considere a seguinte função, 
𝑓(𝑥) = 𝑠𝑖𝑛( 5𝑥)𝑒√𝑥 , x ∈ [0,3𝜋] 
a) Calcule 𝑓(𝑥) considerando 1000 pontos para 𝑥 no intervalo [0, 3𝜋]. 
b) Elabore o gráfico de 𝑓(𝑥) com uma linha azul. Sobreponha no mesmo gráfico, com 
linha preta, a função 𝑔(𝑥) = e√𝑥 para os mesmos valores de x. Legende o gráfico 
convenientemente. 
c) Identifique no gráfico anterior com "*" vermelhos os pontos em que. |𝑓 − 𝑔| 4. 
 
 2024-2025 
Folha n.º 5 
● Gráficos com escalas logarítmicas 
● Gráficos com dois eixos das ordenadas, a propriedade yyaxis 
● Importação de dados, a função load() 
 
1. Considere a função 
 𝑓(𝑥) = | 
𝑠𝑖𝑛(𝑥)
𝑥
| 
a) Trace o gráfico da função para x a pertencer ao intervalo [0, 100] com 1000 pontos. 
Veja qual o valor que a função assume para x= 0. Qual é o primeiro ponto representado 
no gráfico? 
b) De forma a ver com mais detalhe aquilo que acontece para valores reduzidos do eixo 
dos yy’ use uma escala logarítmica neste eixo. 
c) De forma a ver o que acontece com mais detalhe para reduzidos valores do eixo dos 
xx’ use uma escala logarítmica no eixo dos x. 
d) Pretende-se ver o comportamento da função próximo da origem, use espaçamento 
logaritmo para gerar amostras para x a partir de 10-6 até 100. 
d) Trace um gráfico com uma escala logarítmica em ambos os eixos 
 
2. Trace um gráfico da função 𝑓(𝑥) = 𝑠𝑖𝑛(𝑥)𝑠𝑖𝑛(2𝑥) no domínio 𝑥 ∈ [−2𝜋, 2𝜋] com 
200 pontos. Sobreponha na mesma figura o gráfico da função 𝑔(𝑥) = 𝑒𝑥𝑠𝑖𝑛(2𝑥). Use 
dois eixos verticais um à esquerda para a função f(x) e outro à direita para a função g(x). 
Coloque identificadores nos eixos das abscissas e ordenadas. Garanta que em ambos os 
eixos o y varia entre -2 e 2. 
 
3. Obtenha o polinómio 𝑝(𝑥) cujas raízes são 𝑟 = [0, 1, 2 ]. Trace um gráfico do 
polinómio onde sejam visíveis todos os zeros, aparecendo assinalados com a marca “o” 
vermelha. Coloque uma grelha no gráfico. 
 
4. O ficheiro populacao.mat contém dados de uma população entre 2010 e 2020. Trace 
um gráfico da evolução da população entre 2010 e 2020 usando como marca o asterisco 
‘*’ a preto e sem linha. Sobreponha no gráfico a reta, a vermelho, que melhor aproxima 
os dados. Coloque etiquetas nos eixos e uma legenda. 
 
 
 2024-2025 
Exercícios Complementares 
 
7. Em engenharia a resolução de alguns problemas complexos passam por usar o 
desenvolvimento de funções em séries de Taylor. 
Considere o desenvolvimento em série de potências da exponencial: 
𝑒𝑥 = ∑
𝑥𝑛
𝑛!
𝑁
𝑛=0 = 1 + 𝑥 +
𝑥2
2!
+
𝑥3
3!
+
𝑥4
4!
+.. 
onde ! significa fatorial (ex. 3!=3x2x1) que pode ser calculado pela função factorial(). 
Ainda importa afirmar que fatorial de 0 vale 1. 
a) Usando N=4 crie de forma automática e numa única instrução, um vetor com os 
coeficientes do polinómio pexp que permite aproximar a exponencial. 
b) Crie um vetor x de 100 pontos linearmente espaçados entre 𝑥𝑚𝑖𝑛=0 e 𝑥𝑚𝑎𝑥=2. 
c) Efetue um gráfico da exponencial e da respetiva aproximação polinomial calculada. 
Dê nomes aos eixos, ative a grelha e coloque a legenda. 
 
 2024-2025 
Folha n.º 6 
● A função load() e save(), para ficheiros *.txt e *.mat 
● Regressões polinomiais 
 
1. O ficheiro geoq.txt, em formato ASCII, contém dados reais obtidos a partir da análise 
química de 82 amostras de rochas recolhidas na região de Lamego (Portugal). Os dados 
estão organizados segundouma matriz 82×4, correspondendo cada linha a uma amostra 
efetuada. As duas primeiras colunas (1 e 2) apresentam as coordenadas (x,y) da 
localização das amostras no mapa, e as restantes colunas (3 e 4) têm os resultados das 
análises químicas relativas aos seguintes compostos químicos: 
%SiO2 óxido de silício (sílica) 
%CaO óxido de cálcio 
 
O ficheiro labels.mat contém textos de identificação das 4 colunas, incluindo as unidades 
físicas em que se expressam os valores de geoq.txt. Deverá usar os dados deste ficheiro 
para as legendas. 
 
 
Calcule os parâmetros a e b da respetiva equação y=ax+b, que melhor se ajusta aos pontos 
experimentais SiO2 vs. CaO, o que pode ser feito recorrendo a métodos numéricos 
(chamados “de regressão linear”) frequentemente implementados em ferramentas 
computacionais, como é o caso do Matlab. Faça um gráfico semelhante ao da figura a 
cima, onde os pontos a azul representam os dados do ficheiro geoq.txt e a reta vermelha 
a reta representada pela equação y = ax+b. 
2. O ficheiro dados.mat contém as coordenadas (x,y) de uma curva no plano cartesiano. 
Carregue os dados contidos no ficheiro para o MATLAB e observe as varáveis carregadas 
no workspace. 
 
a) Trace a curva (x,y) no plano cartesiano usando a cor vermelha. Determine os 
coeficientes de um polinómio de grau 3 que melhor aproxima o conjunto de pontos (x,y). 
Adicione ao gráfico anterior a curva do polinómio a azul. 
 2024-2025 
 
b) Numa outra figura, trace a curva (x,y) no plano cartesiano usando cor vermelha. 
Determine os coeficientes de um polinómio de grau 5 que melhor aproxima o conjunto 
de pontos (x,y). Adicione ao gráfico anterior a curva do polinómio a azul. 
 
c) Determine o erro entre a curva (x,y) e a sua aproximação polinomial (para os dois 
casos das alíneas a) e b) ) e acrescente no mesmo gráfico a curva do erro em função de x 
com cor verde. O erro corresponde à diferença entre o valor da aproximação e os dados. 
Legende convenientemente o gráfico e adicione uma grelha. Que pode concluir? 
3. O ficheiro rad.txt contém informação sobre a evolução dum determinado processo 
radioativo. A primeira coluna contém uma escala temporal em minutos e a segunda 
contém amostras de radioatividade medida em kilo-partículas/seg (kp/s). Carregue o 
ficheiro para o workspace do MATLAB e, a partir dos dados importados, obtenha os 
vetores, t e r, que armazenam, respetivamente, o conteúdo da primeira e da segunda 
colunas. Seguidamente, determine os coeficientes de um polinómio de grau 3 que melhor 
aproxima o conjunto de pontos (t, r). Sobreponha na mesma janela gráfica os pontos 
experimentais usando o marcador “o” a azul e a curva do polinómio a verde. Coloque 
etiquetas nos eixos e uma legenda. 
4. O Matlab calcula os coeficientes de um polinómio que melhor descreve a relação entre 
uma variável dependente e uma variável independente (regressão polinomial). 
a) Carregue o ficheiro TorqueRot.mat que contém a relação, obtida experimentalmente, 
do Torque (Nm) com a rotação Rot de um motor Diesel em milhares de rotações por 
minuto (rpm). 
b) Efetue o gráfico do torque em função da rotação usando o marcador “square” a preto 
e dê nomes aos eixos e ao título do gráfico usando os vetores de caracteres carregados do 
ficheiro. 
c) Efetue a regressão polinomial entre o torque e a rotação por: 
- Um polinómio de 2ª ordem: p2fit 
- Um polinómio de 6ª ordem: p6fit 
d) Crie de seguida um vetor x com 100 pontos igualmente espaçados entre os valores 
mínimo e máximo do vetor Rot. 
e) Sobreponha na figura anterior os gráficos dos dois polinómios com traçado dash-dot 
(“-.”) a azul e dotted line (“:”) a vermelho. Legende com os textos: ‘medidas', 'n=2' e 
'n=6'. 
 
 
 2024-2025 
 
Problemas complementares 
5. Numa figura com duas áreas gráficas dispostas verticalmente, faça na área gráfica 
superior um gráfico da função y=x3, no domínio -2 a 2 com 1 milhão de pontos. Na área 
gráfica inferior faça um gráfico da mesma função com ruído aditivo gaussiano com média 
nula e desvio padrão unitário, use a função randn(1,N). Grave os valores do x e da função 
sem e com ruído no ficheiro ‘sinal_ruido.mat’. Limpe todas as variáveis da área de 
trabalho, e importe para a área de trabalho a informação gravada no ficheiro 
‘sinal_ruido.mat’. Tente recuperar a função original da função com ruído para isso 
aproxime os dados por um polinómio de 1, 2, 3, 4 e 5 ordem, e veja como evolui o 
somatório do erro quadrático. Trace um gráfico do somatório do erro quadrático usando 
uma linha a vermelho e marcadores para os valores do tipo quadrado. O que pode 
concluir? 
 
6. O ficheiro notas.txt contém as notas obtidas pelos alunos de uma dada disciplina nos 
4 testes realizados. As notas de cada teste estão numa escala de 0 a 100. Leia com um 
comando Matlab o ficheiro notas.txt. Considerando que o peso dos dois primeiros testes 
é de 20% e dos dois últimos é de 30%, calcule um vetor com as notas finais (0 a 20) de 
cada aluno arredondados às unidades. 
 
7. A escrita de dados em ficheiros preserva resultados para análise futura. A leitura de 
ficheiros facilita a introdução de dados. Nas diversas áreas da ciência e da engenharia 
podemos encontrar um vasto conjunto de valores que podemos tratar no Matlab, de uma 
forma gratuita. Por outro lado, muitos equipamentos de laboratório guardam 
automaticamente medições em ficheiros que também podem ser importados facilmente 
pelo Matlab. 
a) Limpe o WorkSpace e crie uma string nome com o seu primeiro nome, idade com a 
sua idade e um vetor primos com os números primos até 100 (use a função prime()). 
Guarde os dados no ficheiro Matlab: Minhasessao.mat e verifique que foi criado na sua 
pasta de trabalho. 
b) Limpe o WorkSpace. Carregue o ficheiro anterior e examine novamente o WorkSpace. 
Que conclui? 
c) Apague as variáveis nome e idade e guarde a variável primos num ficheiro de texto 
MinhaSessao.txt. Verifique que o ficheiro foi criado, abra-o com um editor de texto e 
comente. 
d) Limpe o Workspace e carregue o ficheiro de texto. Comente. 
 
 2024-2025 
Folha n.º 7 
● Gráficos 3D de Superfícies 
● Comandos mesh e surf 
● Números complexos 
 
Elabore um “script” Matlab que resolva os seguintes problemas: 
1. Considere a seguinte função f(x,y) definida no domínio x∈[-1,1] ∧ y∈[-1,1]: 
 𝑓(𝑥, 𝑦) = 𝑙𝑛(1 + (𝑥2 + 𝑦2)) 𝑠𝑖𝑛(4𝜋√𝑥2 + 𝑦2) 
 
Calcule a função numa grelha de 51×51 pontos e elabore um gráfico de superfície 
utilizando sombreado interpolado. Acrescente as legendas necessárias para aumentar a 
legibilidade do gráfico. 
 
2. Considere a seguinte função de duas variáveis, x e y: 
 𝑓(𝑥, 𝑦) = 5 𝑠𝑖𝑛 (2𝜋(𝑥 − 𝑦)) + 3𝑠𝑖𝑛(6𝜋(𝑥 + 𝑦)) + 𝑠𝑖𝑛(10𝜋(𝑥 − 𝑦)) 
 
Construa um gráfico planar de pseudo-côr de f(x,y) para x∈[-1,1] ∧ y∈[-1,1] numa grelha 
de 71×71 pontos. Aplique sombreado interpolado. Sobreponha nesse gráfico 8 curvas de 
nível de f(x,y) a preto. Rotule devidamente os eixos e apresente também a barra de cores. 
 
3. Represente por um gráfico de superfície a função: 
 𝑧(𝑥, 𝑦) =
2𝑥2𝑦+3𝑥𝑦3
𝑐𝑜𝑠 (𝑥𝑦) 
 
Sendo x e y ambos definidos por 51 pontos no intervalo [-1,1]. Assinale no mesmo gráfico 
a origem dos eixos coordenados com um asterisco vermelho. Sobreponha ao gráfico de 
z(x,y) os gráficos dos planos z=0 e x=0. Acrescente os títulos e legendas adequados à boa 
compreensão do gráfico. Aumente os limites dos eixos de forma a deixar uma margem de 
10% em relação aos limites do gráfico. 
4. Considere a seguinte função de variável complexa: 
 𝐹 = √𝑧4 − 1
4
 
definida na grelha x∈[-1.5,1.5] ∧ y∈[-1.5,1.5] e com z=x+iy. Considere 61 pontos tanto 
para x como para y. Elabore um gráfico de superfície para o valor absoluto desta função. 
Apresente a barra de cores e acrescente as legendas adequadas. 
Problemas complementares 
 2024-2025 
5 – Represente num gráfico 3D uma esfera de raio 1 centrada na origem.Coloque a esfera 
dentro de um cubo, deixe a face de trás do cubo aberta para poder ver a esfera. 
6 – Repita o exercício 5, mas agora centrando a esfera no ponto (1,1,1). 
 
 2024-2025 
Folha n.º 8 
● Geração de número aleatórios 
● Método de Monte-Carlo 
 
Elabore um “script” Matlab que resolva os seguintes problemas: 
 
1. Gere um vetor linha z com 1000 números complexos em que a parte real é constituída 
por números aleatórios com distribuição uniforme no intervalo ]3; 4[ e a parte 
imaginária é constituída por números aleatórios com distribuição normal com média -1 e 
desvio padrão 5. 
a) Calcule a média e o desvio padrão do valor absoluto de z. 
b) Visualize numa área gráfica 1x2, à esquerda o histograma com 20 classes do valor 
absoluto de z e à direita, o histograma com 30 classes do ângulo de z. Acrescente os títulos 
necessários a uma boa compreensão do gráfico. 
c) Calcule a percentagem de pontos situados no 4ª quadrante do plano complexo. 
 
2. Considere o vector complexo com 200 elementos 𝑍 = 𝐴 𝑒𝑥𝑝( 𝑖𝜃) em que A 
resulta duma distribuição aleatória uniforme no intervalo ]0; 2[ e 𝜃 resulta duma 
distribuição aleatória uniforme no intervalo ]0; 2pi]. 
a) Calcule o vector z. 
b) Crie uma figura com 4 áreas gráficas numa configuração 2x2. Represente em todas as 
áreas gráficas a circunferência unitária com uma linha vermelha (200 pontos). Acrescente 
a grelha e mantenha em todos os gráficos uma razão de aspeto unitária. 
c) Sobreponha em cada área gráfica os valores de z que pertencem ao 1º, 2º, 3º e 
4ºquadrantes respetivamente. Use “*” azuis para marcar os valores de z. Documente 
devidamente cada gráfico. 
Nota: Recorde que um modo eficiente de obter gráficos de circunferências unitárias é 
recorrer a funções complexas do tipo C= 𝑒𝑥𝑝( 𝑖𝑥) Use 200 pontos para x [0, 2pi]. 
 
3. Um alvo circular é usado para treino de tiro com arco. O alvo está a dividido em 3 
zonas concêntricas, denominadas z1, z2 e z3, às quais correspondem as seguintes 
pontuações: z1: 2 pontos, z2: 5 pontos, z3: 10 pontos. Para simular em computador 
considere o alvo definido no círculo unitário e que as diferentes zonas se caracterizam da 
seguinte maneira, em que raio denota a distância de um dado ponto ao centro do alvo: 
● z1: 0.5uniforme entre 0 e 100. 
Seguidamente deve solicitar em ciclo, ao utilizador a introdução de um número entre 0 e 
100. Consoante a comparação do número utilizado com o número sorteado, é dada a 
informação ao utilizador, ‘número maior’, ‘número menor’ e ‘número igual’. O ciclo 
repete-se até o resultado ser ‘número igual’. 
12. Gere uma sequência aleatória x com 200 números inteiros equiprováveis no intervalo 
[1,50[. 
a) Use um ciclo ‘for’ para calcular os valores máximo e mínimo de x. Determine também 
os respetivos índices relativamente à sequência. 
b) Modifique a solução anterior para contemplar casos de múltiplas ocorrências dos 
valores extremos. 
 
 2024-2025 
 
Folha n.º 11 
• Programação em Matlab 
• Funções 
 
1. Construa uma função, com o nome notasFinais, que deve ter como parâmetro de 
entrada uma matriz com as notas dos testes de uma disciplina (de 0 a 100) e como 
saída um vetor com as notas finais (de 0 a 20). Cada linha da matriz de entrada contem 
as notas de um aluno e um número de colunas igual ao número de testes realizados. 
Considere que os testes têm o mesmo peso relativo. 
 
2. Considere a expansão em série de Taylor da função exponencial dada pelo somatório. 
𝑒𝑥 = 1 + 𝑥 +
𝑥2
2!
+
𝑥3
3!
+. . . = ∑
𝑥𝑛
𝑛!
𝑁−1
𝑛=0 
Elabore uma função em Matlab, com o nome faula11_2, que calcule o valor deste 
somatório. Resolva com um ciclo for. Os parâmetros de entrada são o valor de n e o vector 
x e o de saída o valor da série. 
 
3. Escreva uma função, com o nome multiplos, que tenha como parâmetro de entrada 
um múltiplo de 5, e como saída um vetor com 10 múltiplo de 5 a começar no múltiplo de 
5 passado como parâmetro de entrada. Inclua a possibilidade de validar se o parâmetro de 
entrada introduzido é de facto um múltiplo de 5, e preveja a possibilidade de ser o 
utilizador a definir o número de elementos do vetor de saída. 
 
4. Considere o exercício número 6 da aula 2. Escreva uma função, com o nome fseq, sem 
parâmetros de entrada e que devolva três parâmetros de saída, os 100 elementos da 
sequência un, o valor de s e p. A soma e o produto deverão ser calculados em duas sub-
funções com o nome s_soma e p_producto, ambas as funções têm como parâmetro de 
entrada a sequência e de saída a soma e o produto, respetivamente. Altera a função de 
modo que possa aceitar como parâmetro de entrada o número da sequência un. 
 
 
Problemas complementares 
 
5. Recorrendo ao método de Monte Carlo e utilizando 104 pontos aleatórios com 
distribuição uniforme, calcule a área sombreada representada na figura seguinte. Note-
 2024-2025 
se que a área assinalada está delimitada pelas retas de equações y=x+3 e y=-x+3 e a 
curva y=|sin(px)/(px)|. 
 
 
6. Gere uma matriz N, de dimensões 152, com valores inteiros aleatórios entre 0 e 20. 
Assuma que a matriz gerada corresponde às notas dos exames de duas épocas (normal 
e recurso) de uma turma de 15 alunos. Utilizando um ciclo FOR obtenha o nº de alunos 
com aprovação (nota final >9.5), sabendo que a nota final é a melhor das duas épocas. 
 
7. Escreva uma função designada fxxxxx gravada no ficheiro fxxxxx.m (substituir xxxxx 
pelo seu nº mecanográfico). Esta função deverá ter como parâmetros de entrada um 
número inteiro k, correspondente a uma posição (linha), e uma Matriz N. Como 
parâmetro de saída deverá devolver a média (m) dos valores associados às várias 
colunas da linha indicada. Para testar a função, use a matriz N da alínea anterior e a 
posição k=5.

Mais conteúdos dessa disciplina