다음은 이차방정식 x^2 - x - 1 = 0 의 양의 근 즉 황금비율(golden ratio)을 구하는 Julia 애플리케이션 소스이다. 황금비율을 구하는 비례방정식은 1 : x = x : (x+1) 이며, 이를 이차방정식으로 표현한 것이 x^2 - x - 1 = 0 이다.
See: http://en.wikipedia.org/wiki/Golden_ratio
- # Filename: testGoldenRatio.jl
- # 황금률(즉, 이차방정식 x^2 - x - 1 = 0 의 양의 근)을 계산한다.
- #
- # Execute: julia testGoldenRatio.jl
- #
- # Date: 2013. 3. 5.
- # Author: pkim __AT__ scripts ((DOT)) pe ((DOT)) kr
- function printUsing()
- println("Using: python testGoldenRatio.py [-h|-help]")
- println("This calculates the value of the golden ratio.")
- end
- # 이차방정식 a x^2 + b x + c = 0 의 근을 구한다.
- function findQuadraticRoot(a, b, c)
- if a == 0.0
- throw("Since the highest coefficient is zero, the given equation is not a quadratic equation.")
- elseif b*b - 4*a*c < 0.0
- throw("Since the discriminant " * "$(b*b - 4*a*c)" * " is negative, the given equation has no real root.")
- end
- x1 = (-b + sqrt(b*b - 4*a*c)) / (2.0 * a)
- x2 = (-b - sqrt(b*b - 4*a*c)) / (2.0 * a)
- return (x1, x2)
- end
- # 실행 시작 지점
- if length(ARGS) > 0 && (ARGS[1] == "-h" || ARGS[1] == "-help")
- printUsing()
- exit(1)
- end
- try
- # values = findQuadraticRoot(0.0, -1.0, -1.0)
- # values = findQuadraticRoot(1.0, -1.0, 3.0)
- values = findQuadraticRoot(1.0, -1.0, -1.0)
- x1 = values[1]
- x2 = values[2]
- if x1 >= x2
- println("The bigger root is " * string(x1) * ", ")
- println("and the less root is " * string(x2) * ".")
- else
- println("The bigger root is " * string(x2) * ", ")
- println("and the less root is " * string(x1) * ".")
- end
- catch x
- println(x)
- end
실행> julia testGoldenRatio.jl
The bigger root is 1.61803398875,
and the less root is -0.61803398875.
'프로그래밍 > Julia' 카테고리의 다른 글
진법(radix) 표 만들기 예제 with Julia (0) | 2013.03.05 |
---|---|
대화형 모드의 진법(radix) 변환 예제 with Julia (0) | 2013.03.05 |
조립제법(Horner의 방법) 예제 for Julia (0) | 2013.03.03 |
80컬럼 컨솔에 19단표 출력하기 예제 for Julia (0) | 2013.03.03 |
(최대공약수 구하기) while... 반복문 예제 for Julia (0) | 2013.03.03 |