미적분 수업시간에 주제탐구를 해올 사람은 해오라는 말을 듣고 적분 계산을 해주는 프로그램을 만들기로 결심했습니다.
첫번째로 생각난 것이 구분구적법을 이용한 방법이였습니다.
넓이를 n개로 나누고 넓이를 구해 더하면 될것이라 생각했습니다.
첫째로 필요한것은 함수를 계산 하는 부분이 필요했습니다.
그래서 문자열로 이루어진 수식을 내가 원하는 구조로 바꾸고 계산하기로 했습니다.
CalElement 를 만들고 Number, Operator, Variable, Formula 클래스를 만들어 CalElement 를 상속받았습니다.
그리고 문자열을 쪼개 Formula 로 만들 수 있도록 splitElements 라는 메소드를 만들어 문자열을 쪼개 각 요소로 나누었습니다.
그리고 Formula 에 calculate(double x) 메소드를 만들어 formula 를 계산하도록 했습니다.
다음으로 구분구적법을 이용했습니다.
범위를 n개로 나누고 f(start + (end-start)(1/n)) * (end-start)(1/n) 크기의 사각형을 모두 더해 넓이를 구했습니다.
(위 계산식은 코드의 변수와 다릅니다.)
소스코드
https://github.com/lhh2020/mensuration-by-parts-with-Java
오개념이나 개선점을 댓글로 알려주시면 감사하겠습니다