Комплектование по степеням

Функция collect (S,v) обеспечивает комплектование выражений в составе вектора или матрицы S по степеням переменной v. А функция collect (S) выполняет аналогичные действия относительно переменной, определяемой функцией findsym. Примеры применения данной функции:

>> syms х у

» S=[хА3*уА2+хА2*у+3*х*уА2 хА4*у-у*хА2];

>> collect (S,х)

ans =

[ хА3*уА2+хА2*у+3*х*уА2, хА4*у-хА2*у]

» collect(S,у)

ans =

[ (хА3+3*х)*уА2+хА2*у, (хА4-хА2)*у]

» collect(S)

ans =

[ хА3*уА2+хл2*у+3*х*уА2, хА4*у-хА2*у]

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

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

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

4

d =

5

» syms x у

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

у*(xA2+l)

d = x

Приведение к схеме Горнера

Функция horner(P) возвращает символьный полином или массив символьных полиномов Р, преобразованный по схеме Горнера, минимизирующей число операций умножения. Пример:

» x=sym('р');

» home г (хА5-2*хА 4-3*хА3-2*хА2-5*х-б)

ans =

-6+(-5+(-2+(-3+(-2+р)*р)*р)*р)*р

>> horner([хА3+хА2+х,(хлЗ+1)*(хА2+2)*(х+3)]) ans =

[ (1+(1+х)*х)*х, (хА3+1)*(хА2+2)*(х+3)]

Запись с подстановками

Функция

[Y, SIGMA]=subexpr(X,SIGMA) ИЛИ [Y,SIGMA]=subexpr(X,'SIGMA') преобразует символьное выражение X, обеспечивая при этом подстановку SIGMA. Для представления подвыражений используются обозначения %1, %2 и т. д.

Пример:

» t=solve ( 'а*хА3+Ь*х+с=0');

» [г,s]=subexpr(t,'s') г =

[ l/6/a*sA (1/3)-2*b/sA(1/3) ]

[ -l/12/a*sA (1/3)+b/sA(1/3)+l/2*i*3A(1/2)*(l/6/a*sA(1/3)+2*b/sA(1/3)) ]

[ -l/12/a*sA(1/3)+b/sA(1/3)-l/2*i*3A(1/2)*(l/6/a*sA(1/3)+2*b/sA(1/3)) ] s =

(-108*c+12*3A(l/2)*((4*bA3+27*cA2*a)/a)A(1/2))*aA2

Обеспечение подстановок

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

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

  • • subs (S,new) — заменяет все свободные символьные переменные в S из списка new;
  • • subs (S,OLD,NEW) — заменяет OLD на NEW в символьном выражении S. При одинаковых размерах массивов old и new замена идет поэлементно. Если s и old — скаляры, a new — числовой массив или массив ячеек, то скаляры расширяются до массива результатов.

Если подстановка subs (S, old, new) не меняет s, то выполняется подстановка subs (S,NEW,OLD) .

• subs (S,OLD,NEW, 0) — исключает попытку обратной подстановки. Примеры:

>> syms а b х у;

>> subs(х-у,у,1)

ans =

х—1

>> subs(sin(x)+cos(y),[х,у],[а,Ь])

ans =

sin (a)+cos(b)

>> subs(exp(а*х),a,-magic(3) )

ans =

[ exp(-8*х), [ exp(-3*х), [ exp(-4*х),

exp (—х), exp(-5*х), exp(-9*х),

exp(—6*х)] exp(-7*х)] exp (-2*х)]

Обращение функции

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

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

Примеры:

>> syms х

» finverse(sinh (x))

ans =

asinh(x)

>> finverse(exp(x) )

ans =

log (x)

Суперпозиция функций

К числу часто встречающихся в символьной математике манипуляций с функциями относится суперпозиция функций, реализуемая функциями compose:

  • • compose (f,g) — возвращает ДДу)), где f = fix) и g = giy). Независимые переменные х и у находятся с помощью функции findsym;
  • • compose (f, g, z) — возвращает ДД г)), где f = Дх), g = giy);
  • • compose (f, g, x, z) — возвращает figiz)) и при этом рассматривает х как независимую переменную для функции f Так, если f = cos(x/i), то compose (f, g, х, z) возвращает cos(g(^)/Z), a compose (f, g, t, z) возвращает cos(x/g(z));
  • • compose (f, g, x, y, z) — возвращает ДД^)) и рассматривает х как независимую переменную для функции f и у как независимую переменную для функции g. Для/= cos(x/Z) и g = sin(y/w) compose (f, g, х, у, z) возвращает cos(sinU/w)//), a compose (f,g,x,u, z) возвращает cos(sin(y/^)/0.

Следующие примеры поясняют применение функции compose: syms х у z t u;

f = 1/(1 + хЛ2); g = sin(y); h = xAt; p = exp(-y/u);

compose(f,g)

возвращает

1/(1+sin(у)'

'2)

compose(f,g,t)

возвращает

1/ (1 + sin (t)'

42)

compose(h,g,x,z)

возвращает

sin (z) At

compose(h,g,t,z)

возвращает

xAsin (z)

compose(h, p, x, y, z)

возвращает

exp(-z/u)At

compose(h,p,t,u,z)

возвращает

хЛехр(-y/z)

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >