Erro de arredondamento ou truncamento no Scilab
[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Erro de arredondamento ou truncamento no Scilab



Olá pessoal,

Quem vos fala é Maurício, um dos monitores de MAC 315.

Eu estava resolvendo o exercício 1.4.2, da lista 4, utilizando o
programa 'enumeracao-explicita.sci', e percebi que o Scilab apresentava
a resposta errada para o problema.

Este problema é solúvel, e o programa dizia ser ilimitado.

O que aconteceu foi que o Scilab introduziu erros nos
cálculos (inversas, produtos de matrizes, etc.) enquanto
procurava por direções de ilimitação, ou seja, enquanto
resolvia o sistema:

    [A; ones(1,n)] * h == [zeros(m,1);1], com h >= 0.

Ele encontrou uma direção próxima da verdadeira, que é
[0; 0; .5; .5; 0; 0].

Quando a direção correta fosse multiplicada pelo vetor
    c = [5; -2; 1; -1; 0; 0],

deveria obter valor igual a 0 (zero), indicando que a função
objetivo não aumenta nesta direção, não caracterizando ilimitação.

Devido aos erros de cálculo, ele obtém 5.551E-17 > 0 como
resultado, acreditando então que o problema é ilimitado.

Eu avisei o Leônidas sobre o erro, e ele testou o programa na rede IME,
e o resultado obtido estava correto.

Testei novamente o mesmo programa na rede Linux, e o problema apareceu
novamente, indicando que isto é um problema com o Scilab.

Erros como este são bastante comuns quando tentamos resolver problemas
numericamente.


O programa com a matriz e os vetores que geraram este erro estão em

http://www.ime.usp.br/~leo/mac315/00/exemplos/enumeracao-explicita.sci


Vale a pena dar uma olhada.


Maurício