다음은  이차방정식 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


  1. #  Filename: testGoldenRatio.jl
  2. #    황금률(즉, 이차방정식 x^2 - x - 1  = 0 의 양의 근)을 계산한다.
  3. #
  4. #   Execute: julia testGoldenRatio.jl
  5. #
  6. #      Date:  2013. 3. 5.
  7. #    Author:  pkim __AT__ scripts ((DOT)) pe ((DOT)) kr
  8. function printUsing()
  9.     println("Using: python testGoldenRatio.py [-h|-help]")
  10.     println("This calculates the value of the golden ratio.")
  11. end
  12. # 이차방정식 a x^2 + b x + c  = 0 의 근을 구한다.
  13. function findQuadraticRoot(a, b, c)
  14.     if a == 0.0
  15.         throw("Since the highest coefficient is zero, the given equation is not a quadratic equation.")
  16.     elseif b*b - 4*a*c < 0.0
  17.         throw("Since the discriminant " * "$(b*b - 4*a*c)" * " is negative, the given equation has no real root.")
  18.     end
  19.     x1 = (-b + sqrt(b*b - 4*a*c)) / (2.0 * a)
  20.     x2 = (-b - sqrt(b*b - 4*a*c)) / (2.0 * a)
  21.     return (x1, x2)
  22. end
  23. # 실행 시작 지점
  24. if length(ARGS) > 0 && (ARGS[1] == "-h" || ARGS[1] == "-help")
  25.     printUsing()
  26.     exit(1)
  27. end
  28. try
  29.     # values = findQuadraticRoot(0.0, -1.0, -1.0)
  30.     # values = findQuadraticRoot(1.0, -1.0, 3.0)
  31.     values = findQuadraticRoot(1.0, -1.0, -1.0)
  32.     x1 = values[1]
  33.     x2 = values[2]
  34.     if x1 >= x2
  35.         println("The bigger root is " * string(x1) * ", ")
  36.         println("and the less root is " * string(x2) * ".")
  37.     else
  38.         println("The bigger root is " * string(x2) * ", ")
  39.         println("and the less root is " * string(x1) * ".")
  40.     end
  41. catch x
  42.     println(x)
  43. end



실행> julia testGoldenRatio.jl
The bigger root is 1.61803398875,
and the less root is -0.61803398875.



Posted by Scripter
,