Escolar Documentos
Profissional Documentos
Cultura Documentos
Henrique
Computadores e Programação – LPIL – 2023/2024
Trabalho Computacional
Data de entrega: 21/jan/2024, até às 23h59m
Modo de entrega: via TEAMS
PROBLEMA 1
Escreva um script (programa), denominado contaPalavras.m, que peça ao utilizador uma frase e que devolva o
número de palavras que compõem a frase. (SUGESTÃO: Utilizar um ciclo FOR para percorrer a string e somar o
número de espaços em branco…). [EXEMPLO: Estudo na Escola Náutica Infante D. Henrique - resposta: 7]
PROBLEMA 2
Escreva um script (programa), denominado calculaVolume.m, que apresente ao utilizador um menu que permita
calcular: a) Volume de uma esfera; b) Volume de um cilindro; c) Volume de um cone; d) Terminar programa.
O programa deve pedir ao utilizador as dimensões caraterísticas do sólido, fazer o respetivo cálculo do volume e
tornar a apresentar novamente o menu. Caso a opção escolhida não seja válida, a mensagem respetiva deve ser
devolvida ao utilizador e o menu é novamente apresentado. O programa só deve terminar a sua execução quando a
opção d) for selecionada.
O cálculo de volume para os 3 sólidos deve ser implementado com 3 funções: volEsf.m, volCil.m e volCone.m.
PROBLEMA 3
1
PROBLEMA 4
a) Escreva uma função que implemente o método das diferenças finitas centradas para estimar a 1ª derivada de
uma função 𝑓𝑓(𝑥𝑥), utilizando uma aproximação de ordem 𝑂𝑂(ℎ2 ).
O cabeçalho da definição da função a implementar deve ser similar a:
[vec_diff_f] = metdfc1(vec_x_i,vec_y_i)
Parâmetros de entrada: um vetor com os vários valores 𝑥𝑥𝑖𝑖 (igualmente espaçados) e um vetor com os vários
valores 𝑦𝑦𝑖𝑖 = 𝑓𝑓(𝑥𝑥𝑖𝑖 ).
Parâmetro de saída: um vetor com a aproximação da derivada em cada ponto 𝑥𝑥𝑖𝑖 , i.e. o valor aproximado de
𝑓𝑓′(𝑥𝑥𝑖𝑖 ). (NOTA: para calcular a derivada nos pontos inicial e final do intervalo deve utilizar o método das
diferenças finitas progressivas e regressivas, respetivamente).
b) Para testar a função, escreva um pequeno script em que define os argumentos da função, faz a chamada à
função, apresenta o resultado da chamada à função e apresenta um gráfico dos valores aproximados de 𝑓𝑓′(𝑥𝑥𝑖𝑖 ).
c) Aplique o script e a função que implementou nas alíneas anteriores para determinar a aceleração, em função
do tempo, de uma moto GP, de que se apresentam os dados na figura seguinte. Utilize um passo no tempo de
1 segundo e apresente os resultados da aceleração em [m/s2], para tempo ∈ [0,20] segundos. Compare os
resultados obtidos com a aceleração gravítica!
2
PROBLEMA 5
a) Escreva uma função que implemente a regra trapezoidal para obter uma estimativa do integral de uma função
𝑓𝑓(𝑥𝑥) num dado intervalo [𝑎𝑎, 𝑏𝑏].
O cabeçalho da definição da função a implementar deve ser similar a:
[val_integral_est] = metintegtrap(intervalo,func_f,num_segm)
Os parâmetros de entrada devem ser: um array com os extremos do intervalo, um function handle para a
função 𝑓𝑓(𝑥𝑥) a integrar e o número de segmentos em que o intervalo [𝑎𝑎, 𝑏𝑏] deve ser subdividido.
𝑏𝑏
O parâmetro de saída deve ser: o valor estimado do integral ∫𝑎𝑎 𝑓𝑓(𝑥𝑥 )𝑑𝑑𝑑𝑑 .
b) Para testar a função, escreva um pequeno script em que define os argumentos da função, faz a chamada à
função e apresenta o resultado da chamada à função.
c) De modo a ser possível determinar os custos envolvidos na manutenção de um reservatório de água potável de
uma exploração rural, pretende-se estimar o volume de água necessário para o encher. O reservatório possui
uma altura de 3 metros e tem a forma apresentada na figura seguinte (vista superior do reservatório).
10
y1
9
5
y
1
y2
0
0 2 4 6 8 10 12 14 16 18 20
x
1 1
As curvas 𝑦𝑦1 e 𝑦𝑦2 são as seguintes: 𝑦𝑦1 = 5 + √20𝑥𝑥 − 𝑥𝑥 2 , 𝑦𝑦2 = 5 − √20𝑥𝑥 − 𝑥𝑥 2 .
2 2
As unidades das variáveis x e y são o metro.
Obtenha uma aproximação para a área do reservatório utilizando a regra de integração numérica do trapézio.
Utilize um passo ℎ1 = 0,1 m.
Qual o volume de água que espera ser necessário para encher o reservatório?
PROBLEMA 6
a) Escreva uma função que implemente o método da interpolação polinomial utilizando um polinómio na forma
de Newton.
O cabeçalho da definição da função deve ser similar a:
[coeficientes] = metinterpnewton(vec_x_i,vec_y_i)
Parâmetros de entrada: um vetor com os vários valores 𝑥𝑥𝑖𝑖 e um vetor com os vários valores 𝑦𝑦𝑖𝑖 = 𝑓𝑓(𝑥𝑥𝑖𝑖 ).
Parâmetro de saída: um vetor com os coeficientes do polinómio interpolador (de ordem crescente
relativamente à potência de x, i.e. 𝑑𝑑0 , 𝑑𝑑1 , … , 𝑑𝑑𝑛𝑛−1 , 𝑑𝑑𝑛𝑛 ). (SUGESTÃO: A função deve implementar a tabela
que permite calcular as várias diferenças divididas).
3
b) Para testar a função, escreva um pequeno script em que define os argumentos da função, faz a chamada à
função, apresenta o resultado da chamada à função e apresenta um gráfico do polinómio interpolador no
domínio considerado.
c) Pretende-se obter um modelo polinomial de grau 4, da evolução da velocidade com o tempo, da moto GP
apresentada no Problema 4.
Para obter o modelo polinomial utilize 5 pontos (t=0 s, t=5 s, t=10 s, t=15 s, t=20 s), bem como o script e a
função que implementou nas alíneas anteriores.
PROBLEMA 7
b) Para testar a função, escreva um pequeno script em que define os argumentos de entrada da função, faz a
chamada à função e apresenta o valor da raiz, a tabela e um gráfico com a evolução da estimativa da raiz.
4
PROBLEMA 8
b) Para testar a função, escreva um pequeno script em que define os argumentos da função, faz a chamada à
função e apresenta o valor da raiz, a tabela e um gráfico com a evolução da estimativa da raiz.
c) Utilize o método de Newton-Raphson para resolver a questão apresentada no Problema 7. Utilize como
estimativa inicial ℎ0 = 𝑅𝑅 e como critério de paragem utilize o número máximo de iterações (k=12 iterações).
Comente o resultado obtido relativamente ao método da bissecção.
PROBLEMA 9
b) Para testar a função, escreva um pequeno script em que define os argumentos de entrada da função, faz a
chamada à função e apresenta o valor da raiz, a tabela e um gráfico com a evolução da estimativa da raiz.
c) Utilize o método do ponto fixo para resolver a questão apresentada no Problema 7. Utilize como estimativa
inicial ℎ0 = 𝑅𝑅 e como critério de paragem utilize um erro relativo aproximado inferior a 0.5 × 10−6 . Comente
o resultado obtido relativamente aos métodos da bissecção e de Newton-Raphson.
_______________________________________________________________________________________________
Entrega do Trabalho
• O trabalho final deve ser entregue via TEAMS, até às 23h59m do dia 21/janeiro/2024.
• Todos os alunos de cada grupo devem entregar o trabalho no TEAMS.
• O trabalho deve conter todos scripts e funções necessárias ao seu funcionamento. Os ficheiros devem ser
organizados por pastas (e.g. Problema1, Problema2, …).
• O relatório deve ser constituído por um documento em .pdf com as respostas (sintéticas) a cada questão dos
problemas. Comentários, relativos a desempenho dos métodos, tais como majoração de erros, convergência,
etc., serão valorizados, mas devem ser sintéticos.
• Todos os ficheiros devem ser comprimidos num só ficheiro com extensão .zip ou similar.
• Não é necessário entregar o trabalho em papel.
5
Avaliação