polyfit() 함수는 입력과 출력 값으로부터 다항식의 계수를 찾아 주는 함수 입니다. 예를 들면 라는 식에서 x, y 값을 알고 있으면 다항식의 계수값 a, b, c 값을 찾아 준다는 것입니다. polyfit() 함수의 원형은 다음과 같습니다.
p = polyfit(x,y,n)
- x 는 다항식의 입력값, y 는 다항식의 결과값입니다.
- n 은 차수를 의미 합니다.
- p 는 차수에 따른 다항식의 계수 값을 의미 합니다.
다음과 같은 x, y 값에 대하여 다항식의 계수를 찾아보겠습니다.
x=0:5
x =
0 1 2 3 4 5
y=2*x.^3 + 5*x.^2 + 6*x+4
y =
4 17 52 121 236 409
위와 같은 값이 있을 때 다음과 같이 3차 다항식의 계수를 찾습니다.
결과 p 의 값을 보면 위에 있는 y 식에서의 계수를 정확히 찾는 것을 볼 수가 있습니다.
p=polyfit(x,y,3)
p =
2.0000 5.0000 6.0000 4.0000
만약 4차 다항식으로 fitting을 해보면
p4=polyfit(x,y,4)
p4 =
0.0000 2.0000 5.0000 6.0000 4.0000
다음과 같은 값이 나오는 군요.
위 결과로부터 알 수 있는 것은 차수를 모를 때는 최대한 큰 차수를 넣어 보는 것이 좋습니다.
위 결과에서는 4 차 다항식의 계수 값은 0 이므로 x, y 사이의 관계는 3차 다항식이라는 것을 알 수가 있습니다.
다음으로 다항식 계수로부터 값을 계산하는 함수인 polyval 함수에 대해 알아봅니다.
polyfit 함수로 찾은 계수의 값이 제대로 나온 건지 검증 하기 위하여 polyval 함수를 주로 이용합니다.
함수의 원형은 아래와 같습니다.
y = polyval(p,x)
p 는 다항식 계수 값이고 x 는 입력 값입니다.
앞에서 y=2*x.^3 + 5*x.^2 + 6*x+4 라고 표현했던 부분은
polyval 함수를 이용해서 y=polyval([2 5 6 4], x) 라고 표현해도 동일한 결과가 나오는 겁니다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB 적분 추가 내용 trapz() (0) | 2011.03.14 |
---|---|
MATLAB 적분 int(), quad() (6) | 2011.03.14 |
MATLAB 함수의 해를 구해 보자~ fzero(), roots(), poly() (2) | 2011.03.13 |
MATLAB ezplot() 함수로 그래프를 쉽게 그리자 (2) | 2011.03.13 |
MATLAB 소스 코드 protection, pcode (1) | 2011.03.11 |
MATLAB [디지털 통신] EYE PATTERN (10) | 2011.03.09 |
MATLAB Editor 파일 비교 (0) | 2011.03.08 |
MATLAB 부분 분수 전개 residue() (0) | 2011.03.07 |
댓글