Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> MATLAB

Символьное дифференцирование в MATLAB: команда diff

Команда diff вычисляет символьные производные. Базовая форма: diff(f).

Базовый пример

syms t
f = 3*t^2 + 2*t^(-2);
diff(f)  % ans = 6*t - 4/t^3

В Octave: differentiate(f,t) (пакет symbolic).

Проверка правил дифференцирования

Примеры применения правил

syms x t
f = (x+2)*(x^2+3);           diff(f)  % 2x(x+2)+x^2+3
f = (t^2+3)*(sqrt(t)+t^3);   diff(f)  % (t^2+3)*(3t^2+1/(2√t))+2t(√t+t^3)
f = (x^2-2x+1)*(3x^3-5x^2+2); diff(f)  % (2x-2)(...)-( -9x^2+10x)(...)
f = (2x^2+3x)/(x^3+1);       diff(f)  % (4x+3)/(x^3+1) - 3x^2(2x^2+3x)/(x^3+1)^2
f = (x^2+1)^17;              diff(f)  % 34x(x^2+1)^16
f = (t^3+3t^2+5t-9)^(-6);    diff(f)  % -6(3t^2+6t+5)/(...)^7

Производные элементарных функций

ФункцияПроизводная
c^(a·x)c^(a·x)·ln c·a
e^xe^x
ln x1/x
log_c x1/(x·ln c)
x^xx^x·(1+ln x)
sin xcos x
cos x-sin x
tan xsec²x = 1+tan²x
cot x-csc²x = -(1+cot²x)
sec xsec x·tan x
csc x-csc x·cot x

Примеры

syms x
y = exp(x);        diff(y)  % exp(x)
y = x^9;           diff(y)  % 9*x^8
y = sin(x);        diff(y)  % cos(x)
y = tan(x);        diff(y)  % tan(x)^2+1
y = cos(x);        diff(y)  % -sin(x)
y = log(x);        diff(y)  % 1/x
y = log10(x);      diff(y)  % 1/(x*log(10))
y = sin(x)^2;      diff(y)  % 2*cos(x)*sin(x)
y = cos(3*x^2+2*x+1); diff(y) % -sin(...)*(6*x+2)
y = exp(x)/sin(x); diff(y)  % exp(x)/sin(x) - exp(x)cos(x)/sin(x)^2

Высшие производные

Синтаксис: diff(f, n) — n-я производная.

f = x*exp(-3*x);
diff(f, 2)  % 9*x*exp(-3*x) - 6*exp(-3*x)

Пример: проверка дифференциального уравнения

Дано: y = 3 sin(x) + 7 cos(5x). Верно ли y'' + y = -5 cos(2x)?

syms x
y = 3*sin(x)+7*cos(5*x);
lhs = diff(y,2)+y;  % -168*cos(5*x)
rhs = -5*cos(2*x);
isequal(lhs,rhs)    % false

Уравнение не выполняется.

Поиск экстремумов функции

Стационарные точки: f'(x) = 0. Находим производную, решаем уравнение, подставляем в функцию.

Пример: f(x) = 2x³ + 3x² - 12x + 17 на [-2, 2]

  1. График: ezplot(y, [-2,2])
  2. Производная: g = diff(y) → 6x²+6x-12
  3. Корни: solve(g) → x = 1, -2
  4. Значения: subs(y,1)=10, subs(y,-2)=37

Минимум 10 (при x=1), максимум 37 (при x=-2).

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

Базовая форма: dsolve('eqn'). Производные обозначаются D: Dy = y', D2y = y''. Начальные/краевые условия — через запятую.

Примеры

% y' = 5y
dsolve('Dy = 5*y')  % C2*exp(5*t)

% y'' - y = 0, y(0)=-1, y'(0)=2
dsolve('D2y - y = 0', 'y(0) = -1', 'Dy(0) = 2')
% exp(t)/2 - 3*exp(-t)/2

MATLAB

  1. Что такое дифференциал? Понимание его роли, типов и обслуживания
  2. Масло в дифференциале: назначение, виды и обслуживание
  3. Типы данных в MATLAB: Полное руководство с примерами
  4. Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
  5. Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
  6. MATLAB: Мастерство работы с многомерными и специальными массивами
  7. Оператор двоеточия в MATLAB: создание векторов и эффективная итерация
  8. Числа в MATLAB: типы, хранение и преобразование
  9. Строки в MATLAB: создание, манипуляции и функции
  10. Функции в MATLAB: определение, рабочая область, входные и выходные аргументы