clc, clear %Назначили символьные переменные %% Первый способ syms x y; %% diff(x^2,2) %% Второй способ f = sym('cos(x) + cos(y)'); %% Преобразования символьных выражений %% раскрытие скобок expand syms x y; f = (x+2)*(x+3) + (y+5); f = expand(f) %% Функция упрощения simplify syms x y; f = (x*y^3 + 2*y + x^4*y)/(y); f = simplify(f) %% Функция разложения на множители factor syms x; f = (x+4)^4 + x^2 + (x-2)^3; f = factor(f) %% Вычисление значения символьных выражений syms x; f = (x^4 + 17*x^3 + 91*x^2 + 268*x) / 248; f = subs(f, x, 3) %заменяем все x на 3 f = double(f) %% Если у функции несколько переменных, то придется использовать subs несколько раз syms x y; f = (x+4)^4 + x^2 + (y-2)^3; f = double(subs(subs(f, x, 2), y, 3)) %% Символьное дифференцирование в Matlab f = x^4 + 17*x^3 + 91*x^2 + 268*x + 248; diff(f) %% Функция от нескольких переменных syms x y; f = 2 * x ^ 5 + x * y + y^3; diff(f, 'x') diff(f, 'y') %% Символьное интегрирование % Символьное интегрирование в Matlab выполняется оператором int f = 4*x^3 + 51*x^2 + 182*x + 268; int(f) %% Расчет определенного интеграла f = 4*x^3 + 51*x^2 + 182*x + 268; int(f, 0, 4) %определенный интеграл на промежутке от 0 до 4 %% построение графика функции h=ezplot('x*sin(x)') h.set('LineWidth',2) %% задание промежутка h=ezplot('x*sin(x)',[-2,2]) h.set('LineWidth',2) h.set(Color='r') %% h=ezplot('cos(x)','sin(x)')%параметрический график h.set('LineWidth',2) %% неявно заданная функция h=ezplot('y=sin(x^2+y^2)',[-4,4])%параметрический график h.set('LineWidth',2) %% разложение символьной функции в ряд тейлора syms x T1 = taylor(exp(x)) T2 = taylor(sin(x)) T3 = taylor(cos(x)) % изменить выходной порядок символьных полиномов sympref('PolynomialDisplayStyle','ascend'); % Восстановить значения по умолчанию sympref('default'); %% ExpansionPoint - точка разложения syms x T = taylor(log(x), x, 'ExpansionPoint', 1) %% точка разложения - третий параметр T = taylor(log(x), x, 1) %% Порядок разложения syms x f = sin(x)/x; T6 = taylor(f, x) T8 = taylor(f, x, 'Order', 8) T10 = taylor(f, x, 'Order', 10) %% Постройте исходное выражение f % и его приближения T6, T8, и T10. % Определите - % как точность приближения зависит % от порядка разложения. h=fplot([T6 T8 T10 f]) h.set('LineWidth',2) xlim([-5 5]) grid on legend('approximation of sin(x)/x up to O(x^6)',... 'approximation of sin(x)/x up to O(x^8)',... 'approximation of sin(x)/x up to O(x^{10})',... 'sin(x)/x','Location','Best') title('Taylor Series Expansion') %% Для некоторых выражений относительный порядок % разложения обеспечивает более точные приближения. Ta = taylor(1/(exp(x)) - exp(x) + 2*x, x, 'Order', 5) Tr = taylor(1/(exp(x)) - exp(x) + 2*x, x, 'Order', 5, 'OrderMode', 'relative') %% Ряд Маклорена для функций нескольких переменных syms x y z f = sin(x) + cos(y) + exp(z); T = taylor(f, [x, y, z]) %% Точка разложения syms x y f = y*exp(x - 1) - x*log(y); T = taylor(f, [x, y], [1, 1], 'Order', 3) %% Вычисление предела limit(f) syms x h f = sin(x)/x; limit(f,x,0) %% f = (sin(x+h)-sin(x))/h; limit(f,h,0) %% Правые и левые пределы syms x f = 1/x; limit(f,x,0,'right') %% limit(f,x,0,'left') %% Поскольку предел слева не равняется пределу справа, % двухсторонний предел не существует. % В этом случае, limit возвращает NaN (не номер). limit(f,x,0) %%