Main Content

점근선, 임계점, 변곡점 찾기

이 예제에서는 간단한 함수를 분석하여 점근선, 최댓값, 최솟값 및 변곡점을 찾는 방법을 보여줍니다.

함수 정의하기

이 예제에서 사용할 함수는 다음과 같습니다.

f(x)=3x2+6x-1x2+x-3.

먼저 함수를 만듭니다.

syms x
num = 3*x^2 + 6*x -1;
denom = x^2 + x - 3;
f = num/denom
f = 

3x2+6x-1x2+x-3

fplot을 사용하여 함수를 플로팅합니다. fplot 함수는 자동으로 수직 점근선을 보여줍니다.

fplot(f)

점근선 찾기

f의 수평 점근선을 수학적으로 찾으려면 x가 양의 무한대에 접근할 때의 f의 극한값을 구하십시오.

limit(f,Inf)
ans = 3

x가 음의 무한대에 접근할 때의 극한값도 3입니다. 이 결과는 선 y=3f에 대한 수평 점근선임을 의미합니다.

f의 수직 점근선을 찾으려면 분모를 0으로 설정하고 푸십시오.

roots = solve(denom)
roots = 

(-132-12132-12)

roots는 수직 점근선이 각각 다음 두 선임을 나타냅니다.

x=-1-132

x=-1+132.

최댓값과 최솟값 찾기

그래프를 보면 f에 점 x=2x=0 사이에 국소 최댓값이 있음을 알 수 있습니다. x=6x=2 사이에 국소 최솟값도 있습니다. 최댓값과 최솟값의 x 좌표를 구하려면 먼저 f의 도함수를 구하십시오.

f1 = diff(f)
f1 = 

6x+6x2+x-3-2x+13x2+6x-1x2+x-32

이 표현식을 단순화하려면 다음을 입력하십시오.

f1 = simplify(f1)
f1 = 

-3x2+16x+17x2+x-32

다음으로, 도함수를 0으로 설정하고 임계점에 대해 풉니다.

crit_pts = solve(f1)
crit_pts = 

(-133-83133-83)

f의 그래프에서 볼 수 있듯이 이 함수는 다음 지점에서 국소 최솟값을 갖고

x1=-8-133

다음 지점에서 국소 최댓값을 갖습니다.

x1=-8+133.

f의 최댓값과 최솟값을 플로팅합니다.

fplot(f)
hold on
plot(double(crit_pts), double(subs(f,crit_pts)),'ro')
title('Maximum and Minimum of f')
text(-4.8,5.5,'Local minimum')
text(-2,4,'Local maximum')
hold off

변곡점 찾기

f의 변곡점을 찾으려면 2계 도함수를 0으로 설정하고 이 조건에 대해 풉니다.

f2 = diff(f1);
inflec_pt = solve(f2,'MaxDegree',3);
double(inflec_pt)
ans = 3×1 complex

  -5.2635 + 0.0000i
  -1.3682 - 0.8511i
  -1.3682 + 0.8511i

이 예제에서는 첫 번째 요소만 실수이므로 이것이 유일한 변곡점입니다. MATLAB®은 방정식의 근을 항상 동일한 순서로 반환하지는 않습니다.

inter_pt의 요소를 참조하여 실근을 선택하는 대신, 허수부의 값이 0인 근을 확인하여 실근을 식별하십시오.

idx = imag(double(inflec_pt)) == 0;
inflec_pt = inflec_pt(idx)
inflec_pt = 

-13916954-2197181/3-16954-2197181/3-83

변곡점을 플로팅합니다. fplot의 추가 인수 [-9 6]은 다음 Figure에 보이는 것처럼 변곡점을 더 명확하게 볼 수 있도록 플롯에서 x 값의 범위를 확장합니다.

fplot(f,[-9 6])
hold on
plot(double(inflec_pt), double(subs(f,inflec_pt)),'ro')
title('Inflection Point of f')
text(-7,1,'Inflection point')
hold off