프로그래밍으로 수학의 무한대를 판단할 수는 없을까요?
글쓴이: gyxor / 작성시간: 수, 2004/09/29 - 7:09오후
C언어로..
while(1) a+=1;
이렇게하면 표현은 된것인지..^^;
구체적으로 말씀드려서..
어떤 변수 x 의 값이 무한대이면
1/x = 0 이고
무한대에 근접한 값이면
1/x = 매우작은 소수
가 될텐데요..
사실 현재로써는 무한대가 아니라 소수값 조차도
변수의 정해진 바이트값을 벗어나는 수는 표현을 못하는것으로
알고있습니다.
그렇다면 혹시.. 어떤 수가 무한대인지 아닌지에 관한것 만이라도
판단하는 방법은 없을까요?
답변부탁드립니다.
Forums:
디지탈 기계인 컴퓨터는 전압이 높다 낮다 전류가 흐른다 안흐른
정도 밖에 모릅니다.
컴퓨터는 자연수 밖에는 셀 줄 모릅니다.
자, 그 어떤 수를 컴퓨터에게는 어떻게 전달하실 겁니까?
디지탈 컴퓨터가 아니라 아날로그 컴퓨터라고 해도
수학적으로 무한대라는 수가 존재합니까?
1/0 == oo
2/0 == oo
1/0 == 2/0 ?
oo - 1 == oo + 1 ?
임의로 정의해서 우리는 이걸 시스템 내부적으로 무한대라고 한다.
는 식으로는 표현 가능합니다.
Matlab을 해보세요.
무한대라는 수는 규정할 수 없을 것 같습니다.무한대가 딱 어떤 수라고
무한대라는 수는 규정할 수 없을 것 같습니다.
무한대가 딱 어떤 수라고 판단한다면 그 순간 그 수는 끝이 있는 수, 유한수가 됩니다. 따라서 무한대라면 판단하는 그 순간에도 계속 증가하고 있어야 하죠.
그러므로 무한대의 수를 판단하기란 불가능하지 않을까요?
인생, 쉬운 것만은 아니네..
Re: 디지탈 기계인 컴퓨터는 전압이 높다 낮다 전류가 흐른다 안
무한대에 표현이 매우 인상적이군요...
지금 컴퓨터에서도 하고 있는 가장 기초적인
무한에 관련된 오류가
divided by zero가 아닐까요?
There is no spoon. Neo from the Matrix 1999.
IEEE 부동소숫점 형식에는 NaN, Inf, -Inf, +0, -0 등
IEEE 부동소숫점 형식에는 NaN, Inf, -Inf, +0, -0 등의 값이 있습니다. 구체적인 뜻은 찾아보세요. -_-;;
당연히 판단가능합니다...
미적분학의 기초적인 내용으로써
무한 급수나 수열의 발산/수렴 판정을 할 수 있습니다.
n 차항과 n+1 차항의 비로 판정하는 비 판정법.
근으로 판정하는 근 판정법.
그외에도 적분판정법등 많은 판정법이 있습니다.
이를 수치해석으로 구현하면 일반항의 합(시그마, 혹은 무한급수)의
수렴 발산여부를 알 수 있습니다.
비판정법등에 관한 내용을 첨부합니다.
4. 비 판정법과 근 판정법
[정리9] 비판정법.
lim an+1/an = R, 또는 lim an+1/an = ∞
n→∞ n→∞
이라 하면,
a) R < 1 일때 이 급수는 수렴하고
b) R > 1 이거나 lim an+1/an = ∞ 일 때 이 급수는 발산하고
c) R = 1 일때 이 판정법으로는 판정할 수 없다.
증명a)
R<1 이므로 R<r<1 인 r이 존재한다.
이때 졸라 큰 k가 있어서 그 k보다 큰 모든 n에 대하여
ak+1/ak < r, 즉 ak+1 <rak 즉 rak+1 < r^2 ak
ak+2/ak+1 < r, 즉 ak+2 <rak+1<r^2*ak
.
.
.
ak+m/ak+(m-1) < r, 즉 ak+m < rak+(m-1) < r^m ak
가 된다..
따라서 ak+1+ak+2+ak+3+ ... +ak+m+...
의 각 항은 akr+akr^2+akr^3+... +akr^m+...
결국 아래의 급수는 등비급수이고 r<1 이므로 수렴한다.
그런데 위의 급수는 아래급수의 각 항보다 항상 작으므로 비교판정법에 의해
위의 급수도 수렴한다.
증명b)
극한의 정의에 의하여 졸라큰 모든 n과 n+1에 대한 비가 1보다 크므로 항은 점점 커진다
따라서 발산한다.
증명c) p급수에 의하여 예증된다...
[정리9] 근판정법.
lim an^(1/n) = R, 또는 lim an^(1/n) = ∞
n→∞ n→∞
이라 하면,
a) R < 1 일때 이 급수는 수렴하고
b) R > 1 이거나 lim an+1/an = ∞ 일 때 이 급수는 발산하고
c) R = 1 일때 이 판정법으로는 판정할 수 없다.
증명a)
R<1 이므로 R<r<1 인 r이 존재한다.
이때 졸라 큰 k가 있어서 그 k보다 큰 모든 n에 대하여
an^(1/n) < r 즉 an < r^n
여기서 r은 1보다 작은 등비 급수이므로
r + r^2 + r^3 + ... +r^m+.. 은 수렴하고
주어진 급수와 위 급수를 비교해서(비교판정법) 수렴함을 알 수 있다.
증명bc)생략
*요약 : 결국 우리는 지금까지 수렴 발산을 판단하는 기술에 대해 공부한 것이다.
혹시 증명을 전부 이해하지 못했다고 하더라도 이용하는 방법만 알면 될 것 같다.
또 다른 알고리즘...
수를 배열에 할당하여 배열로 연산하는 알고리즘이 있습니다.
C 로 구현한 알고리즘 과 같은 테마를 가진책에서
최대 표현 바이트수를 넘어가는 연산에 대한 자료가 있습니다.
몇백 팩토리얼까지도 연산합니다...
이는 파이의 정확한 값을 구하는데도 이용되지요^^
무한대(infinity) 자체가 수가 아니기 때문에 아무리 큰 데이터형으
무한대(infinity) 자체가 수가 아니기 때문에 아무리 큰 데이터형으로도 직접 표현할 순 없습니다. 예를들어 1에서 무한대까지의 거리는 10조의 10조 배에서 무한대까지의 거리와 같이, "무한히 멉니다".
수치계산의 실전에서는(?) 무한대같이 추상적인 개념에 그리 연연할 필요가 없이 주어진 문제에 따라 적당히 용납될 수 있게 충분히 큰 MAX_DOUBLE, MIN_DOUBLE(==1./MAX_DOUBLE) 등을 정의해서 씁니다. 즉 뭘 계산하는데 MAX_DOUBLE보다 커지게 되면 발산하는 것으로 간주하고 반복계산을 중단하고... 이런 식으로. 유효숫자 20~30자리에 지수범위 1.0e+-240 정도만 되어도 현재 물리학에서 알려져 있는 기본 상수들(elementary constants)을 다 표현하고도 남죠.
좋은답변감사합니다.
무한대를 판단하기 위해서
수학처럼 비판정법이나 근판정법을 쓰면 시그마합의 수렴|발산
을 결정하는것에 있어서는 판단히 가능하겠네요
matlab을 해보니까 inf를 무한대로 보더라구요 이것은 특정한 수를
지정하는게 아니라 무한대라는 의미를 나타내는것이니까요..
수학으로 정리가 된 사항은 모두 구현이 될거 같습니다.
그런데
계산도중에 값이 범위를 벗어나는것을 무한대로 취급하는것은
좀 잘못된것 아닌지..
암튼 답변감사합니다.
무한대라는 것은...lim n->∞ 일때 f(n)값이 무한대
무한대라는 것은...
lim n->∞ 일때 f(n)값이 무한대 즉 ∞ 발산으로표시하는것인데.....
의미상... n이 한없이 커지면, f(n)은 어떻게 되느냐는 것이.. 극한의 개념이죠.. f(n)도 한없이 커진다면 바로 발산하는 극한이 되는것이죠... 즉.. '무한대'라는 정말 '무한히 큰 어떤수'가 존재하는 것이 아니라 n이 방향성에 따른 f(n)이 방향성이 어떠한가.. 둘사이의 관계식일 뿐이죠...
그런의미에서 무한대를 while(1) a++ 로 표현하는건 틀렸다고 생각합니다.
다만 위에서 언급되었듯이.. 수학적으로 무한대를 판정하는 방법을 컴퓨터의 알고리즘으로 만드는 것은 당연히 가능하다고 생각합니다.
n차 정사각행렬의 역행렬을 C로 구하는 프로그램을 짜는 사람은 봤는데.. 극한은 해석학과 관련된 사항이니... 좀더 어려운것 같기는.. 흐흐 -,-;;
....
극한 혹은 무한급수가 포함된 수식의 값의 유한성을 따지는 일반적인 알고리즘은 존재하지 않습니다. 다만, 운이 좋은 경우 특별한 조건이 주어진다면 dopesoul님이 언급하신것처럼, 미적분학에서 배우는 수렴-발산의 판정법을 이용할수는 있습니다.
무한대라는 것을 제대로 다루기 위해서는, 자릿수에 연연하지 않는 심볼릭 자료구조를 만들어야 합니다. Mathematica에는 pi라던지 루트 2같은 무리수가 "제대로" 구현되어 있습니다. 기본적으로 무리수의 연산의 결과는 어떤 수치로 표현하지 않고 다만 심볼로 표현합니다. 사용자가 원할때, 연산의 결과를 근사값으로 표현해 주는 기능도 있습니다. 무한대라는 것도 Mathematica에는 어떤 심볼로 구현되어 있습니다. 그렇지만, Mathematica에서도 모든 수식의 무한/유한 여부를 판단할수는 없습니다. 여태까지 알려진 수식의 형태에 따른 판정법을 따르는 것일 뿐입니다.
No Pain, No Gain.
댓글 달기