Такива операции извършват всички елементарни функции.
Освен това, добавяйки по една точка “.” пред обикновените математични оператори *,/,\,^, u ‘, получаваме следните поелементни оператори:
. ^-поелементно степенуване;
.’-транспониране на вектор или матрица.
Пример: Да се умножат 2 редици а и b с по 3 елемента:
. След това се избира отново Symbolic Math Toolbox. Оттам за помощ при: намиране на производни, интеграли, граници се избира Mathematics и после Calculus; решаване на уравнения се избира Mathematics и после Equation Solving; изчертаване на графики на функции – Graphics и после Function Plots.
Преди изпълнението на всяка символна функция, трябва да се декларира променливата(ите), която участва(т) във функцията като символни – с командата syms. Веднъж зададена, символната променлива не е необходимо преди всяко символно изчисление да се декларира, както това е направено в долните примери за удобство на читателя.
Пример 1: Да се намери първата производна на функцията: .
Ставa с помощта на командата diff. Подразбира се диференциране по х (т.е. dx).
>> syms x
>> diff(x^2*exp(x))
ans =
x^2*exp(x) + 2*x*exp(x)
Пример 2: Да се намери втората производна на функцията: .
Поредният номер на реда на производната (в случая 2) се отделя със запетая от функцията.
>> syms x
>> diff(x^2*exp(x),2)
ans =
2*exp(x) + x^2*exp(x) + 4*x*exp(x)
Пример 3: Да се намери неопределен интеграл от функцията: .
Използва се функцията int.
>> syms x
>> int(x^2*exp(x))
ans =
exp(x)*(x^2 - 2*x + 2)
Пример 4: Да се реши определения интеграл
Необходимо е да се вмъкне и името на променливата t след подинтегралната функция, тъй като имаме функция на две променливи – х и t и интегралът е спрямо t, а не по x. Границите се отделят със запетая след t.
>> syms t x
>> int(x^2/t*exp(-i*t),t,0,2*pi)
ans =
x^2*Inf - i*x^2*Im(Ei(1, 2*pi*i)) - (pi*i*x^2)/2
Пример 5: Да се реши
Граница се изчислява с командата limit. Границите се записват, по аналогичен на интегрирането начин.
>> syms x
>> limit(sqrt(x^2+2)/(3*x+6),x,inf )
ans =
1/3
Пример 6: да се изчертае графиката на y2+3y-10 в интервала [-1, 1] по абсцисата.
Двумерни графики на функции се изчертават с командата ezplot и в скоби се записва функцията. По подразбиране Matlab задава стойности по абсцисата в интервала [-2π, 2π]. В този пример потребителят сам задава интервала на стойностите по остa х.
>> syms y
>> ezplot(y^2-3*y-10,-1,1)
или
>> ezplot(y^2-3*y-10,[-1,1])
Резултатът е показан на долната фигура:
Пример 5: Да се реши уравнението: x2 – sin(x) = cos(x)2
Уравнението се решава с командата solve и се загражда с апострофи.
>> syms х
>> solve('x^2-sin(x)=cos(x)^2')
ans =
-0.51487291554481060387995561734182
Извиква се функцията roots за намиране на корени на полином по следния начин r = roots(c). Функцията roots връща вектор r (матрица-стълб), чиито елементи са корени на полинома с. Матрицата-ред с съдържа коефициентите на полинома, подредени по намаляващ ред на степените им – от най-високата до свободния член. Функцията poly, използвана по следния начин: p = poly(r), връща като резултат матрица-ред, чиито стойности са коефициенти на полинома с. Функциите roots и poly са инверсни.
Пример: Да се намерят корените на полинома x5+8.x4 +31.x3+80.x2+94.x+20
Задава се полиномът със стойностите на коефициентите си:
>> pol=[1 8 31 80 94 20]
pol =
1 8 31 80 94 20
Намират се корените на полинома с функцията roots:
>>a=roots(pol)
a =
-1.0000 + 3.0000i
-1.0000 - 3.0000i
-3.7321
-2.0000
-0.2679
Изпълнява се обратната функция за да се получат коефициентите от корените – това е една проверка на резултата.
>> y=poly(a)
y =
1.0000 8.0000 31.0000 80.0000 94.0000 20.0000
Вижда се, че в променливата y това са коефициентите на полинома.
Понякога Matlab дава отговор за коефициентите със стойности, разделени на числото две – в този случай се прави проверка като отново се реши уравнението с новополучените коефициенти и се вижда, че корените са същите както в началното уравнение.
Друг начин на проверка е да се обяви функцията на уравнението като inline например с име f. След това трябва да се замести всеки корен поотделно вместо х като аргумент на f и да се провери дали резултатът е равен на нула, т.е.
>> f=inline('x^5+8*x^4+31*x^3+80*x^2+94*x+20')
f =
Inline function:
f(x) = x^5+8*x^4+31*x^3+80*x^2+94*x+20
Заместваме един от корените и резултатът трябва да е равен на 0, ако уравнението е решено вярно:
>> f(-2)
ans =
0
След това трябва да се заместят всички корени. Ще заместим само още едни:
>> f(-0.2679)
ans =
0.0028
Вижда се, че в този случай отговорът е различен от 0 – след втория знак след десетичната точка, т.е. за получаване на число по-близко до нула би могло да се зададе формат long и да се замести този корен с повече знака след десетичната точка – резултатът би бил по-близък до нулата след заместване на корена в f.
Решаване на уравнение с roots , когато то е произведение от множители:
Пример: Да се намерят корените на уравнението: (x -2). (x-3). (x+3) = 10
Първо с помощта на Symbolics Math Toolbox се опростява израза за уравнението, като се подрежда по степените на х с помощта на една от функциите simplify, collect или expand:
>> syms x
>> f=(x-2)*(x-3)*(x+3)-10
f =
(x-2)*(x-3)*(x+3)-10
>> simplify(f)
ans =
x^3-2*x^2-9*x+8
или
>> collect(f)
ans =
x^3-2*x^2-9*x+8
или
>> expand(f)
ans =
x^3-2*x^2-9*x+8
Сега се задават коефициентите на уравнението в масива pol:
>> pol=[1 -2 -9 8]
pol =
1 -2 -9 8
>> koreni=roots(pol)
koreni =
3.8108
-2.6139
0.8031
>> pol2=poly(koreni)
pol2 =
1.0000 -2.0000 -9.0000 8.0000
>> Същите са стойностите като на полинома