Символьні вирази, точність змінної і точна арифметика

Як ми вже відзначали раніше, програма 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 знака після коми, введіть наступне:

ans =
1.414213 562373 0950488016887242096980785696718753769


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


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

← Попередня Matlab вектор

Підстановка в символьних виразах Наступна →

Схожі статті