Символьное дифференцирование в 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).
Проверка правил дифференцирования
- Правило 1 (линейность): (a f + b g)' = a f' + b g'
- Сумма/разность: (f ± g)' = f' ± g'
- Произведение: (f·g)' = f'·g + g'·f
- Частное: (f/g)' = (f'·g - g'·f)/g²
- Степень: (xⁿ)' = n·xⁿ⁻¹; константа → 0
- Цепочка: (f(g(x)))' = f'(g(x))·g'(x)
Примеры применения правил
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^x | e^x |
| ln x | 1/x |
| log_c x | 1/(x·ln c) |
| x^x | x^x·(1+ln x) |
| sin x | cos x |
| cos x | -sin x |
| tan x | sec²x = 1+tan²x |
| cot x | -csc²x = -(1+cot²x) |
| sec x | sec 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]
- График:
ezplot(y, [-2,2]) - Производная:
g = diff(y)→6x²+6x-12 - Корни:
solve(g)→x = 1, -2 - Значения:
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
- Что такое дифференциал? Понимание его роли, типов и обслуживания
- Масло в дифференциале: назначение, виды и обслуживание
- Типы данных в MATLAB: Полное руководство с примерами
- Операторы MATLAB: Арифметические, логические, битовые и операции над множествами
- Матрицы в MATLAB: Создание, индексация, удаление строк/столбцов и операции
- MATLAB: Мастерство работы с многомерными и специальными массивами
- Оператор двоеточия в MATLAB: создание векторов и эффективная итерация
- Числа в MATLAB: типы, хранение и преобразование
- Строки в MATLAB: создание, манипуляции и функции
- Функции в MATLAB: определение, рабочая область, входные и выходные аргументы