수학

인벌류트 함수(inv) 수치해석 및 엑셀파일

오만팔천 2010. 12. 7. 16:14
f ( °) =
왼쪽에 각도를 입력하면 우측에 인벌류트 함수 값이 구해지며 우측에 인벌류트 함수 값을 넣으면 좌측에 각도가 구해집니다. (스마트폰에서는 안됩니다.)

인벌류트 기어에 인벌류트 곡선이 사용되므로 기어 해석을 위해 인벌류트 함수의 역함수 값을 알아야 되는 경우가 있습니다. 이것을 뉴턴-랩슨 법(Newton-Raphson method)으로 구해 보겠습니다.

위 함수가 인벌류트 함수입니다. 위 함수가 어떤 값을 가질 때 α값을 구하는 방법입니다. (일반 계산기에 있는 inv키는 inverse[역, 반대]를 의미합니다.)

위는 인벌류트 함수의 그래프입니다.

위 공식을 이용해서 해를 찾습니다. 위 공식의 자세한 설명은 뉴턴-랩슨 법(Newton-Raphson method)을 참고하시기 바랍니다. 인벌류트 함수의 미분 함수는 위키백과의 미분표를 이용합니다.

인벌류트 함수가 어떤 값 b를 가질 때 α값을 구해야 하므로 이를 일반식으로 표현하면 아래와 같이 됩니다.

위 식을 함수로 표현하면 아래와 같습니다.

위 함수를 미분하면 아래와 같습니다.



위의 식들을 이용해서 QBasic로 프로그램을 구성해 보겠습니다. 윈도우XP는 실행창이나 도스창에서 "qbasic"를 입력하면 QBasic창이 열립니다. 윈도우7은 http://www.qb64.net/에서 Download항목을 클릭해서 윈도우용 QBasic을 내려받고 압축을 풀어서 qb64.exe를 실행하면 인스톨 과정 없이 바로 사용할 수 있습니다. (XP에서도 내려받아 사용할 수 있습니다.)

       pi = 3.141592 'π
       GOTO 40

10    CLS '화면을 지웁니다.
       s = 0 '해를 찾기 위해 반복 계산하는 횟수 초기 값
       a = pi / 2.5 '해의 초기 값

20    s = s + 1 : IF s > 99 THEN GOTO 40 '반복 횟수 계산 및 100번을 넘어가면 계산을 멈춤
       fa = TAN(a) - a - b '함수 계산
       IF ABS(fa) = ABS(bfa) THEN GOTO 30 '근으로 추정 되면 계산 종료
       bfa = fa '근을 추정하기 위해 함수 값 백업
       dfa = 1 / COS(a) ^ 2 - 1 '미분함수 계산
       a = a - fa / dfa '각도 계산
       PRINT "Num:"; s, "f:"; fa; " ", "Angle:"; a * 180 / pi '계산 내용을 화면에 출력
       GOTO 20

30    PRINT '빈줄 출력
       PRINT "Num:"; s, "Angle:"; a * 180 / pi '계산 결과를 출력

40    PRINT
       INPUT "INV Value: "; b '인벌류트 함수 값을 입력 받음
       GOTO 10
위는 QBasic프로그램입니다.

INV.BAS위는 QBasic 프로그램 소스입니다.

inv.zip위는 http://www.qb64.net/에서 받은 QBasic프로그램으로 실행파일을 만들고 빵집으로 압축한 파일입니다. 내려받아서 압축을 풀고 inv.exe파일을 실행하면 인벌류트 함수 값으로 각도를 구할 수 있습니다.

inv.xls위 파일은 Microsoft Office Excel 2007에서 작성한 인벌류트 함수 값으로 각도를 계산하는 문서입니다.

inv.ods위 파일은 오픈오피스에서 한글 오픈오피스를 내려받아 설치하면 볼 수 있습니다.

inv.hwp위는 한글과컴퓨터의 한글 버전 2007에서 작성한 문서입니다.