Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
5
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

Часть 5. Символьные вычисления

§ 2.25. Создание символьных переменных, выражений и матриц

2.25.1. Создание символьных переменных.

Основной аналитических вычислений в системе MATLAB является символьная переменная. Для ее создания используется функция sym, имеющая следующий синтаксис:

имя_переменной=sym(имя_переменной)

Создадим, например, три символьных переменных a, b и с:

>> a=sym('alpha')

a =

alpha

>> b=sym('beta')

b =

beta

>> c=sym('c')

c =

c

Для одновременного задания нескольких переменных можно воспользоваться командой syms, обращение к которой имеет вид:

syms имя_переменной1 имя_переменной2 имя_переменной3

Так для уже рассмотренных трех переменных a, b и с будем иметь:

>> syms a b c

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

>> x=sym('x','real')

x =

x

>> y=sym('y','real')

y =

y

Комплексную переменную можно создать следующим образом:

>> syms x y real

>> z=x+i*y

z =

x + y*i

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

>> sym('x','clear'); sym('y','clear');

или, что эквивалентно,

>> syms x y clear

2.25.2. Создание символьных выражений.

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

Создание символьных выражений осуществляется командой:

sym('символьное выражение')

Так, например, для создания символьной переменной, содержащей выражение , следует выполнить команду

>> f=sym('a*x^2+b*x+c')

f =

a*x^2 + b*x + c

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

>> syms a b c x

>> f=a*x^2+b*x+c

f =

a*x^2 + b*x + c

У функции вида sym(name) есть важная особенность. Если в качестве параметра name выступает число или массив чисел, то в результате выполнения функции sym будет получено соответствующие аналитические представления чисел в виде рациональных дробей. Так, например, имеем:

>> x=2.7

x =

2.7000

>> a=sym(x)

a =

27/10

>> a/0.4*7

ans =

189/4

Для создания абстрактной функции следует записать:

>> clear

>> f=sym('f(x)')

f =

f(x)

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

>> df1=(subs(f,'x','x+h')-f)/'h'

df1 =

(f(h + x) - f(x))/h

>> df2=(subs(f,'x','x-h')-2*f+subs(f,'x','x+h'))/'h^2'

df2 =

(f(x - h) + f(h + x) - 2*f(x))/h^2

Отметим, что символьные выражения в приведенном примере выводятся в одну строку, что не всегда удобно. Для того, чтобы получить выражение в виде, принятом в классической математике, можно использовать функцию:

[name]=pretty(expr [, n])

где expr – символьное выражение; n – параметр, задающий количество позиций в строке вывода (по умолчанию равный 79)

Продолжая рассматриваемый пример, будем иметь:

>> pretty(df1)

f(h + x) - f(x)

---------------

h

>> pretty(df2)

f(x - h) + f(h + x) - 2 f(x)

----------------------------

2

h

Созданные таким образом функции df1 и df2 рассматриваются как единые переменные. Для того, чтобы иметь возможность менять значения переменных x и h, следует описать переменные как символьные:

>> syms x h

>> df1=(subs(f,x,x+h)-f)/h

df1 =

(f(h + x) - f(x))/h

>> df2=(subs(f,x,x-h)-2*f+subs(f,x,x+h))/h^2

df2 =

(f(x - h) + f(h + x) - 2*f(x))/h^2

при этом внешний вид функций df1 и df2 остается неизменным (использованная в примере функция subs будет пояснена в дальнейшем изложении).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]