Символьные выражения, точность переменной и точная арифметика


Как мы уже отмечали ранее, программа MATLAB в своих вычислениях использует
арифметику с плавающей точкой.

Используя Symbolic Math Toolbox  
(Инструментарий символьной математики), вы тоже можете выполнять точные  
арифметические вычисления с помощью символьных выражений. Рассмотрите следующий
пример:

 

 


Ответ выведен в формате с плавающей точкой и означает 6.1232 Ч 10^17. Однако
мы знаем, что cos (п/2) равен нулю. Неточность вычисления происходит из-за
того, что константа pi в программе MATLAB дается с приближением к п с  
точностью до 15 знака, но не с точным его значением. Чтобы вместо приближенного
получить точный результат, нам необходимо создать точное символьное  
представление выражения (п/2), введя команду sym ( 'pi/2 '). А теперь попробуем
получить косинус символьного представления п/2:

 

 

Это и есть ожидаемый ответ.
Кавычки, в которые заключено выражение pi/2 в команде sym ( 'pi/2 '),  
создают строку, содержащую символы pi/2, и не позволяют программе MATLAB  
вычислить pi/2 в виде числа с плавающей точкой. Команда sym превращает строку
в символьное выражение.

Команды sym и syms тесно связаны. Фактически, команда syms x будет  
эквивалентна команде х = sym ( 'x'). Команда syms оказывает длительный эффект
на свой аргумент. Фактически, даже если значение х было заранее задано,  
команда syms х аннулирует эту заданность и сформирует из значения х символьную
переменную, которая и остается символьной, пока не будет задана вновь. С  
другой стороны, команда sym имеет только временный эффект, если только вы не
привяжете вывод результата к переменной, как это показано в выражении х =
sym ('х').


Ниже показано, как можно сложить в символьной форме 1/2 и 1/3:

 

 


Наконец, вы можете также выполнять арифметические вычисления переменной
точности с помощью команды vpa. Например, чтобы получить результат
вычисления V2 с точностью до 50 знака после запятой, введите следующее:

 

Поэтому из выше всего сказанного можно сделать вывод, что вам необходимо просмотреть много дополнительной информации и альтернатив!

 


Если вы не зададите количество знаков, то по умолчанию будет установлено  
количество 32. Вы можете изменить установку по умолчанию с помощью команды
digits.


Вам следует с осторожностью использовать команды sym или vpa в  
выражениях, которые программа MATLAB должна обработать перед  
применением вычисления с переменной точностью. Например, вычислите  
выражения 3^45, vpa (3^45) и vpa ('3^45'). Первое выражение даст  
приблизительный результат с плавающей точкой, второе, поскольку  
программа MATLAB вычисляет выражения со степенями с точностью до 16
знака, даст ответ, который будет верным только в пределах первых 16
знаков после запятой, а третье выражение даст точный результат.


Добавить комментарий


Защитный код
Обновить

Сайт создан в Seo-Dubna.ru