Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
для вялички / TROPA V MATLAB_21.doc
Скачиваний:
101
Добавлен:
13.02.2016
Размер:
2.79 Mб
Скачать

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

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

Для создания символьных переменных или объектов используется команда sym.

Например, команда

>>x=sym('x')

x =

x

возвращает символьную переменную с именем 'x' и записывает результат в х.

Команда x=sym('x','real') дополнительно определяет x как вещественную переменную. Аналогично x=sym('x','positive') определяет x как положительную (вещественную) переменную, а x=sym('x','unreal') – как чисто формальную переменную (т. е. не обладающую никакими дополнительными свойствами).

Для создания группы символьных объектов служит команда syms.

Команда

>> syms a b c

создает символьные переменные с именами a, b, c.

Команда

>> Pi=sym('pi');

создает символьное число Pi = π, не обладающее погрешностью представления числа π в формате с плавающей запятой. Результаты операций с символьным Pi выражаются не в числовой, а в символьной форме. Следовательно, пакет Symbolic позволяет получить точные значения тригонометрических функций (и их рациональных комбинаций) от аргумента π в виде выражений, включающих квадратные корни из рациональных чисел, если такие выражения существуют и могут быть найдены системой. Например, точное значение sin равно

>> S=sin(Pi/5)

S =

1/4*2^(1/2)*(5-5^(1/2))^(1/2)

Символьное выражение S выведено в командное окно в одну строку.

Команда pretty(S) выводит в командное окно символьное выражение S в формате близком к математическому:

>> pretty(S)

1/2 1/2 1/2

1/4 2 (5 - 5 )

Теперь очевидно, что

sin = .

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

Например,

>> F=sym('x+y')

F =

x+y

Команда syms без аргументов выводит список символьных объектов, имеющихся в рабочем пространстве.

При запросе о наличии символьных переменных в памяти после выполнения предыдущего примера

>> syms

'F'

получен ответ 'F', т. е. входящие в выражение переменные x и y не являются символьными. Их нельзя использовать в качестве аргументов в дальнейших символьных вычислениях.

Изменим рассмотренный выше ввод символьного выражения F следующим образом:

>> syms x y

>> F=x+y

F =

x+y

>> syms

'F' 'x' 'y'

Теперь переменные x и y вначале получили статус символьных, а сконструированное из них выражение F приобрело статус символьного автоматически.

7.2 Вычисления с использованием арифметики произвольной точности

MATLAB обычно ведет вычисления с числами, представленными в формате плавающей точки с двойной точностью. Это довольно высокая точность, обеспечивающая потребности практических вычислений в прикладных задачах. Однако ряд задач теории чисел, численного кодирования и некоторых других требует выполнения вычислений вообще без какой - либо погрешности или со сколь угодно малой погрешностью. Такие вычисления не очень удачно называют арифметикой произвольной точности: правильнее говорить о точной арифметике.

Для проведения вычислений в арифметике произвольной точности служит команда vpa:

R=vpa(S) – возвращает результат вычислений символьного выражения S, используя арифметику произвольной точности с текущим числом цифр D, установленным функцией digits. Результат R имеет тип sym;

R=vpa(S,D) – возвращает результат вычислений выражения S с текущим числом цифр D.

Переменная S может быть символьным массивом.

Примеры:

>>vpa(exp(1),50)

ans =

2.7182818284590455348848081484902650117874145507813

>>vpa([2*pi,exp(1),log(2)],10)

ans =

[ 6.283185308, 2.718281828, .6931471806]

Команда digits служит для установки числа цифр в числах арифметики произвольной точности. Она используется в одном из следующих вариантов:

digits – возвращает число значащих цифр в числах арифметики произвольной точности (по умолчанию 32);

digits(D) – устанавливает заданное число цифр D для арифметики произвольной точности.

Примеры вычисления числа π с 32 и 6 значащими цифрами:

>>digits

Digits = 32

>>vpa pi

ans =

3.1415926535897932384626433832795

>> digits 6

>> vpa pi

ans =

3.14159

Соседние файлы в папке для вялички