
Programação e Computação Numérica
-
Conhecimentos de Base Recomendados
Conhecimentos prévios sobre funções reais de variável real (continuidade, diferenciabilidade, integração) e sobre equações diferenciais ordinárias.
-
Objetivos
Pretende-se que o estudante adquira competências no domínio da programação e do cálculo numérico.
No final da unidade curricular, o estudante deverá ser capaz de:
- Compreender os princípios básicos de programação, que permitam ao estudante adaptar-se a novas linguagens de programação
- Desenvolver raciocínio lógico
- Compreender e aplicar métodos numéricos para resolver problemas matemáticos: equações não lineares, aproximação de funções por polinómios, integração numérica e equações diferenciais ordinárias.
- Implementar algoritmos obtidos a partir dos métodos numéricos abordados e aplicá-los a problemas da Engenharia Civil.
- Reconhecer vantagens, desvantagens e limitações de cada método.
- Desenvolver capacidade de trabalho em equipa.
Não aplicável
-
Métodos de Ensino
Nas aulas teórico-práticas serão introduzidos os conceitos, sempre que possível recorrendo a exemplos de aplicação, procurando-se estimular o interesse, o raciocínio e o espírito crítico dos estudantes.
As aulas de laboratório decorrerão em salas de informática e serão dedicadas à resolução de exercícios de programação que permitam ao estudante por em prática os conhecimentos adquiridos. Será introduzida uma linguagem de programação, que permita ir implementando os conceitos
Será promovido o trabalho em grupo.
-
Estágio(s)
Não
-
Programa
- Introdução à programação (2 semanas)
Constantes, variáveis, operadores (aritméticos, relacionais e lógicos), funções - Pseudocógido (3 semanas)
Estrutura de um algoritmo, declaração de variáveis, atribuição de valores, comentários, entrada e de saída de dados, estruturas básicas (sequencial, condicional e repetição) - Teoria de erros (1 semana)
Erro absoluto, erro relativo, propagação de erros - Determinação de raízes de funções não lineares (1 semana)
Métodos de ponto fixo, bissecção, secante e Newton-Raphson - Interpolação de funções (2 semanas)
Fórmulas de Lagrange e de Newton - Integração numérica (2 semanas)
- Problemas de engenharia civil que requerem integração numérica
- Diferença entre integração algébrica e integração numérica
- Regras de integração numérica: regras de Newton-Cotes, quadratura de Gauss
- Resolução numérica de equações diferenciais ordinárias (edos) (4 semanas)
- Introdução à resolução numérica de edos
- Métodos de Euler e de Runge-Kutta
- Introdução à programação (2 semanas)
-
Demonstração de conteúdos
Os conteúdos programáticos definidos permitem ao estudante compreender os princípios básicos de
programação, podendo adaptar-se a outras linguagens de programação que venham a ser necessárias.Os métodos numéricos vão surgindo ao longo do semestre de forma gradual, no que à sua complexidade dizrespeito, de modo a que o estudante consiga ir interiorizando os conceitos de programação. Como exemplo, os métodos de determinação de raízes, de implementação relativamente simples, permitirão ao estudante compreender o impacto das instruções de decisão e de ciclo. Permitirão, também, consolidar os conhecimentos teóricos introduzidos sobre a teoria de erros.
Os vários métodos numéricos que serão ministrados, as vantagens e desvantagens de cada um, permitirão ao estudante selecionar qual o mais adequado em função do problema matemática em concreto com que se venha a deparar noutras unidades curriculares e/ou no seu futuro profissional.
-
Demonstração da metodologia
À medida que os estudantes forem tomando contacto com os princípios elementares da programação, irão também colocá-los em prática na construção de pequenos programas que facilitem a apreensão da noção de algoritmia e o desenvolvimento do raciocínio lógico.
A análise aos resultados, confrontados com os de problemas cuja solução é conhecida, e a teoria de erros que será lecionada, proporciona ao estudante a oportunidade de desenvolver o seu espírito crítico e de compreender as vantagens e desvantagens de cada método numérico.
O desenvolvimento do projeto final permitirá a integração dos vários conhecimentos adquiridos e a sua aplicação a um problema na área da Engenharia Civil.
A realização de trabalhos durante as aulas e do projeto final permitirá ao estudante desenvolver competências de trabalho em equipa
-
Docente(s) responsável(eis)
-
-
Métodos de Avaliação
-
Bibliografia
Liang, Y.D.; Introduction to Programming Using Python, Pearson, 2013
Burden, R. L., Faires, D. J.,Burden, A. M.; Numerical Analysis – 10th Edition, Cengage Learning, 2016
Chapra, S.C., Canale, R. P.; Numerical Methods for Engineers - 7th edition, McGraw-Hill, 2015
Atkinson, K. E., (1989). An Introduction to Numerical Analysis - 2nd edition, John Wiley & Sons
Quarteroni, A., Salero, F. ; Cálculo Científico com Matlab e Octave, Springer, 2006
Guttag, J. V; Introduction to Computation and Programming Using Python, MIT Press, 2013
Correia dos Santos, F., Duarte, J., Lopes, N. D.; Fundamentos de Análise Numérica com Python 3 e R – 2ª edição, Edições Sílabo, 2019
Detalhes do curso
-
Código
CVN039
-
Modo de Ensino
PRESENCIAL
-
ECTS
4.0
-
Duração
Semestral
-
Horas
15h Orientação Tutorial
52.5h Teórico-Práticas