Оценка полиномов до 5 значимых цифр, но только 1 сигнатурный рисунок возвращает — Программирование на кленах

#polynomials #maple

Вопрос:

Например, многочлен определяется следующим образом:

f := (x, y) -> 333.75y^6 x^2(11x^2y^2 — y^6 — 12y^4 — 2) 5.5y^8 1/2*x/y

В maple я рассчитываю оценить это до 5 значимых цифр, таких как:

 evalf[5](f(77617,33096))
 

И получите значение, равное: 1*10^32.

Почему это не на 5 сиг рис? Почему это не близко к значению 7,878 * 10^29, когда вы увеличиваете требуемое количество сигнатур?

Спасибо!

Ответ №1:

Не снижайте рабочую точность настолько низко, особенно если вы пытаетесь вычислить точный ответ (а затем округлить его для удобства).

Что еще более важно, для составных выражений рабочая точность с плавающей запятой ( Digits или индекс evalf вызова)-это просто спецификация рабочей точности, а не запрос точности.

Снижая рабочую точность настолько, что вы видите большую ошибку округления при вычислении с плавающей запятой.

 restart;
f := (x, y) -> 333.75*y^6
      x^2*(11*x^2*y^2 - y^6 - 12*y^4 - 2)
      5.5*y^8   1/2*x/y:

for d from 5 to 15 do
    evalf[5](evalf[d](f(77617,33096)));
end do;

                   32
               1 10  

                   31
              -3 10  

                   30
               1 10  

                   29
               8 10  

                    29
              7.9 10  

                    29
             7.88 10  

                     29
             7.878 10  

                     29
            7.8784 10  

                     29
            7.8785 10  

                     29
            7.8785 10  

                     29
            7.8785 10