- 일반(쌀집) 계산기
[일반 계산기] 소수점 지수계산하기 (계산식 = 1.1^1.7 ?)
곱하기 반복 상수계산기능 으로 어렵지 않게 구해볼 수 있습니다.
[일반 계산기] 상수계산 - Non-K Type (Non-K 타입) https://allcalc.org/2352
[일반 계산기] 상수계산 - 카시오 K-Type (K-타입) https://allcalc.org/2335
내가 계산해야 하는 상황이라면 어떻게든 구해 보겠지만, 남이 물어보는 거라면 "일반 계산기라서 못한다"고 답하는게 맞습니다.
음수인 정수라면 [일반 계산기] 세제곱근 구하기. 방법 #2, 로그 성질(근사)의 활용 https://allcalc.org/49753 이 가장 간단하구요.
소숫점 형태라면 아래의 복잡한 과정을 거쳐야만 합니다.
1. 일반 계산기로 1.11.7 을 계산하려면?
- 1.1^1.7 = 1.1^(1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1)
- 1.식을 다시 쓰면 1.1 * (1.1^0.1) * (1.1^0.1) * (1.1^0.1) * (1.1^0.1) * (1.1^0.1) * (1.1^0.1) * (1.1^0.1)
- 결국은 1.1^0.1 값을 알아내면 계산이 가능하다는 결론
2. 일반 계산기로 1.10.1 을 정확하게 계산하려면?
"일반계산기로 n제곱근을 구하는 것은 뉴튼-랩슨법으로 가능하다"고 예전에 살펴보았습니다.
http://www.allcalc.org/2629
1.1^0.1 값을 뉴튼-랩슨법으로 반복계산해 보겠습니다.
(초기값은 쉽게 추정하기 어려우니, 그냥 1.1 로 하겠습니다)
1회차 결과 1.036650738 (오차율 2.68 %)
2회차 결과 1.01254671931 (오차율 0.29 %)
3회차 결과 1.00961548338 (오차율 3.85E-3 %)
4회차 결과 1.00957658945 (오차율 6.61E−7 %)
5회차 결과 1.0095765827 (오차율 7.62E−9 %)
6회차 결과 1.00957658269 = 7회차 결과 (오차율 8.68E−9)
3. 최종 계산 (1.11.7 = ?)
2.의 6회차 결과값을 이용해 1.1^1.7 을 계산해 보니 소숫점 8째자리까지만 맞는 결과를 얻게 되었습니다.
일반 계산기 이용한 값 = |
1.17589234866 |
실제 값 = |
1.17589234940796629191082142466659996882658807208250452... |
오차 = |
7.48E−10 |
오차율(%) = |
6.36113E-8 |
7회 8회 계속되면 오차율이 더 줄어들게 됩니다.
4. 정확한 값이 필요없는 경우라면? (추천!)
1.1^1.7 = 1.1 ^ (17/10) 이므로,
⇒ 계산A) 1.1^17 을 구한 값(A) 의 10 제곱근과 같습니다.
⇒ 계산B) 반대로, 1.1의 10제곱근을 17승 한 것과도 같습니다.
오차를 허용하는 경우[일반 계산기] 세제곱근 구하기. 방법 #2, 로그 성질(근사)의 활용 https://allcalc.org/49753 을 이용하는 것이 합리적입니다.
계산B)처럼 오차를 만들고 17승하면 오차가 증폭되기 때문에,
계산A)처럼 큰 값이 되더라도 정확한 값을 찾고, 오차는 한번만 허용하는 것이 좋겠습니다.
과정1) 상수계산으로 1.1의 17승 계산
1.1 × = 1.21
× 1.1 = 1.331
× 1.1 = 1.4641
× 1.1 = 1.61051
× 1.1 = 1.771561
× 1.1 = 1.9487171
× 1.1 = 2.14358881
× 1.1 = 2.357947691
× 1.1 = 2.5937424601
× 1.1 = 2.85311670611
× 1.1 = 3.138428376721
× 1.1 = 3.4522712143931
× 1.1 = 3.7974983358324
× 1.1 = 4.1772481694156
× 1.1 = 4.5949729863572
× 1.1 = 5.0544702849929 // 이 값은 1.1^17 의 계산값입니다.
과정2) 루트 버튼 14번 연속 사용
(√5.0544702849929 = 2.2482149107665)
(√2.2482149107665 = 1.4994048521885)
(√1.4994048521885 = 1.2245018792099)
(√1.2245018792099 = 1.1065721301433)
(√1.1065721301433 = 1.0519373223454)
(√1.0519373223454 = 1.0256399574633)
(√1.0256399574633 = 1.0127388397130)
(√1.0127388397130 = 1.0063492632844)
(√1.0063492632844 = 1.0031696084334)
(√1.0031696084334 = 1.0015835504008)
(√1.0015835504008 = 1.0007914619944)
(√1.0007914619944 = 1.0003956527267)
(√1.0003956527267 = 1.0001978067996)
(√1.0001978067996 = 1.0000988985093) // 이 값은 (1.1^17)^(-2^14) 와 같습니다.
c) 빼기1 나누기10 더하기1
1.0000988985093 - 1 → 0.0000988985093 ÷ 10 → 0.00000988985093 + 1 = 1.0000098898509
d) 곱하기= 을 14번 반복
1.0000098898509 × = 1.0000197797996
1.0000197797996 × = 1.0000395599904
1.0000395599904 × = 1.0000791215458
1.0000791215458 × = 1.0001582493518
1.0001582493518 × = 1.0003165237465
1.0003165237465 × = 1.0006331476803
1.0006331476803 × = 1.0012666962366
1.0012666962366 × = 1.0025349969926
1.0025349969926 × = 1.0050764201950
1.0050764201950 × = 1.0101786104320
1.0101786104320 × = 1.0204608249743
1.0204608249743 × = 1.0413402953072
1.0413402953072 × = 1.0843896106305
1.0843896106305 × = 1.1759008276434
일반 계산기 이용한 값 = |
1.1759008276364 |
실제 값 = |
1.17589234940796629191082142466659996882658807208250452... |
오차 = |
8.47824 E−6 |
오차율(%) = |
7.2100438482046E−6 |
댓글 15
-
-
-
와 같이 특수한 경우(=분모가 2의 n제곱수)는 일반 계산기로도 답을 쉽게 구할 수가 있습니다.
곱하기 상수(반복)계산과 루트버튼만으로 을 쉽게 구할 수 있기 때문이죠.
계산기 입력 :
【3】【×】【3】【×】【3】
【√】【√】
-
-
-
※ 다른 방법을 시도해 봄 (정수지수와 루트 버튼을 이용)
Step 1. 지수 1.7 대신 사용할 적당한 유리수를 찾습니다.
※ 적당한 유리수의 조건
ⓐ 분모가 2ⁿ 일 것 (단, n은 5 이하)
ⓑ 분자가 정수에 최대한 가까울 것Step 2. 적당한 유리수를 찾기 위해 1.7에 2를 반복해서 곱해봅니다. (Non-K Type 상수계산)
ㄴ 2를 몇 번 곱했는지 횟수를 세어야 합니다.【2】【×】【1.7】【=】 (3.4) = 1.7×2
【=】 (6.8) = 1.7×2^2
【=】 (13.6) = 1.7×2^3
【=】 (27.2) = 1.7×2^4
【=】 (54.4) = 1.7×2^5
이 중에서 정수에 가까운 수는 6.8과 27.2 입니다.Step 3. 6.8에 가까운 정수인 7과 27.2에 가까운 27 중에 어떤 값을 사용할지를 결정합니다.
7/2^2=1.75 이고 27/2^4=1.6875 이므로 1.7에 더 가까운 값인 1.6875를 사용하겠습니다.
Step 4. 1.1^(27/16) 을 계산기로 계산합니다.
【1.1】【×】【=(26회 반복)】 으로 1.1^27을 계산하고 (실제 쌀집계산기 계산 결과 13.1099941912)
【√】【√】【√】【√】 으로 16제곱근을 구합니다. (실제 쌀집계산기 계산 결과 1.1744922522)Step 5. 결과값의 비교
구한 값과 1.1^1.7과의 오차는 -0.001400097208 (오차율 0.119 %)이고 이정도 오차면 나쁘지 않다고 보여집니다.
-
-
-
위 과정의 지수부분을 수식화하고 그래프를 그려 비교해보면 아래와 같습니다.
그래프 범주 : x축=지수(0~1 사이), y축=지수의 오차(0~0.5 사이)
해석 : 소수부가 어떤 값이냐에 관계없이 반복횟수가 많아질수록 삼각형이 작아지면서 오차범위(위아래 간격)가 줄어드는 것을 알 수가 있습니다. 그것은 step 2 과정이 필요 없다는 것을 의미합니다.
(n)회 반복시 오차 ≥ (n+1)회 반복시 오차
-
-
-
정수부분까지 한꺼번에 반복하려고 하면 (일반적으로) 입력횟수가 많아지기 때문에 지수가 1 이상인 경우에는 정수부는 나중에 계산하고, 우선은 소수부분만 보시면 됩니다.
반복횟수가 많아지면 다음의 문제가 나타날 수 있습니다.
- 시간이 오래걸림
- 【=】 를 많이 누르다보면 몇번 눌렀는지 헷갈릴 수 있음.
지수가 너무 크면 계산기 한계에 걸릴 위험이 있음.루트를 먼저 누르면 됨.
1.1^1.7 = (1.1^1) × (1.1^0.7) 에서는, 1.1^0.7을 정확하게 구하는 문제로 단순화시킬 수 있습니다.
2^4 을 곱했을 때 정수에 더 가까운 값이나오지만,
정수에 가깝지 않더라도,
그냥 반복횟수가 더 많은 쪽의 오차가 적다는 것을 확인할 수가 있습니다.
-
-
-
의 반복횟수(n)에 따른 오차율(%)을 살펴보겠습니다.
계산기 입력횟수를 최소화하기 위해서는 지수부분을 0~1로 간소화할 필요가 있겠구요.
반복횟수는 5회 안밖이 가장 적당해 보입니다.
-
-
-
이 방법의 또 다른 문제점이 있습니다.
지수와 관계없이? 밑(base)이 큰 경우에도 적용하기 어렵습니다.[내용 수정] 밑이 큰 경우에는 지수승을 먼저 하지 말고, 루트를 먼저 씌우면 문제가 해결됩니다.
예시) 6866^2.3 ≒ 667450000.784 를 구하는 경우
"6866^0.3="의 값을 구해야 하는데, 4회 반복만 하려고 해도 6866^5 값을 알아야 하지만, 6866^4 에서 벌써 2.22236401550 × 10^15 이 되어 12-Digits 일반계산기의 한계에 이르게 됩니다.6866^0.3=(6866^(1/2))^0.3 × (6866^(1/2))^0.3 으로 나눠서 계산하면? (n=4)【6866】【√】 82.8613299434 ≒ 6866^(1/2)【×】【=】【=】【=】【=】 3906245170.26 ≒ ("위의")^5【√】【√】【√】【√】 3.97635333655 ≒ ("위의")^(1/16)【×】【=】 15.811385857 ≒ "위의"^2【×】【6866】【×】【6866】【=】 745379656.368 최종값
오차율 11.68% (버튼 입력 횟수 15+12=27회)6866^0.3=((6866^(1/4))^0.3)^4 으로 나눠서 계산하면? (n=5)【6866】【√】【√】 9.10281988964 ≒ 6866^(1/4)【×】【= 9회】 3906245170.21 ≒ "위의"^10【√ 5회】 1.99407957126 ≒ "위의"^(1/32)【×】【=】【=】【=】 15.8113858567 ≒ "위의"^4【×】【6866】【×】【6866】【=】 745379656.354 최종값
오차율 11.68% (버튼 입력 횟수 24+12=36회)6866^0.3=((6866^(1/8))^0.3)^8 으로 나눠서 계산하면? (n=6)【6866】【√】【√】【√】 3.01708798175 ≒ 6866^(1/8)【×】【= 18회】 1294707079.69 ≒ "위의"^19【√ 6회】 1.38796233235 ≒ "위의"^(1/64)【×】【= 7회】 13.7727746091 ≒ "위의"^8【×】【6866】【×】【6866】【=】 649275534.619 최종값
오차율 2.72% (버튼 입력 횟수 39+12=41회) (오차율은 n=7회와 동일)6866^0.3=((6866^(1/32))^0.3)^8 으로 나눠서 계산하면? (n=8)【6866】【√】【√】【√】【√】【√】 ≒ 6866^(1/32)【×】【= 76회】 1706351569.57 ≒ "위의^77【√ 8회】 1.0865826537 ≒ "위의"^(1/256)【×】【= 31회】 14.256357072 ≒ "위의"^32【×】【6866】【×】【6866】【=】 672072557.808 최종값
오차율 0.693% (버튼 입력 횟수 125+12=137회)
-
-
-
56^0.3 = ?
ㄴ (56^3)^(1/10) 으로 계산하면 되니 로그 성질(근사)의 활용이 더 쉽겠습니다.
https://allcalc.org/49753
-
-
-
댓글에 올려놓았던
※ 다른 방법을 시도해 봄 (정수지수와 루트 버튼을 이용)
을 지금 다시 보니내용이 많고 뭔가 복잡해 보여서, 글을 쓴 제가 읽어봐도 먼소린지 한번에 알아보기가 어렵네요.
간단하게 다시 설명드립니다.
- 방법만 알고 싶으시면 이 댓글만 읽어 보시면 됩니다.
- non-K 방식 계산기 기준으로 설명 드립니다.
1. 예시 e^(1/80) 을 계산하려고 합니다.
: 정확한 결과값은 1.0125784515406... 입니다. (이건 참고용)
2. 80이 64와 128 사이에 어정쩡하게 있으니, 딱 봐도 한번에 계산이 안될 것 같죠? 이럴 때 이 방법을 쓰시는 겁니다.
: 1/80 = 0.0125 를 얻습니다.3. 2 × 0.0125 = = = = = = = = = =
: 이렇게 하면 *2가 반복 계산됩니다. 10번 반복했죠?
4. 위(3.)에서 나온 결과값을 확인하고 가까운 정수를 결정합니다.
: 12.8이니 가까운 정수 13으로 결정하시면 됩니다.
5. 사전 작업은 다 끝났고 이제 최종 결과값을 확인하시면 됩니다.
5-1. e값을 2.7183 으로 놓고
5-2. 위(5-1)값에 루트(√)를 10번 씌웁니다. 그냥 루트 버튼 【√】 10번 연달아 누르시면 됩니다. 결과 : 1.00097704602
5-3. 위(5-2)값의 13승(=^13) 을 계산합니다. 1.00097704602 × ============ (13번 아니고 12번 눌러야 13승)
5-4. 최종 결과 확인 : 1.01277632589
2.7128(1/80)의 실제 값(=1.0125785361531)과 계산기 최종 결과를 비교해 보면
오차율 0.0195332737 % 밖에 나지 않습니다.
이 정도면 일반계산기에서는 쓸만한 방법입니다.
5-2 와 5-3 의 순서는 서로 바뀌어도 상관이 없지만,
밑이 큰 경우 지수승 과정에서 계산기 한계값 이상이(overflow) 될 수 있어서
루트를 먼저 취하는 것이 순서상 맞는 듯 합니다.
-
-
-
e^0.045 = ?
위와 같은 원리로 계산합니다.
a) 반복횟수 결정
2 × 0.045 ========= 이렇게 9번 누르다 보면 23.04 가 나옵니다. 0.045*2^(9)
반복 횟수는 많으면 많을수록 좋지만...
이렇게 정수에 가까운(소숫점 아래가 +0.04 처럼 정수와 오차가 작은) 경우 거기서 멈춰도 괜찮습니다.b) 루트 9회 반복해 계산
(√2.7183 = 1.6487267814893)
(√1.6487267814893 = 1.2840275625894)
(√1.2840275625894 = 1.1331493999422)
(√1.1331493999422 = 1.0644949036713)
(√1.0644949036713 = 1.0317436230340)
(√1.0317436230340 = 1.0157478146833)
(√1.0157478146833 = 1.0078431498419)
(√1.0078431498419 = 1.0039139155535)
(√1.0039139155535 = 1.0019550466730) = b = 2.7183^(1/2^9)c) (곱하기 반복) 상수계산 이용
1.0019550466730 × = 1.0039139155535 = b^2
× 1.0019550466730 = 1.0058766141141 = b^3
× 1.0019550466730 = 1.0078431498420
× 1.0019550466730 = 1.0098135302390
× 1.0019550466730 = 1.0117877628216
× 1.0019550466730 = 1.0137658551211
× 1.0019550466730 = 1.0157478146834
× 1.0019550466730 = 1.0177336490691
× 1.0019550466730 = 1.0197233658537
× 1.0019550466730 = 1.0217169726275
× 1.0019550466730 = 1.0237144769956
× 1.0019550466730 = 1.0257158865780
× 1.0019550466730 = 1.0277212090095
× 1.0019550466730 = 1.0297304519399
× 1.0019550466730 = 1.0317436230341
× 1.0019550466730 = 1.0337607299717
× 1.0019550466730 = 1.0357817804475
× 1.0019550466730 = 1.0378067821713
× 1.0019550466730 = 1.0398357428680
× 1.0019550466730 = 1.0418686702776
× 1.0019550466730 = 1.0439055721551
× 1.0019550466730 = 1.0459464562709 = b^23 = 2.7183^(23/512) = 2.7183^0.044921875
참값 ≒ 1.0460278599087
오차 = −8.14036378E−5
오차율 = −7.7821672748855E−5
-
-
-
여기서 무리수 e의 값을 선택 과정에서 2중 오차가 발생
- e값을 정밀하게 입력하면 하나의 오차만 생각하면 됨.
- e값에 의한 2중 오차는 처음의 오차와 중첩되어 최종 오차를 더욱 크게 만들 수도 있고,
반대로 처음의 오차를 상쇄시켜 최종 오차를 작게 만들 수도 있음.
ㄴ e와의 오차가 더 큰 2.7183 이 오차가 더 작은 2.71828 보다
최종 결과는 더 작게 나옴. (오차 상쇄)
-
-
-
3^0.2857 계산기로 어케 사용해야 답이 나오져?
https://kin.naver.com/qna/detail.naver?d1id=2&dirId=20115&docId=472350503
-
-
-
추가 팁
1. 반복 횟수는 많아질수록 정확하다!
2. 하지만 반복이 많아질수록 키입력이 늘어나므로 tradeoff 관계에 있다.
3. 그런데 입력 방식을 조금 바꾸면 키입력 횟수를 조금 줄일 수도 있다.
예를 들어
"3^(1/2048) = 1.0005365756868" 의 520승을 계산하려면
×====...(중략)...========== 으로 519번을 눌러야되는데
그 대신에
×=×=×=×=×=×=×=×=×= 으로 누르면
((((((((1.0005365756868^2)^2)^2)^2)^2)^2)^2)^2) = 1.0005365756868^512 까지는 금방 계산이 됩니다.
메모리 기능과 결합해 사용하면 520승을 상대적으로 쉽게 계산할 수 있겠죠.
그런데...
다시 잘 생각해 보면...
이것은 루트를 여러번 누른 값을 다시 ^2 제곱하는 꼴이므로,
서로 상쇄되는(=반대인) 계산 관계라고 볼 수 있습니다.
처음부터 이렇게 많이 계산할 할 필요가 없었던 거죠.
-
-
-
위의 원리를 적용하여 계산을 간단하게 하자면,
3^0.2857 을 정밀하게 계산하면???
은 아래의 계산과정을 통해 일반 계산기로 계산할 수 있습니다.
1. 【2】 【×】 【0.2857】 【=】【=】【=】【=】【=】【=】【=】【=】【=】【=】【=】 (11번) 585.1136: 식으로 보면 (2^11)*0.2857 = 585.1136
2. 3^(585/2^11)≒ 3^(585.1136/(2^11)) = 3^0.2857
이므로 계산기로 계산할 수 있는 값인 3^(585/2^11) 를 구한다.
3. 3^(585/2048)
= 3^(512/2048) * 3^(73/2048)
= 3^(512/2048) * 3^(64/2048) * 3^(9/2048)
= 3^(1/4) * 3^(1/32) * 3^(9/2048)
= (√√(3)) * (√√√√√(3)) * (√√√√√√√√√√√(3))^9이것을 쌀집계산기로 계산하는 것은 어렵지 않죠.
【3】【√】【√】【×】【3】【√】【√】【√】【√】【√】【=】【M+】 // M값 = 1.3620415395368
【3】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【×】【=】【=】【=】【=】【=】【=】【=】【=】 // 1.0048395590533
【×】【MR】【=】
최종 결과 : 1.3686332200004
오차 : -0.0000834052032
M 기능을 빼고 계산하려면 순서를 바꿔주면 되구요.
= (√√√√√√√√√√√(3))^9 * (√√(3)) * (√√√√√(3))
【3】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【×】【=】【=】【=】【=】【=】【=】【=】【=】 // 1.0048395590533
【×】【3】【√】【√】【×】【3】【√】【√】【√】【√】【√】【=】
-
-
-
다음 단계로 적당한 값을 찾아보면 14승일 때
= (√√√√√√√√√√√√√√(3))^73 * (√√(3)) * (√√√√√(3))
【3】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【√】【×】【=】【=】...중간생략,총72번...【=】【=】 // 1.0049069397994
【×】【3】【√】【√】【×】【3】【√】【√】【√】【√】【√】【=】 // 이 부분은 동일
계산 결과 1.3687249953756
오차 : −0.000008370172
오차율(%) : −0.0006115343268191 %
-
오차가 약간 줄어드는군요.