1203.5416˙42536065060050048020012080072080 초등학교 수학에서 나눗셈을 이렇게 계산했을 것이다. 위 세로식에서 안쪽의 수는 나눠질 수(피제수)를, 왼쪽에는 나눌 수(제수)를 쓰고 아래로 쭉 계산해서 내려가면서 그 몫을 맨 위에 쓰는 방식이다.[1] 아무리 해도 나누어떨어지지 않을 경우, 숫자가 반복되는 구간을 짚어서 그 끝부분에서 끊은 뒤, 그 숫자 위에 점 혹은 윗줄을 그어주면 된다.
그러나 중학교 수학으로 올라가면 저렇게 계산하는 일이 없는데, 분수(정확히는 유리수)로 퉁쳐버리기(...) 때문이다.
그러다가 다시 고등학교 수학으로 올라가 다항식의 사칙연산을 할 때 세로셈법이 등장한다. 물론 얘는 위와 같이 그냥 상수끼리 나누는 건 아니다. 그러나 그 이후로는 안 등장하나 싶다가 대학 과정에서 시계 산술이 적용되는 유한체의 나눗셈에서 세로셈법이 다시 등장한다. 잊어버릴만 하면 등장하는 세로셈법
각종 근호를 산술적으로 계산하는 방법으로 단순히 개법(開法)또는 개방(開方)이라고도 한다. 한자어로 제곱은 평방(平方), 세제곱은 입방(立方)이라고 하며 n제곱을 통틀어 방(方)이라고 하기 때문에 방을 푼다(開)는 뜻에서 이런 이름이 붙었다. 특별히 제곱근, 세제곱근의 경우 각각 개평법(開平法), 개립법(開立法)이라고도 불린다. 제곱근을 시행착오법으로 구하다보면 k개의 유효숫자를 구하는데 k자리수끼리의 곱셈을 여러번 해야 한다. 이는 매우 귀찮은 작업일 뿐더러 손계산으로는 시간이 매우 많이 걸리기 때문에 이를 피하기 위하여 개발된 방식이다. 원리는 이항정리를 이용하는 것으로, 임의의 n제곱근에 얼마든지 적용할 수 있다. 그러나 개평법을 제외하고는 어디까지나 컴퓨터를 이용한 알고리즘의 영역이며 n=3만 되도 손계산 역시 매우 버거워진다.(후술) 사실상 손계산이 어느 정도 가능한 방법은 개평법이 유일하다고 해도 과언이 아니다.
가 되고 3×10+y=a′라 놓으면 위 부등식은 (2a′+0.1z)0.1z≤625.12−(3×20+y)y가 되어 맨 처음에 이용했던 (2a+0.1x)0.1x≤6.2512와 완전히 같은 꼴이 된다. 이 말은 곧 x값을 소수 아래 자리까지 정확하게 찾으려고 애쓸 필요가 없으며 적당히 부등식을 만족하는 최대의 자연수를 구한 뒤 부등식의 양변에서 뺀 다음 다시 100을 곱하고 부등식을 만족하는 최대의 자연수를 찾고……하는 식으로 반복해나갈 수 있음을 의미한다. 이는 앞의 방법에 비하면 계산량이 차원이 다르다. (실제로 대략 O(k2)에서 O(k)가 된 것이다.)
방법은 설명했으니 예시로 313.29의 제곱근을 구해보자. 개평법을 쓸 때에는 다음과 같이 피개평수에서 빼는 연산을 위한 열과(이하 뺄셈 열), 빼기 위한 수를 계산하기 위한(상술한 2a+b를 계산하는) 열(이하 덧셈 열) 2줄을 준비해놓는 것이 좋다. 아래 식에서 왼쪽 단이 덧셈 열이고 오른쪽 단이 뺄셈 열이다.
3∣13.∣29
313.29를 소수점을 기준으로 2자리씩 끊어준다.[2] 이는 원래의 수를 100으로 나누고 곱해 두자리 정수만 남기고 소수점 아래를 버린것과 같다.
13∣13.∣29
제곱을 했을 때 맨 앞 숫자를 넘지 않는 최대의 자연수의 제곱수 a2을 구한다.[3]a가 곧 해의 첫 번째자리의 수가 된다. 이 경우 맨 앞 숫자가 3이므로 1(=12)≤3<4(=22)에서 a=1이다.
+)11213∣13.∣291213
맨 앞 숫자에서 a2을 빼고 그 다음 2자리의 수를 내려적는다.[4] 이는 원래의 수에서 a2을 빼고 100을 곱한 것과 같다. 이와 동시에 다음 뺄 수를 계산하기 위해 덧셈 열에 2a를 기록한다.
+)+)112773417.3∣13.∣2912131892429
앞서 a2을 빼고 100을 곱했으므로 100(2a+b)b=100(2a+0.1x)0.1x=(20a+x)x가 뺄셈 열의 결과값보다 크지 않은 최대의 수, 즉 제곱근의 두 번째자리 수를 구한다. 이 경우 189(=27×7)≤213<224(=28×8)이므로 x=7이 된다. (20a+x)x를 뺄셈 열의 결과값에서 뺀 뒤 다음 2자리 수를 내려 적는다. 덧셈 열에는 20a+x와 x를 더한 2(10a+x)를 새로운 2a로 놓고 계산을 반복한다.
+)+)11277347717.73∣13.∣291213189242924290
최종적으로 뺄셈 열에서 0이 나오면 제곱근 구하기를 완료한 것이다. 루트안의 수가 무한소수거나 자리수를 나눌때 m개로 나누었는데(313.29의 경우 3∣13.∣29로 3개) 루트를 m자리까지 구해도 안끝나는 경우는 루트자체가 무한소수이므로 적절한 유효숫자에서 끝내면 된다.
예시는 딱 유한소수로 끝나는 수를 가져왔지만 이 방법은 제곱근이 무리수가 나와도 원하는 유효숫자까지 계속 구해나갈 수 있다. 앞서 15.2512를 개평법으로 계산해보면
그냥 계산기를 쓰는 것이 낫다.[5]n제곱근부터는 개평법에 비해 계산량이 폭발적으로 늘어나기 때문이다. 당장에 개립법만 보더라도 똑같이 피개립수를 적절하게 1000k으로 나누고 곱하기를 반복하면서 자연수 a, b에 대해 (a+0.1b)3을 찾아나가는 과정은 똑같은데, 뺄셈 열에서 빼야 하는 수는 1000{(a+0.1b)3−a3}=300a2b+30ab2+b3=(300a2+30ab+b2)b가 된다. 덧셈 열로 쓰던 단도 개립법부터는 덧셈 열로서의 의미를 상실하여 사실상 곱셈 열이 되며(아래 예시 참조) 앞서 개평법에선 먼저 구했던 수를 2배하고 b를 붙여주고 곱하는 것으로 끝이었다면, 이제는 구해야 하는 수의 지수가 포함된 식에 하나하나 대입하면서 계산해야하는 상황이 된 것이다. 이쯤 되면 최대 결과값을 손으로 계산하는 것보다 계산기를 쓰는 게 차라리 나은 수준이 되는데 요즘 웬만한 공학계산기 및 계산기 어플에서는 n제곱근을 지원하기 때문에(……) 개립법부터는 그냥 계산기를 쓰는 게 차라리 낫다. 예시로 33을 개립법으로 유효숫자 4자리까지 구해보면 다음과 같다. 곱셈 열(왼쪽 단)에서 f(a,x)=300a2+30ax+x2이며 a에 들어갈 수는 이전 결과까지 구한 해의 숫자를 나열한 것이다.
부분적분을 연쇄적으로 해야하는 경우, 도표적분법(Tabular Integration, 또는 tic-tac-toe method), 또는 부분적분 세로셈을 통해서 좀 더 빨리 부분적분을 계산할 수 있다. 이 때, 정적분은 부정적분으로 바꾸어서 계산하고 나중에 정적분으로 계산해야 한다. 세로셈은 부분적분을 여러 번 해야 할 때 더욱 빠르다.
부분적분 세로셈은 f′(x)=c(상수)가 되면 f′(x)가 적분 기호 밖으로 나올 수 있다는 점을 이용한다.[6] 표의 왼쪽 열은 미분하는 열이고, 오른쪽 열은 적분하는 열이다. 위의 우선순위에 의해 미분열 맨 위에 미분하려는 함수(f(x))를 적고, 적분열 맨 위에 적분하려는 함수(g′(x))를 적는다. 그 후 미분열 아래로 계속 미분을 하고, 적분열 아래로는 계속 적분하여 내려간다. 그러다가 미분열에 적힌 함수가 상수가 되면 맨 왼쪽에 행마다 +, -, +, -를 반복하여 부호를 붙인다. 그 아래로 적분을 한 번 더 하여 하향 대각선 방향으로 함수를 곱한 뒤 그 결과를 더하면 된다.
어떤 함수가 같은 행에 있다는 것은 이 부분적분 중간에 그 함수를 곱해서 적분하는 과정이 들어있다는 뜻이다. 따라서 같은 행에 한해서 왼쪽 열(미분열)과 오른쪽 열(적분열)의 교환법칙이 성립한다. 단, 이 과정을 아래줄에 적을 때 +, - 부호도 같이 유지된다는 점에 유의하자. 사실 상 같은 식을 두 번 적은 셈이니 하향 대각선으로 가는 곱도 함수교환 직전에는 하지 않는다.
같은 행에 있는 함수는 곱하여 적분한 것을 뜻하므로, 하향 대각선으로 가다가 마지막에는 가로 일직선으로 곱해서 적분기호를 붙이면 된다. 이 때 적분기호를 빼먹지 않도록 하자.
[1] 나눗셈의 대상이 체가 아닐 경우 오른쪽에 나머지를 써준다.[2] 이걸 잘못이해해서 뒤에서부터나 앞에서부터 끊다간 123.456이나 91=0.1˙ 따위를 구하기 곤란하다 물론 빈자리는 0으로 채우면 된다.[3] 수식으로 나타내면 맨 앞 숫자를 α라고 했을 때 a2≤α[4] 맨 처음에 소수점을 기준으로 2자리씩 끊어준 이유가 바로 여기에 있다.[5] 물론, 그 계산기에 들어가는 마이크로프로세서를 설계하는 사람이라면 이 계산법을 익혀두어야 한다.[6] 물론 꼭 상수가 되어야만 세로셈을 쓸 수 있는 것은 아니다. 뒤의 항목 참조.
라이선스를 별도로 명시하지 않은 문서는CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다.
기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권을 갖습니다.
문서의 기여자는 역사 탭에서 확인할 수 있습니다.
접두어의 N: - 나무위키 사용자, R: - 리그베다 위키의 사용자를 뜻합니다.
자세한 사항은 나무위키에서 동일한 문서의 역사를 참고하시기 바랍니다.