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

2.25.3. Создание символьных матриц.

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

>> syms x y z

>> A=[x y z; y z x; z x y]

A =

[ x, y, z]

[ y, z, x]

[ z, x, y]

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

>> sum(A(1,:))

ans =

x + y + z

>> sum(A(:,2))

ans =

x + y + z

>> sum(A(1,:))==sum(A(:,2))

ans =

x + y + z == x + y + z

>> syms beta

>> A=subs(A,y,beta)

A =

[ x, beta, z]

[ beta, z, x]

[ z, x, beta]

При использовании функции sym , как уже отмечалось, получим:

>> X=[1/2 1/3; 1/4 1/7]

X =

0.5000 0.3333

0.2500 0.1429

>> A=sym(X)

A =

[ 1/2, 1/3]

[ 1/4, 1/7]

>> 2*A

ans =

[ 1, 2/3]

[ 1/2, 2/7]

§ 2.26. Символьные вычисления

2.26.1. Символьное дифференцирование.

Символьное дифференцирование в MATLAB выполняет команда

diff(func [, var, n])

где func – символьная запись функции или ее имя; var – переменная дифференцирования (если этот параметр отсутствует, то в качестве переменной дифференцирования будет выбрана первая по алфавиту символьная переменная); n – порядок (номер) производной, которую требуется определить (по умолчанию ищется первая производная).

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

Вычислим, например, производную от по переменной :

>> syms a x

>> f=cos(a*x)

f =

cos(a*x)

>> diff(f)

ans =

-a*sin(a*x)

Вычислим производную от функции по переменной :

>> syms x y n

>> y=x^n

y =

x^n

>> diff(y,x)

ans =

n*x^(n - 1)

Вычислим производную от функции по переменной :

>> syms a b t

>> y=sin(a*t+b)

y =

sin(b + a*t)

>> diff(y,t)

ans =

a*cos(b + a*t)

Вычислим теперь производную от функции по параметру :

>> syms a x

>> f=cos(a*x)

f =

cos(a*x)

>> diff(f,a)

ans =

-x*sin(a*x)

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

>> diff(f,2)

ans =

-a^2*cos(a*x)

>> diff(f,a,2)

ans =

-x^2*cos(a*x)

Вычислим производную четвертого порядка от по переменной :

>> diff('tan(x)',x,4)

ans =

16*tan(x)*(tan(x)^2 + 1)^2 + 8*tan(x)^3*(tan(x)^2 + 1)

Рассмотрим теперь примеры отыскания производных функций многих переменных различных порядков.

Вычислим частные производные от функции по переменным и :

>> syms x y

>> diff('y^2/3-x^2/5-1',x)

ans =

-(2*x)/5

>> diff('y^2/3-x^2/5-1',y)

ans =

(2*y)/3

Вычислим частные производные второго порядка от функции по переменным и :

>> diff('sin(x)-ln(y)',x,2)

ans =

-sin(x)

>> diff('sin(x)-ln(y)',y,2)

ans =

1/y^2

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

>> syms t

>> x=sym('3*cos(t)^3')

x =

3*cos(t)^3

>> y=sym('3*sin(t)^3')

y =

3*sin(t)^3

>> diff(y)/diff(x)

ans =

-sin(t)/cos(t)

Вычислим производную от матрицы

.

Имеем:

>> A=[cos(a*x) sin(a*x); -sin(a*x) cos(a*x)]

A =

[ cos(a*x), sin(a*x)]

[ -sin(a*x), cos(a*x)]

>> diff(A)

ans =

[ -a*sin(a*x), a*cos(a*x)]

[ -a*cos(a*x), -a*sin(a*x)]

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

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