Вычисления матрицы Якоби
Матрица Якоби вычисляется для системы функций и в общем случае представляет собой прямоугольную матрицу. Число строк равно числу функций в системе, число столбцов — числу аргументов. Матрица Якоби записывается в виде
эд |
эд |
ЭД |
|
Эх, |
Эх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)/ехр(х)