close_btn

  • ※ 사이트 내부 통합검색


  • ※ Paypal 기부하기
    ※ 카카오페이로 기부하기

1. 공학용 계산기의 꽃? solve 기능이란?

solve 기능은 "방정식을 (손으로) 한 문자로 정리해서 풀지 않고, 식을 있는 그대로 (계산기에) 입력해서 해를 찾을 수 있는 기능"입니다. 

방정식을 통채로 집어넣으면 해가 튀어 나온다니... 아름답지 않습니까?
공학용 계산기의 꽃으로 불러도 손색이 없습니다. 

(개인적으로) Solve 기능이 없는 공학용 계산기를 공학용이 아닌 공학향(香) 계산기로 부르는 것도 바로 그 때문입니다. 향기만 날 뿐 진짜가 아니므로 맛이 없습니다. (바나나향 우유는 맛있습니다만... )

 

2. 해(Solution)를 찾는 알고리즘

300px-NewtonIteration_Ani.gif대부분의 공학용 계산기에서 Solve 기능으로 채택하는 알고리즘이 바로 Newton-Raphson Method (뉴튼법이라고도 함, 이하 뉴튼법이라고 칭함)입니다. 

오른쪽 스샷을 통해 뉴튼법으로 해를 찾는 과정을 확인할 수 있습니다. 

(사진 출처 : 위키)

보시다시피 x → y → x → y → x .... 찾는 과정이 반복됩니다. 그래서 x의 초기값(시작점)이 필요하고 중요합니다.

이차방정식의 경우(해가 2개 존재한다고 가정) 접선의 기울기가 0인 꼭지점을 기준으로 시작점이 왼쪽에 있으면 왼쪽의 해만 찾아지고, 오른쪽에 있으면 오른쪽의 해만 찾아집니다. 그래서 기울기가 0인 x 값을 알면 편하겠지만, 실제로는 그렇지 않은 경우가 많기 때문에 아~~주 큰 값이나 아~~주 작은 값을 넣어버려도 됩니다. 

시작점이 해에 가까울수록 반복 횟수가 줄어들긴 하지만, 고생하는건 계산기니까... 괜찮습니다. 

해를 찾을 수 있는 수치해석방법은 이분법, 가위치법 등 다양하지만, 그 중에서 뉴튼법이 가장 대표적으로 쓰이는 이유는 해를 찾는 속도가 빠르고 해의 구간을 알지 못해도 해를 찾을 수 있는(=개방법) 편리함이 있기 때문입니다.

 

3. 답이 구해지지 않을 때
(feat. 계산기를 거드는 방법 = 원하는 답을 구하는 방법)

그런데 뉴튼법이 만능인 것은 아닙니다. 아래처럼 특정한 경우에는 메롱메롱해지면서 답을 구하지 못하기도 합니다.

  • 방정식을 그렸을 때, 그래프가 매끄럽지 못하고 날카로운 경우
  • 그래프가 이리저리 들쑥날쑥한 경우
  • 초월함수 : 거의 수직/수평의 기울기를 가지는 경우
  • 주기함수 : 삼각함수

해가 여러개인 함수인 때에는 답을 구하더라도, 이걸 찾았다가 저걸 찾았다가 왔다갔다 하기도 하구요.

따라서 solve 기능이 이상하다 싶으면 계산기를 조금 거들어줘야 합니다. 계산기를 거드는 방법은 크게 세가지인데, 그리 어렵지 않습니다. 

  1. 초기값(=추정값)을 잘! 입력.
    이 때 초기값은 원하는 결과에 가까울수록 원하는 결과값을 구하는데 유리합니다.

     
  2. 해를 찾을 범위(lower bound, upper bound)를 지정.
    범위를 지정할 수 있다면! 해보시는게 좋습니다만, 지정할 수 없는 계산기에서는 패스!

     
  3. 방정식을 변형. (=최적화 내지는 간소화)
    식을 한쪽으로 몬다거나... 
    공식등을 이용해서 식을 짧게 줄인다거나...
    식 일부로만 해를 구해본다거나...

그러면 아주 요상한 경우가 아닌 이상 원하는 구간에서 원하는 해를 찾을 수 있답니다. 


