MATLAB в инженерных и научных расчетах

       

Символьные операции с выражениями


1. Функция упрощения выражений – simplify  

Функция simplify(S) поэлементно упрощает символьные выражения массива S. Если упрощение невозможно, то возвращается исходное выражение.

 Примеры:

» syms a b x;

» V = [sin(х)^2 + соs(х)^2   log(a*b)]

» simplify(V)

ans =

      [    1,    log(a*b)]

» simplify((a^2 - 2*a*b + b^2) / (a - b))

ans =

      a – b

Дополнительные возможности упрощения обеспечивает функция  simple.

2. Функция расширения (раскрытия скобок) выражений   -  expand

Функция expand(S) расширяет выражения, входящие в массив S. Ра­циональные выражения она раскладывает на простые дроби, поли­номы — на полиномиальные разложения и т. д. Функция работает со многими алгебраическими и тригонометрическими функциями.

Примеры:

» syms a b x;



» S=[(x + 2)*(x + 3)*(x + 4)      sin(2*x)];

» expand(S)

ans =

[ x^3 + 9*x^2 + 26*x + 24 ,  2*sin(x)*cos(x)]

» expand(sin(a + b))

ans =

sin(a)*cos(b) + cos(a)*sin(b)

» expand((a + b)^:3)

ans =

       а^3 + 3*а^2*Ь + 3*а*Ь^2 + Ь^3

3. Разложение выражения на простые множители – factor

Функция factor(S) поэлементно разлагает выражения вектора S на простые множители, а целые числа — на произведение простых чи­сел. Следующие примеры иллюстрируют применение функции:

» x=sym('х');

» factor(x^7-l)

ans =

        ( х – 1 )*( х^6 + х^5 + х^4 + х^3 + х^2 + х + 1 )

» factor(х^2 – х - 1)

ans =

        хА2 – х - 1

» factor(sym('123456789'))

ans =

     (3 )^2*(3803)*(3607)

4. Комплектование по степеням – collect

Функция co11ect(S,v) обеспечивает комплектование выражений в со­ставе вектора или матрицы S по степеням переменной v.

5. Упрощение выражений – simple

Функция simple(S) выполняет различные упрощения для элементов массива S и выводит как промежуточные результаты, так и самый ко­роткий конечный результат. В другой форме — [R, HOW] = simple(S) – промежуточные результаты не выводятся.

6. Приведение к рациональной форме – numden

Функция [N,D] = numden(A)  преобразует каждый элемент массива  А  в рациональную форму в виде отношения двух неприводимых полиномов с целочисленными коэффициентами. При этом N и D — числители и знаменатели каждого преобразованного элемента массива.


Примеры:

» [n,d] = numden(sym(8/10))

n =

4

d =

5

» syms x  y

» [ n, d ] = numden (x*y + y / x)

n =

y*(x^2 + 1)

d =

x

7. Обеспечение подстановок – subs

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

•     subs(S) — заменяет в символьном выражении S все переменные их символьными значениями, которые берутся из вычисляемой функции или рабочей области системы MATLAB.

•     subs(S,NEW) — заменяет все свободные символьные переменные в S из списка NEW.

•     subs (S, OLD, NEW) — заменяет OLD на NEW в символьном выражении S. При одинаковых размеров массивов OLD и NEW

замена идет поэле­ментно. Если S OLD — скаляры, a NEW — числовой массив или массив ячеек, то скаляры расширяются до массива результатов.

Пример:

» syms a  b  x  у;

» subs(x - y, y, l)

ans =

      x - l

» subs(sin(x) + cos(y), [x,y], [a,b])

ans =

      sin(a)+cos(b)

8. Обращение функции – finverse  

Часто возникает необходимость в задании функции, обратной по от­ношению к заданной функции f . Для этого в Symbolic имеется функ­ция обращения inverse, которая задается в двух формах:

•     g = finverse(f) — возвращает функцию, обратную к f. Считается, что f — функция одной переменной, например 'х'. Тогда g(f(x)) = х.

•     g = finverse(f,v) — возвращает функцию, обратную к f, относитель­но заданной переменной v, так что g(f(v)) = v. Эта форма исполь­зуется, если f — функция нескольких переменных.

Примеры:

» syms х

» finverse(sinh(x))

ans =

      asnnh(x)

» finverse(expCx))

ans =

      log(x)

9. Суперпозиция функций – compose

•     compose(f, g) — возвращает f(g(y)), где f = f(x) и g = g(y). Незави­симые переменные х и у находятся с помощью функции findsym.


Содержание раздела