Вычисления матрицы Якоби

Матрица Якоби вычисляется для системы функций и в общем случае представляет собой прямоугольную матрицу. Число строк равно числу функций в системе, число столбцов — числу аргументов. Матрица Якоби записывается в виде

эд

эд

ЭД

Эх,

Эх2

Эх„

ЭЛ

ЭЛ

ЭЛ

J =

Эх,

Эх2

Эх,„

ЭЛ

ЭД,

ЭЛ

Эх,

Эх2

Эх„,

Для ее вычисления используется функция jacobian:

• jacobian (f,v) — возвращает матрицу Якоби для скаляра или вектора f по вектору переменных v. Каждый (/, у)-й элемент матрицы представляет собой частную производную df/dv,.

Примеры:

>> syms х у z;

» F=[хЛ2;x+y/z;x*z];

» v= [х, у, z] ;

>> J=jacobian(F,v)

J =

[2*х,

0,

0]

[ 1,

1/z,

-у/гЛ2]

[ z,

0,

х]

» v=[x,y];

>> jacobian(F,v)

ans =

[ 2*x, 0]

[ 1, 1/z]

[ z, 0]

>> jacobian(x*y,v)

ans =

[ У, x]

Вычисление сумм рядов

В математическом анализе часто приходится вычислять суммы некоторой функции ДУ) для целочисленных значений аргумента / от а до Ь:

ь

Sum =

i=a

Такие суммы принято назвать конечными. При b - °° можно говорить о бесконечной сумме (в смысле бесконечности числа членов ряда).

Для аналитического вычисления суммы ряда служит команда symsum:

  • • symsum(S) — возвращает символьное значение суммы бесконечного ряда по переменной, найденной автоматически с помощью функции findsym;
  • • symsum(S,v) — возвращает сумму бесконечного ряда по переменной v;
  • • symsum(S,а,Ь) и symsum (S, v, а, Ь) — возвращает конечную сумму ряда в пределах номеров слагаемых от а до Ь.

Примеры на вычисление сумм даны ниже:

>> x=sym('х');

>> symsum(хЛ2)

ans =

1/3*хлЗ-1/2*хл2+1/б*х

» symsum(хл2,6)

>> symsum(1/хл4)

ans =

-l/6*Psi(3,х)

» symsum(1/хл4,1,5)

ans =

14001361/12960000

>> symsum([х,хл2,хл3],1,5) ans =

[ 15, 55, 225]

Решение алгебраических уравнений

Для решения систем алгебраических уравнений и одиночных уравнений служит функция solve:

  • • solve (exprl, expr2,..., exprN, varl, var2, ...varN) — возвращает значения переменных varl, при которых соблюдаются равенства, заданные выражениями exprl. Если в выражениях не используются знаки равенства, то полагается expri=0;
  • • solve (exprl, expr2,..., exprN) — аналогична предшествующей функции, но переменные, по которым ищется решение, определяются функцией findsym.

При отсутствии аналитического решения и числе неизвестных, равном числу уравнений, ищется только одно численное решение, а не все решения. Результат решения возможен в следующих формах:

  • • для одного уравнения и одной переменной решение возвращается в виде одномерного или многомерного массива ячеек;
  • • при одинаковом числе уравнений и переменных решение возвращается в упорядоченном по именам переменных виде;
  • • для систем с одним выходным аргументом решение возвращается в виде массива записей.

Примеры:

» syms х у;

>> solve(хЛ3-1,х)

ans =

[ 1]

[ -l/2 + l/2*i*3A (1/2)]

[ -l/2-l/2*i*3A (1/2)]

>> solve(хл2-х-9,х)

ans =

[ 1/2+1/2*37л (1/2)]

[ 1/2-1/2*37л (1/2) ]

» syms а b с

» solve(а*хл2+Ь*х+с)

ans =

[ 1/2/а* (-Ы- (Ьл2-4*а*с) л (1/2) ) ]

[ 1/2/а*(-Ь-(Ьл2-4*а*с)л (1/2))]

» S=solve('х+у=3', 'х*ул2=4',х,у) S =

х: [3x1 sym]

у: [3x1 sym]

» S.x

ans =

[ 4]

[ 1]

[ 1]

» S.y

ans =

( -1]

[ 2]

[ 2]

>> solve('sin(x)=0.5',x) ans =

.52359877559829887307710723054658

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

Решение дифференциальных уравнений

Для решения дифференциальных уравнений в форме Коши MATLAB имеет следующую функцию:

• dsolve (' eqnl', ' eqn2 ', ...) — возвращает аналитическое решение системы дифференциальных уравнений с начальными условиями. Они задаются равенствами eqnl (вначале задаются уравнения, затем начальные условия).

По умолчанию независимой переменной считается переменная ' t', обычно обозначающая время. Можно использовать и другую переменную, добавив ее в конец списка параметров функции dsolve. Символ D обозначает производную по независимой переменной, то есть d/dt, при этом D2 означает (T/ctf и т. д. Имя независимой переменной не должно начинаться с буквы D.

Начальные условия задаются в виде равенств ’у(а)=Ь’ или *Dy(a)=b', где у — независимая переменная, а и b — константы. Если число начальных условий меньше, чем число дифференциальных уравнений, то в решении будут присутствовать произвольные постоянные ci, С2 и т. д. Правила вывода подобны приведенным для функции solve.

Примеры применения функции dsolve:

» dsolve('D2x=-2*x')

ans =

Cl*cos(2Л(1/2)*t)+C2*sin(2Л(1/2)*t)

» dsolve('D2y=-2*x+y','у(0)=1','x') ans =

(2*x*exp (x) + (-C2 + 1)*exp(х)л2+С2)/ехр(х)

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