Matemática Computacional Edgard Jamhour
Definição A matemática computacional é uma área da matemática e da computação que trata do desenvolvimento de modelos matemáticos, para o tratamento de problemas complexos, e desenvolvimento de métodos numéricos de obtenção de soluções. Matemática computacional geralmente utiliza técnicas para solução numérica (aproximada) de problemas.
Solução Analíticas vs Numéricas Soluções analíticas são soluções exatas obtidas através de manipulações algébricas e provas matemáticas; Exemplo: Em quais pontos as equações se interceptam: y=a*x + b x2+y2=r2 y = 0.5*x + 5 x2+y2=25
Problemas sem solução analítica A) Diversas integrais como: B) Equações diferenciais como: C) equações diferenciais parciais não lineares podem ser resolvidas analiticamente só em casos particulares.
Exemplo: Integração Numérica retângulo trapézio simpson
Influência dos Erros nas Soluções Exemplo 1: Falha no lançamento de mísseis (25/02/1991 – Guerra do Golfo – míssil Patriot) Limitação na representação numérica (24 bits) Erro de 0,34 s no cálculo do tempo de lançamento
Influência dos Erros nas Soluções Exemplo 3: Falha no lançamento do foguete francês Ariane 501 (04/06/1996 – Guiana Francesa) Erro na conversão de um número de ponto flutuante de 64bits para inteiro de 16 bits Erro de trajetória 36,7 segundos após o lançamento Prejuízo de U$ 7,5 bilhões
Modelagem e Resolução No caso geral, a utilização da matemática computacional para resolução e problemas envolve as seguintes etapas; 1) Definir o problema que será resolvido 2) Construir um modelo matemático para o problema 3) Resolver o problema usando um método numérico/computacional 4) Verificar a solução confrontando os resultados previstos com aqueles medições feitas em experimentos.
Fontes de erros Problema: como determinar a altura de um edifício usando uma bola de metal e um cronômetro? h = 𝑔 𝑡 2 2 h= altura (m) t = tempo medido (m) g = gravidade (9.8 m/s2) Se a bola levar 2 segundos para cair do topo do prédio, podemos afirmar que a altura do prédio é 19.6 metros? Quais são as fontes de erro que podem afetar essa resposta? erros no modelo matemático erros de resolução erros de truncamento
Fontes de erros Problema: como determinar a altura de um edifício usando uma bola de metal e um cronômetro? h = 𝑔 𝑡 2 2 h= altura (m) t = tempo medido (m) g = gravidade (9.8 m/s2) Se a bola levar 2 segundos para cair do topo do prédio, podemos afirmar que a altura do prédio é 19.6 metros? Quais são as fontes de erro que podem afetar essa resposta? erros no modelo matemático erros de resolução (precisão dos dados de entrada) erros de truncamento
Representação Numérica Qual a distância que uma roda de raio R = 10 metros percorre em uma volta? C = 2 R Como representar o número ? a) π =3,14 b) π =3,1416 c) π =3,141592654 O valor exato não pode ser obtido através de métodos numéricos. A representação de um número depende da BASE escolhida e do número de dígitos usados na sua representação.
Representação de Número Inteiro Onde: é a base fixa d é um dígito da base Exemplos:
Representação de Número Real Representação de um número real x 𝑥=± 𝑥𝑖,𝑥𝑓 xi: parte inteira 𝑖 𝑛 𝑖 𝑛−1 𝑖 𝑛−2 ⋯ 𝑖 1 𝑖 0 xf: parte fracionária 𝑓 1 𝑓 2 ⋯ 𝑓 𝑚−1 𝑓 𝑚 𝑥 𝑓 = 𝑓 1 𝛽 −1 𝑓 2 𝛽 −2 ⋯ 𝑓 𝑚−1 𝛽 − 𝑚−1 𝑓 𝑚−1 𝛽 − 𝑚−2 n+1 algarismos na parte inteira e m na parte fracionária Exemplos:
Conversão Decimal para Binária Método das divisões sucessivas (parte inteira do número) Divide-se o número (inteiro) por 2; Divide-se por 2, o quociente da divisão anterior; Repete-se o processo até o último quociente ser igual a 1. Método das multiplicações sucessivas (parte fracionária do número) Multiplica-se o número (fracionário) por 2; Do resultado, a parte inteira será o primeiro dígito do número na base binária e a parte fracionária é novamente multiplicada por 2; O processo é repetido até que a parte fracionária do último produto seja igual a zero
Exemplos
Erro de arredondamento Nem todo número real na base decimal possui uma representação finita na base binária. Exemplo: representação do número 0,1 em binário: 0.0001100112 = 0.0996094 0.00011001100112 = 0.0999756 0.000110011001100112 = 0.0999985 0.0001100110011001100112 = 0.0999999 Operações com números reais são uma das principais fontes de erro introduzidos por algoritmos numéricos.
Resolva os seguintes exercícios usando o Wolfram Alpha a) (100110)2 = para base 10 b) (1100101)2 = para base 10 c) (40,28) 10= para base 2 d) (110,01) 2= para base 10 e) (3,8)10 = para base 2
t: número de dígitos significativos Ponto Flutuante Formato de representação digital de números reais usada nos computadores. A representação vista anteriormente: [ PARTE INTEIRA , PARTE FRACIONÁRIA ] é muito cara em termos de armazenamento e processamento Um número em ponto flutuante tem o seguinte formato: Expoente I ≤ e ≤ S Base (número inteiro) = 2 sistemas binários Mantissa = 0,d1d2 ...dt (número menor que 1) t: número de dígitos significativos
Exemplos Notação de ponto flutuante em base 10: 0.35 = 0.35*100 -5.171 = -0.5171*101 0.0123 = 0.123*10-1 5391.3 = 0.53913*104 0.0003 = 0.3*10-3 Mesmo exemplo, com t=3 e -2 ≤ e ≤ 2: 0.35 = 0.350*100 -5.171 = -0.517*101 5391.3 = 0.539*10*** 4>2 ****= erro de overflow 0.0003 = 0.300*10*** -4 <-2 **** = erro de underflow
Representação no MATLAB MATLAB representa números em ponto flutuante com precisão simples ou dupla (default), de acordo como o padrão IEEE 754. SIMPLES (32 bits): 31 .... 0 bit 31: sinal (0 positivo, 1 negativo) 30 até 23: expoente 22 até 0: mantissa DUPLA (64 bits): 63 ... 0 bit 63: sinal (0 positivo, 1 negativo) 62 até 52: expoente 51 até 0: mantissa
Erros Absoluto, Relativo e Percentual Erro absoluto: 𝐸 𝑎 =𝑥− 𝑥 x = valor exato 𝑥 = valor aproximado obtido por procedimento numérico Exemplo: Se 𝑥 = 10 e 𝐸 𝑎 <0.01 então 0.99 < x < 10.01 Erro relativo: 𝐸 𝑟 = 𝐸 𝑎 𝑥 = 𝑥− 𝑥 𝑥 Erro percentual: 𝐸 𝑝 = 𝐸 𝑟 Exercício: Você testou dois métodos numéricos A e B. O método A obteve o valor x= 0.00004, sabendo que o valor real é 0.0005. O método B obteve o valor 100000, sando que o valor real é 101000. Qual desses métodos é melhor?
Erro por Arredondamento e Truncamento Suponha que se computador opere com números em ponto flutuante com 3 dígitos significativos, e expoente -4<e<4. Erros cometidos por arredondamento são menores que os de truncamento, mas requerem um tempo menor de execução. Por isso, o truncamento é mais usado em computadores.
Propagação de Erros Suponha que um computador que opere com 4 dígitos significativos realize as seguintes operações, equivalentes: