MATLAB diff 명령으로 심볼릭 도함수 계산: 규칙 검증과 극값 찾기
diff 명령으로 도함수 계산
MATLAB diff 명령은 심볼릭 도함수를 계산합니다. 기본 형태: diff(f).
예제: f(t) = 3t² + 2t⁻² 미분
syms t
f = 3*t^2 + 2*t^(-2);
diff(f)
결과: ans = 6*t - 4/t^3
Octave equivalent
pkg load symbolic
symbols
t = sym("t");
f = 3*t^2 + 2*t^(-2);
differentiate(f, t)
미분 기본 규칙 검증
주요 규칙:
- 선형성: (af+bg)' = af' + bg'
- 합/차: (f±g)' = f' ± g'
- 곱: (fg)' = 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); der1 = diff(f)
f = (t^2 + 3)*(sqrt(t) + t^3); der2 = diff(f)
f = (x^2 - 2*x + 1)*(3*x^3 - 5*x^2 + 2); der3 = diff(f)
f = (2*x^2 + 3*x)/(x^3 + 1); der4 = diff(f)
f = (x^2 + 1)^17; der5 = diff(f)
f = (t^3 + 3*t^2 + 5*t - 9)^(-6); der6 = diff(f)
결과는 곱/몫/연쇄 법칙이 적용된 형태로 나옵니다.
지수, 로그, 삼각함수 도함수표
| 함수 | 도함수 |
| 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 = 3sin(x) + 7cos(5x) 일 때 y'' + y = -5cos(2x) 인가?
syms x
y = 3*sin(x) + 7*cos(5*x);
lhs = diff(y,2) + y;
rhs = -5*cos(2*x);
if isequal(lhs, rhs)
disp('Yes, the equation holds true');
else
disp('No, the equation does not hold true');
end
disp('Value of LHS is: '), disp(lhs)
결과: 성립하지 않음, LHS = -168*cos(5*x)
곡선의 극값(최대/최소) 찾기
정지점: f'(x) = 0 인 점. 구간 [-2, 2]에서 f(x) = 2x³ + 3x² - 12x + 17의 극값 찾기.
- 함수 정의 및 그래프:
ezplot(y, [-2,2])
- 도함수:
g = diff(y) → 6*x^2 + 6*x - 12
- 정지점:
solve(g) → x = 1, -2
- 함수값 평가:
subs(y, 1) = 10, subs(y, -2) = 37
따라서 구간 [-2,2]에서 최솟값 10(x=1), 최댓값 37(x=-2).
미분방정식 풀기 (dsolve)
dsolve로 심볼릭 해 구하기. 미분 표기: Df = f', D2y = f''.
1계: y' = 5y
dsolve('Dy = 5*y')
해: C2*exp(5*t)
2계: 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