만약 그래도 해결이 안된다면... 그래프를 그려보는 것이 가장 좋은 방법인 것 같습니다. (인터넷 찬스=울프람 알파, 상급 계산기 등을 이용해야 할겁니다.) 그래프 기능이 불가능하다면 부족하나마 TABLE 기능이라도 사용해보시는 방법도 있습니다. (댓글 예시 참고)

 

4. 계산기별 Solve 기능 설명글 링크

★ TI

  • [TI-nspire] 
    16_right.png http://www.allcalc.tk/3448 (solve), 
    http://www.allcalc.tk/9250 (nsolve)

★ CASIO 

  • [fx-570 ES] 16_right.png http://www.allcalc.tk/5263
  • [fx-5800P] 16_right.png http://www.allcalc.tk/8474
  • [fx-9860G] 16_right.png http://www.allcalc.tk/6005
댓글 '5'
  • profile

    에러 메시지 Can't Solve 가 나오는 예 : [fx-570ES Plus]

    http://kin.naver.com/qna/detail.nhn?d1id=11&dirId=1114&docId=249429180&ref=me2lnk

    K-20160404-314084-32p.png K-20160404-313651-32p.png

    추정 원인 : 그래프가 너무 급격함

    04-04-2016 Image001-32p.png

    해결 방법 : 초기값 정밀하게 입력(X), 구간입력(불가능), 식 변형(?)

  • profile
    세상의모든계산기 2016.04.04 10:06

    [fx-570] 에서 solve 가 불가능할 때 TABLE을 이용한 노가다로 해를 구할 수도 있습니다.
    http://www.allcalc.tk/17077

    말그대로 노가다입니다.

  • profile

    주기함수 (삼각함수)의 solve 예


    문제 : 2cos(x)-cos(30˚)=0 을 만족하는 x를 찾기


    04-05-2016 Image002-32p.png

    그래프는 위와 같습니다.


    그런데 solve(Newton법) 기능을 어디에서 시작하느냐에 따라서 찾아지는 결과값이 달라집니다. 

    [fx-570ES Plus] 의 경우

    초기값 0일 때 ⇒ K-20160405-375018-32p.png

    초기값 1일 때 ⇒ K-20160405-375475-32p.png

    초기값 20~100 일 때 ⇒ K-20160405-375154-32p.png

  • profile

    초기값 찾기

    초기값이 없어도 해가 나오면 좋지만, 초기값이 없어서 해를 못찾는 경우가 있습니다. 이 때는 해에 가까운 값일수록 바람직하다고 볼 수 있습니다. 그런데 해에 가까운 값을 넣기에는... 해를 모르시죠? "짱구"를 잘 굴려서 찍는 방법이 있지만, 그게 안통한다면 다시 계산기 도움을 받아야 합니다. 

    • 그래핑급 계산기 : 그래프를 그려보시면 됩니다. 가장 확실합니다. 그래핑 급 계산기라면 다시 solve로 돌아올 필요 없이 그래프에서 trace (추적) 기능을 이용해 해를 찾으시는게 좋습니다. 
    • 기초형 계산기 : 기초형 계산기에도 TABLE 기능이 있는 것이 보통입니다. 그래프는 아니지만, 일정한 x 간격으로 y 값을 찾아서 표를 만들어줍니다. 
      예) K-20160408-386745-32p.png 이런 경우에는 3.1415(=π)와 4.7123(=(³/₂)π)) 사이에 해가 있음을 알 수가 있습니다. 
  • profile
    세상의모든계산기 2017.11.08 22:49

    L-R= 의 의미

    "결과의 (좌측)-(우측)" 은 얻은 결과를 기저 변수에 대입했을 때의 결과를 나타내고 있습니다. 이 값이 0에 가까우면 가까울수록, 얻는 결과의 정밀도가 높아집니다.  - [fx-570 ES] 설명서 中

    • "원래의 입력 방정식"을 (좌변=우변) 형태에서 (좌변Left-우변Right) 형태로 변경한 다음에, solve 로 구해진 기저 변수 결과값을 (Left-Right) 식에 대입하여 얻은 값이 'L-R=' 입니다. 
    • "정답"이라면 당연히 0이 나와야 합니다. 하지만 공학용 계산기 solve 함수가 언제나 정답을 찾아주는 것이 아니라서, 계산기가 찾아준 결과가 얼마나 믿을만한지를 간접적으로 제시해주는 것이 L-R= 값입니다.
?