본 글에서는 호너법을 이용해 다항식을 계산하는 알고리즘과 간단한 예시를 소개한다.
일반적으로 다항식은 첫째줄과 같이 풀어져있는 형태이다.
저걸 두번째줄 처럼 괄호 안에 식이 들어있고 또 그 안에 식이 들어있고.. 하는 형태로 바꾼 것이다.
프로그래밍은 반복되는 것을 좋아한다. 둘째 줄에서 간단히 알고리즘 패턴을 읽어낼 수 있다.
1. x를 입력한다
2. y0 = a0 이라고 한다.
3. j = 1,2,...,n 순으로 다음식을 계산한다. yj = yj-1x + aj
이제 이걸 C언어로 작성해보자.
식은 다음 예제를 사용했다.
참고로 변수 nt랑 na는 호너법과 식 그대로 계산하는 경우 필요한 계산 횟수를 비교하기 위해 넣은 변수라 지워도 무관하다.
실행결과
보다시피 호너법을 이용한 경우가 계산 횟수가 더 적은 걸 알 수 있다.
다항식의 차수가 늘어날수록 그 차이는 더 커진다.
📚 Reference
- 数値計算入門「C言語版」 / サイエンス社
- Horner's Method for Polynomial Evaluation / Geeks For Geeks
C언어 최소제곱법을 이용해 직선과 상관계수 구하기 (0) | 2021.01.02 |
---|---|
C언어 텍스트, 바이너리 파일 읽기 쓰기 (2) | 2020.12.02 |
C언어 수치계산 미분방정식 오일러법, 4차 룽게 쿠타법 알고리즘 (0) | 2020.09.05 |
C언어 수치계산 수치적분 (구분구적법, 사다리꼴, 심슨 공식) (0) | 2020.09.03 |
C언어 예제 두 수의 합 구하기 (0) | 2020.06.04 |
댓글 영역