23
Matemática Computacional Edgard Jamhour

Matemática - ppgia.pucpr.brjamhour/Pessoal/Graduacao/MatComputac... · desenvolvimento de métodos numéricos de obtenção de soluções. ... equivalentes: Title: Matemática Computacional

Embed Size (px)

Citation preview

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.

dxex2

22 tyy

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)

6

Erro de 0,34 s no cálculo do tempo de lançamento

Limitação na representação numérica (24 bits)

Influência dos Erros nas Soluções • Exemplo 3: Falha no lançamento do foguete francês Ariane 501

• (04/06/1996 – Guiana Francesa)

7

Erro de trajetória 36,7 segundos após o lançamento

Prejuízo de U$ 7,5 bilhões

Erro na conversão de um número de ponto flutuante de 64bits

para inteiro de 16 bits

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.

8

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)

a. Divide-se o número (inteiro) por 2;

b. Divide-se por 2, o quociente da divisão anterior;

c. Repete-se o processo até o último quociente ser igual a 1.

• Método das multiplicações sucessivas (parte fracionária do número)

a. Multiplica-se o número (fracionário) por 2;

b. 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;

c. 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

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:

Mantissa = 0,d1d2 ...dt (número menor que 1)

t: número de dígitos significativos

Base (número inteiro) = 2 sistemas binários

Expoente I ≤ e ≤ S

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

• 0.0123 = 0.123*10-1

• 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: