CNUM-002 Sistema de Ponto Flutuante (SPF) e Erros Numéricos
Vložit
- čas přidán 28. 08. 2024
- Descrição do SPF. Operações em SPF. Erros Numéricos e Computacionais. Erros de Underflow, Overflow, Arredondamento, Truncamento, Erro de conversão de base, precedência de operações. Erro absoluto e erro relativo.
# Introdução
Sistema de ponto flutuante 0:04
Aritmética e ponto flutuante 6:19
# Erros computacionais
Overflow e Underflow 9:33
Arredondamento e Truncamento 13:40
Conversão de base 17:09
Precedência de operações 19:47
# Erro absoluto e Erro relativo
Conceito EA e ER 22:37
Exemplo 23:41
1 Semestre de Calculo resumido em 30 Minutos. Muito bom, parabéns!!
Olá Rafael como vai?
Se juntar todos o vídeos, acho que dá umas 5h de cálculo numérico hehehe. Em todo caso, agradeço o comentário. Obrigado por acompanhar o Canal.
Qualquer dúvida é só perguntar!
Valeu!
@ tem playlist desse material? procurei e não to encontrando
Tenho a felicidade de ser aluno desse cara. Ótima aula não só virtualmente, mas tbm presencialmente em faculdade kk. Abraço
Olá Rútilo, tudo bem?
Valeu pelo comentário hehehe.
Obrigado por acompanhar aqui também. Qualquer dúvida é só perguntar.
Valeu!!
Excelente!
Cálculo Numérico pode parecer simples para muitos, mas ainda tenho um pouco de dificuldade de absorver...
E essa videoaula me ajudou bastante a esclarecer o que vi em sala de aula!
Obrigado, Professor!
Obrigado Patrick. Em breve teremos todo o conteúdo de Cálculo Numérico por aqui! Valeu!!
Poderia responder uma questão que venho tendo duvida nela desde o primeiro dia de aula da disciplina?
Posso tentar. Qual a dúvida?
Se pudesse me disponibilizar algum meio de contato, ou eu passar o meu aqui, para poder me explicar esta questão melhor, mais vou deixar um link da imagem aqui. >>i66.tinypic.com/nn5wn5.png
Olá Rodrigo, posso tentar!
Obrigado por sua explicação, mestre!
Você explica de forma analítica, com paciência e uma didática incríveis. Além de usar ótimas palavras...
Obrigado pelo comentário positivo!!
Valeu!!
Cara parabéns vc nasceu para ser professor ensinar é uma arte e vc é um verdadeiro artista muito obrigado
Eu que agradeço
Meu amigo , você é uma benção na minha vida , pensa em uma pessoa , que na sala de sala não estava entendendo nada. Você é demais!!!
Um feliz ano de 2023 para você. Muito obrigo pelas suas maravilhosas aulas. Grande abraço!
Olá Sebastião, tudo bem?
Agradeço os votos de felicidade e te desejo tudo em dobro :) Que os nossos caminhos sejam de muitas conquistas!
Abraço!
O vídeo é MUITO bom. PARABÉNS pelo trabalho
Excelente vídeo !!!! Extremamente simples nas explicações...
Olá Jokencanal. Tentamos simplificar sem perder a essência. Que bom que gostou. Continue acompanhando nosso canal. Abraço.
Como tem doente dá dislike num video desse, me diz? Impressionante... Excelente video!!! Continue! Obrigado!
Olá Marcelino, como vai?
Sempre vai ter quem é do contra ou quem não gosta mesmo (e temos que conviver com isso). O importante é que a maioria tá gostando e mais ainda.., que está servindo para ajudar o entendimento do conteúdo, contribuindo para a formação de muita gente. Seu comentário vale muito mais do que 1000 dislikes :)
Obrigado por acompanhar o canal. Qualquer dúvida é só perguntar.
Valeu!!
@ Cara, fiz uma prova hoje de cálculo numérico computacional e se não fosse teus vídeos nessa última madrugada eu estaria fritooo!! E fiz boa prova!
Olá Marcelino.
Melhor tipo de retorno que eu poderia ter!! Parabéns (para nós!) hehehe
Valeu!
Obrigado pelo vídeo, você tem uma didática excelente! Se puder, grave vídeos sobre teoria dos números, seria muito útil com suas explicações.
Olá Victor, tudo bem?
Gostei de sua dica.. até já tenho um material preparado!! Em breve vou começar a gravar novos vídeos e estes estão na lista.
Valeu!!
Nota 10. Excelente aula, o que tem em um capitulo do livro vc explicou em 30 min.
Olá Lucas, tudo bem?
O vídeo dá uma boa visão geral do conteúdo. Não de complementar com o livro de sua preferência. QUalquer dúvida é só perguntar.
Valeu!!
Parabéns! muito explicativo o seu vídeo!!!
excelente, parabens!!! mais didático impossível!!!
Que aula incrível foi essa? Parabéns!!
Ótima explicação, obrigado professor !
Muito bom, melhor que meu professor depois de 999999 aulas.
Olá Yuri, tudo bem?
Obrigado pelo comentário positivo. Agradeço também por acompanhar o canal!
Qualquer dúvida é só perguntar!
Valeu!
Perfeito! Obrigado pelo vídeo, me ajudou muito!
Olá Junior Andrade. Obrigado pelo retorno.
Ficamos muitos felizes em ajudar! Esse é o objetivo do Canal.
Em breve teremos também a implementação computacional dos métodos.
Valeu
Nossa Esse vídeo foi ótimo não tava entendendo nada dessa matéria até ver o seu vídeo
Olá Elias, tudo bem?
Agradeço o comentário positivo e por acompanhar o canal.
Qualquer dúvida é só perguntar.
Valeu!
aula muito show
Valeu pela força Milena!!
Ótimo!
Parabéns, claro e objetivo
Olá Patrícia, tudo bem?
Obrigado pelo incentivo! Sempre é bom ouvir um comentário positivo. Agradeço também por acompanhar o canal!
Qualquer dúvida é só perguntar!
Valeu!
Cara, demais. Obrigado por compartilhar conhecimento.
Muito Bom! Tô revisando por causa do meu mestrado!
Estou a curtir bastante as cenas inéditas que estou a encontrar aqui...
Mto bom e objetivo seu conteúdo
Olá Nayara, tudo bem?
Agradeço o comentário positivo e por acompanhar o canal.
Qualquer dúvida é só perguntar. =)
Valeu!
Muito obrigado.
Eu que agradeço
valeu professor, esta me ajudando muito
Olá Rafa Stii, tudo bem?
Ótimo. Qualquer dúvida é só perguntar.
Valeu!!
Olá, professor. Sobre os elementos em ponto flutuante, por que o a representação do menor número não é ao contrário de como é feito, no caso, se eu tenho três dígitos, por exemplo, por que ele fica 0,100 e não 0,001?
Porque o primeiro dígito após a vírgula deve ser 1. Esse número 0,001 que vc colocou, é representado por 0,1.10^-2. Ou seja, pela própria característica da escritas dos números, não se pode ficar 0 após a vírgula, daí usa 1 que é o menor número depois do 0.
Muito bom trabalho cara ! um abraço!
Olá Everton, tudo bem?
Obrigado pelo incentivo.
Valeu!!
TOP de mais
Valeu, Caio!
Ainda não entendi uma coisa, o menor número de dois dígitos não deveria ser 0,01 ao invés de 0,10?
Ótima aula! Obrigado!
Olá Vagner, tudo bem?
Agradeço o comentário positivo!
Obrigado por acompanhar o canal! Qualquer outra dúvida é só perguntar.
Valeu!!
Professor, não entendi porque o menor número é 0,1000. Não deveria ser 0,0001 ?
Olá Mateus,
Não esqueça que está multiplicado por (base) elevado (expoente mínimo), logo o resultado do cálculo será o menor valor
menor = 0,1 x B^(exp_min)
Valeu!
Como definir os pontos de underflow e overflow sem dados os números somente com os SPF
Olá Professor João Marcos, tudo bem?
A região de underflow será qualquer número menor do que o menor representável. A região do overflow será qualquer número maior que o maior representável. A definição dos dois está em 6:00 do vídeo. Espero ter ajudado com sua dúvida. Caso não é só voltar a perguntar.
Obrigado por acompanhar o canal.
Valeu!
Excelente, parabéns!
Olá Maurício, tudo bem?
Te agradeço pelo comentário positivo. Obrigado também por acompanhar o canal!
Qualquer dúvida é só perguntar!
Valeu!
MUITO TOP MESMO PARABÉNS
Olá Darkest.
Obrigado pelo comentário.
Valeu!
gostei!😀😀😀😀
Olá amigo. Ótimo vídeo.
Na aritmética de ponto flutuante, você truncou o 0,432 para 0,43 e não truncou o 0,0064.
Na minha visão, teria que truncar os dois ou arredondar... não é isso?
Fábio Carlos Moreno tive a mesma dúvida, acho que deveria truncar né?
Olá, tudo bem?
0,0064 = 0.64 x 10^-2, o que mantém dois dígitos significativos representados dentro dos limites da mantissa, por isso que não "trunca"
A análise deve ser efetuada no número em formato de mantissa.
Espero ter ajudado. Qualquer outra dúvida é só perguntar.
Valeu!
Olá Fábio, tudo bem?
Acabei de responder na pergunta do Fábio.
Qualquer outra dúvida é só perguntar.
Valeu!!
@Rafael Lima de Souza , tudo bem?
Sim, você tem razão. Este número também poderia ser representado como 0,64x10^-1.
Contudo, para este caso, como o número deve ser representado na forma vista em 0:30, adotamos 0,0064x10^1 para facilitar a operação vista em (07:30), pois deixando todos os números com o mesmo expoente, a operação de soma da mantissa fica trivial.
Espero ter ajudado a esclarecer.
Qualquer outra dúvida é só perguntar. Obrigado por acompanhar o canal.
Valeu!!
Houve um equívoco no cálculo do "erro relativo". No denominador, utiliza-se o "valor aproximado" e não o "valor real". Se quiser conferir a fonte, favor verificar no livro de Cálculo Numérico (Márcia A. Gomes Ruggiero).
Olá Arthur, tudo bem?
Talvez a edição do livro que vocẽ pegou esteja com algum erro de digitação. Na página 22 do livro do Campos Filho (Algoritmos Numéricos) a fórmula é a mesma que usei. Você pode ver a mesma fórmula no livro iterative methods for sparse linear algebra (tem o pdf nesse endereço www-users.cs.umn.edu/~saad/IterMethBook_2ndEd.pdf) na página 62. Pode ver aqui também nesse link da UFRGS www.ufrgs.br/reamat/CalculoNumerico/livro-py/rdneadm-tipos_de_erros.html Pode ver aqui também na referência do Wolfram mathworld.wolfram.com/RelativeError.html ou até mesmo na versão da wikipédia em inglês en.wikipedia.org/wiki/Approximation_error.
Concordo com você que alguns autores acabam colocando o valor do erro com o valor aproximado no denominador pelo fato de que nem sempre dispomos do valor real. Contudo, a fórmula correta é a apresentada no vídeo.
Obrigado por acompanhar o canal.
Valeu!
@ O livro que consultei chama "Cálculo Numérico - Aspectos Teóricos e Computacionais - 2a.Edição". Autores: Márcia A.Gomes Ruggiero e Vera Lúcia da Rocha Lopes. Departamento de Matemática Aplicada IMECC - UNICAMP.
Será que está errado? Um erro de edição talvez?
Se quiser posso indicar o link pra verificar.
E antes que me esqueça, parabéns pela aula. Boa didática.
@@arthurarthuram , esse seu questionamento é bem pertinente. Eu também tenho esse livro, e foi uma das fontes de consulta. Pelo que vi em outros autores, como nem sempre temos acesso ao valor real, alguns usam o valor aproximado. Vi autores utilizando os dois casos. Eu sou adepto de que o erro absoluto deve ser calculado em relação ao valor real e não o aproximado. Essas outras fontes que te citei também são livros de referência em cálculo numérico e usam o valor real no denominador. No fim das contas acho que ambos estamos corretos. É uma questão de calcular o erro em relação ao valor real ou em relação ao valor aproximado.
O erro relativo também é muito utilizado como critério de parada em métodos iterativos. Como geralmente não temos o valor exato, calculamos a diferença entre dois valores aproximados, sendo que o último valor calculado é o que fica no denominador.
No fim das contas seria um debate sobre que autor está correto ou sobre o que estamos calculando. No fim, ainda acredito que o erro relativo deve ser calculado em relação ao valor real, porém, como existe divergência entre os autores, os dois cálculos podem ser aceitos, estão apenas usando referências distintas.
Obrigado pelo excelente debate. Se você chegar a alguma outra conclusão, compartilha aqui, sempre é bom aprender algo novo.
muito bom!
Poderia me ajudar a listar todos os numeros de um sistema de ponto flutuante definido por
β = 2, t = 3, emin = −1, emax = 2. Estou com muita dificuldade e não encontro nenhum vídeo sobre isso 😥
da onde vc tirou esse 10 elevado a 1, nao entendi
Professor, uma dúvida, o número representado na máquina de ponto flutuante não deve estar em notação cientifica, no caso o número a esquerda da vírgula entre 1 e 9 ?
Olá Erick, tudo bem?
Este é um excelente questionamento. Se você levar em consideração a literatura acaêmica geralmente adotada nos cursos [veja os livros de Neide Bertold Franco, Campos Filho, Burden e Faires]
A notação de ponto flutuante é dada na forma 0.ddd...dd (n-vezes) x base ^expoente, ou seja, Começa com zero mesmo, tem n dígitos (onde o n é determinado pela mantissa) multiplicado pela base elevada a um expoente que deve estar entre o expoente máximo e mínimo.
Isso está regulamentado na norma do IEEE-754, que ressalta que a representação tem o mesmo conjunto de pontos que a notação científica (porém, com a notação começando por zero ponto em todas as referências).
Espero ter te ajudado. Se a dúvida persistir, pode perguntar novamente.
Valeu!
Eu quero entender como o expoente Fica 1 se no exemplo ta -5 ou 5?
Olá Breno, em que parte do vídeo?
Ótimo vídeo.
Obrigado William Rafael
. Sempre procuramos melhorar!! Continue acompanhando nossos vídeos. Valeu!
olá. O erro relativo é definido pelo erro absoluto dividido pelo valor aproximado, logo, os seus cálculos estão errados, pois você calculou o erro relativo como sendo o erro absoluto dividido pelo valor exato de x. Espero ter colaborado.
O arrendondamento deve ser para cima se for
maior ou igual a 5.
Olá Francisco, tudo bem?
Na verdade, quando o dígito for igual a metade da base (que é o número 5 se for a base decimal) o erro entre arredondar para "cima" ou para "baixo" é o mesmo. Vai depender da especificação do seu equipamento/sistema.
Obrigado por acompanhar o canal.
Qualquer dúvida é só perguntar.
Valeu!
quem deu deslike nesse vídeo deve estar com problema
Olá Laís, tudo bem?
Nem sempre a didática agrada né. Já aprendi a conviver com os "deslikes" da vida. Só que não entendo o que pode melhorar, já que os que negativam não deixam sugestões de melhoria.
Obrigado pelo comentário positivo e por acompanhar o canal.
Valeu!
Poderia me falar a bibliografia utilizada?! Desde já agradeço. 😊
Olá Ana Paula, tudo bem?
Geralmente eu uso várias referências, sempre tentando extrair o que há de melhor em cada. São ótimas referências os livros :
1. FRANCO, N.M.B. Cálculo numérico. 1a ed. São Paulo: Prentice Hall.
2. BURDEN, R. L. Análise numérica. São Paulo: Cengage Learning.
3. RUGGIERO, M. A. G.; LOPES, V. L. R. Cálculo numérico: aspectos teóricos e computacionais . 2a ed. São Paulo: Pearson Education
4. Campos Filho. Algoritmos Numéricos - Uma Abordagem Moderna de Cálculo Numérico
ISBN: 9788521635550
Espero ter te ajudado. Qualquer outra dúvida é só perguntar.
Obrigado por acompanhar o canal!
Valeu!
em 13:37, creio que esta errado os sinais dos expoentes, pois vc caminhou a virgula para a direita, logo o sinal era pra ser positivo e não negativo o 0,000000073 o mesmo problema se repete no 423578319.
O certo é ER = |X - X'|/X '...?
Olá Francisco, tudo bem?
Se x é o valor exato e x' é a aproximação, a fórmula |x-x'|/x mede o erro relativo em relação ao valor exato, que é o que normalmente calculamos. A fórmula que coloquei está correta. Você pode conferir em outros materiais online:
Na página 23 deste arquivo
conteudo.icmc.usp.br/pessoas/andretta/ensino/aulas/sme0500-1-12/reprnum.pdf
Na página 12 deste outro arquivo
ufsj.edu.br/portal2-repositorio/File/prof_ngoulart/notas_aula/Calculo_Numerico_Erros.pdf
Obrigado por acompanhar o canal. Qualquer outra dúvida é só perguntar.
Valeu!!
Por que na primeira conta tu adicionou mais um zero ao número 0,064 transformando-o em 0,0064?
Olá Alison, tudo bem?
Apesar de não ter diferença numérica, tentei facilitar a operação deixando tudo na mesma escala. Observe que:
0,064 x 10⁰ = 0,0064 x 10¹
Valeu!!
Achei que vi de tudo mais essa ta difícil pegar.
Olá Naelson, tudo bem?
Tem uns conteúdos que não são fáceis de entender de primeira. É bom ler a bibliografia recomendada, ver o vídeo novamente, procurar mais material na internet... uma hora acaba ficando mais fácil de entender. O importante é não desistir.
Obrigado por acompanhar o canal. Qualquer dúvida, é só perguntar. Se eu puder ajudar, pode contar com a ajuda!
Valeu!
olá, to tentando calcular o erro de x=0,8542028 com x1=0,8542 mas ele da um numero com erro na calculadora. Como fazer isso? obrigado!
Qual o erro que aparece?
@ na calculadora fica um E em cima do numero, não consigo resultado :(
@@daesk Algumas calculadoras ficam configuradas no modo de representação científico. O resultado apresentado na calculadora seria 2.8E-06 ?(que seria a mesma coisa que 2.8 x 10^-6)
sim, mas no caso está dando 3,2 com E06, ent é 3.2 x 10^-6? se sim vou colocar aqui. mt obrigado!
@@daesk o resultado seria 2.8x10^-6 (será q não digitou algo errado na calculadora?)
Ué mais eu coloquei 1/3*3 e 3*1/3 e deram o mesmo resultado aqui na linguagem de programação!
Olá Matheus, tudo bem?
Isso se deve à linguagem utilizada, a precisão dos dados e também da norma IEEE754. Ou talvez seja apenas visual e ocorreu algum erro na última casa decimal. Para ter realmente certeza da igualdade, coloque a seguinte ideia no código.
x = 3 * 1/3;
y = 1/3 * 3;
if (x==y) printf "são iguais"
else printf "não são iguais"
O exemplo dado no vídeo, com apenas 2 casas decimais, teve por objetivo ilustrar que esse tipo de erro realmente acontece (principalmente quando forçamos os limites computacionais).
Tem um material que pode te ajudar nesse entendimento.
graphics.stanford.edu/courses/cs205a-13-fall/assets/notes/chapter1.pdf
www.cs.colorado.edu/~lizb/chaos/error.pdf
home.iitk.ac.in/~pranab/ESO208/rajesh/03-04/error3.pdf
Espero ter te ajudado com este conceito. Qualquer outra dúvida é só perguntar.
Valeu!
@ Simplesmente incrivel, consegui e vi que de fato de FALSE! estou usando C e compilando com o GCC!
Porem nao compreendi uma coisa, por exemplo, 3*1/3 = 1 porem... porque 1/3*3 = 0.0000000000000000000000000000000000 e nao 0.9 ou algo proximo disso! Ocorreu um BufferOverflow?
@@matheusvianna3067 tudo bem?
O resultado da comparação vai ser falso para alguns compiladores e verdadeiro para outros (testei no GCC e não deu erro, ou seja, 1 ==1).
www.cs.technion.ac.il/users/yechiel/c++-faq/floating-point-arith.html
"The above "surprise" message will appear on some (but not all) compilers/machines."
Quanto ao valor 1/3*3 = 0, provavelmente isso se deu por todos os valores serem "inteiros". Experimenta colocar a= 1.0/3*3 (esse zero já força o tipo de dado). Ou ainda:
double x=1;
double a = x/3*3
Que o valor vai aparecer correto.
Um exemplo de operações simples que resultam em erro numérico (que aparecem quando compilamos e executamos rsrsrs) pode ser visto em:
stackoverflow.com/questions/2785601/c-numerical-truncation-error
Espero ter te ajudado. Qualquer outra dúvida é só voltar a perguntar.
Valeu!
pooo. nao to entendo mais é nada. ta mto corrido a explicação.podia explicar com mais detalhamento ,de onde vem os valores.
Olá Ronaldo, tudo bem?
Então, os vídeos são um complemento do material visto nas aulas presenciais e nos livros base. contudo, com essa pandemia, muitos estão tendo que aprender quase tudo remotamente. Um vídeo mais detalhado ficaria muito grande e cansativo (para a maioria). Mas, diz aí quais foram as tuas principais dúvidas que tento te ajudar.
Obrigado por acompanhar o canal.
Valeu!!
@ assiti outros videos e voltei aqui e consegui entender . no caso ai eu achei melhor reduzir a mantissa para dois digito só no final de tudo .fui somano normal e no resultado que reduzi para 2 digitos,deu certo tb. vlw professor obg ai
PELO AMOR DE DEUS PARA QUE SERVE ISSO???????
Olá Élcio, tudo bem?
Serve para entender as limitações dos equipamentos de cálculo eletrônico e também que tipos de erros podem surgir nos cálculos utilizando os mesmos. Qualquer dúvida é só perguntar.
Obrigado por acompanhar o canal.
Valeu!
@ Boa tarde, me desculpe pois não quis ser ofensivo e pejorativo, na realidade pretendo fazer faculdade de Engenharia Civil e como todos sabem os primeiros anos são dificeis e para não ficar com cara de "ue" nas primeiras aulas, pois estudei essas materias a mais de 40 anos pois tenho 58 anos então resolvi assistir os videos porém é dificil reaprender tudo. Obrigado.
@@elciolaurenti4792, eu entendi seu comentário e de forma alguma achei ofensivo!! Algumas vezes é até difícil achar uma aplicação em quenós precisamos efetuar alguma intervenção no dia-a-dia. Este conteúdo é importante por ajudar a compreender que as máquinas possuem limitações nos cálculos e que o bom senso de quem vai analisar o resultado continua imprescindível. E aí é o seu papel como futuro engenheiro, analisar o resultado e verificar se está coerente ou não.
Obrigado pelos comentário e também pela paciência.
Valeu!
Explica melhor essa desgraça por favor