Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методички / Конс_лекц2.doc
Скачиваний:
56
Добавлен:
17.09.2018
Размер:
528.9 Кб
Скачать

5 Разложение выражений на простые множители – команда factor

Команда factor(S) поэлементно разлагает символьные выражения массива S на простые множители, а целые числа – на произведение простых чисел.

Примеры:

>>x=sym('x');

>>factor(x^7-1)

ans =

(x-1)*(x^6+x^5+x^4+x^3+x^2+x+1)

>>factor(sym('123456789'))

ans =

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

Пусть требуется найти определитель D (команда det) и обратную матрицу A-1 (команда inv) символьной матрицы

A = .

Решение:

>> syms a b

>> A=[a b;a^2 b^2]

A =

[ a, b]

[ a^2, b^2]

>> D=det(A)

D =

a*b^2-b*a^2

>> factor(D)

ans =

-a*b*(-b+a)

>> A1=inv(A)

A1 =

[ -b/a/(-b+a), 1/a/(-b+a)]

[ a/b/(-b+a), -1/b/(-b+a)]

6 Приведение подобных членов – команда collect

Команда collect(S, v) работает с символьными полиномами S нескольких переменных, где v – одна из переменных полинома. Эта функция возвращает разложение полинома S по степеням v (S может быть массивом полиномов).

Примеры:

>>syms x y

>>S=[x^3*y^2+x^2*y+3*x*y^2,x^4*y-y*x^2];

>>collect(S,x)

ans =

[ x^3*y^2+x^2*y+3*x*y^2, x^4*y-x^2*y]

>>collect(S,y)

ans =

[ (x^3+3*x)*y^2+x^2*y, (x^4-x^2)*y]

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

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

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

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

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

Примеры:

>>syms a b x y;

>>subs(x-y,y,1)

ans =

x-1

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

ans =

sin(a)+cos(b)

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

>> s=sym('x^(x+1)');

>> f=subs(s,'x',1.5)

f =

2.7557

Число можно заменить его символьным представлением и затем найти значение функции с произвольной точностью при помощи команды vpa:

>> f=subs(s,'x','1.5')

f =

(1.5)^((1.5)+1)

>> vpa(f,40)

ans =

2.7556759606310753604719445840441

8 Вычисление пределов – команда limit

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

limit(F,x,a) – возвращает предел символьного выражения F в точке x = a;

limit(F,x,a,'right') или limit(F,x,a,'left') – возвращает предел в точке a справа или слева.

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

а) ; б) с) ; д) ;

е) ; ж) .

Решения в указанном порядке имеют вид:

>> syms a x

>> limit(sin(a*x)/(a*x),x,0)

ans =

1

>> limit((1+3/x)^(2*x),x,inf)

ans =

exp(6)

>> limit(1/(1-x),x,1)

ans =

NaN

Здесь переменная NaN означает, что предела функции в точке x = 1 не существует.

>> limit(1/(1-x),x,1,'right')

ans =

-inf

Правосторонний предел функции в точке x = 1 существует и равен - ∞.

>> limit(1/(1-x),x,1,'left')

ans =

inf

Левосторонний предел функции в точке x=1 существует и равен +∞.

>> limit(x*(log(a+x)-log(x))/5,x,inf)

ans =

1/5*a

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