스프레드시트에서 미분 의사

소개



익숙한 스프레드시트 소프트웨어만으로 미분이 하고 싶다. 앞으로 소개하는 것은 그런 생각을 안고 있는 한 명의 논프로그래머가, 한 시간만에 짜낸 진한 역기이다. 도함수를 구하는 것은 무리라도, 미분계수에 맞추는 것은 가능하다는 것을 깨달은 것이다. 해설에 들어가기 전에 계산의 흐름을 설명한다.

계산 흐름



함수 f(x)에 대해,
1. 변수 x를 적절한 값 a로 둔다.
2. 보통 f(a)를 계산한다.
3. da를 a에 비례한 미세한 값 a*10^-10 등으로 둔다.
4. f(a+da)를 계산한다.
5. 항목 2,3,4를 사용하여 (f(a+da)-f(a))/da를 계산합니다.

이상. 무엇을 하고 있는가 하면, 미분의 정의 그 자체로부터, 극한의 계산을 생략했다, 말하자면 미분 의사. 단순하지만, 막상 스프레드시트 소프트웨어로 하려고 하면 망설일 수 있으므로, 이하에 상세를 해설한다.

상세



이번에는 적당히 x=0,±1,±2,±3,±4,±5로 한다.

A2
=ARRAYFORMULA(ROW(A1:A11)-6)



ARRAYFORMULA() 는 Google 스프레드시트 자체의 함수이므로 Excel 파티는 인수를 단일 셀로 자동 채우기. ROW() 에 대해서도, 링크를 참조.

다음으로, f(x)이지만, 이번은 간단을 위해 x^2로 한다.

B2
=ARRAYFORMULA(A2:A12^2)



다음의 dx는, 한없이 0에 가까운 값으로 하고 싶지만, 그것은 어디까지나 「x와 비교했을 때에」라고 하는 전제의 기초이다. 이번에는 적당히 dx=x*10^-10으로 했다. 미분 계수의 필요한 자릿수에 따라 조정하고 싶습니다.

C2
=ARRAYFORMULA(A2:A12*10^-10)



음, 다음 f (x + dx)는 입력 방법에 포인트가 있습니다. 이번에는 x^2라는 간단한 함수이기 때문에 문제 없을지도 모른다. 그러나 이것이 복잡한 다항식이되면 수식 입력이 상당히 번거롭습니다. 프로그래밍의 원칙에, DRY(Don't repeat yourself) 되는 것이 있는 것 같지만, 이것은 스프레드 시트에 있어서도 마찬가지라고 생각한다.

구체적인 이야기로 돌아가자. D2셀에는 f(x+dx)에 해당하는 수식을 그대로 던지는 것이 아니라 B2셀에서 수식을 복사하여 변수만을 치환해 주었으면 한다. 절차의 예를 쓰면 다음과 같다.
  • B2 셀을 편집 가능하게 한다.
  • 수식을 모두 선택하고 복사. 엔터키로 편집을 해제.
  • D2 셀을 편집 가능하게 한다.
  • 수식 붙여넣기. 엔터키로 편집을 해제.
  • D2 셀을 선택.
  • 편집에서 찾기 및 바꾸기를 선택하십시오.


  • 아래와 같이 입력.
  • 검색: A2:A12
  • 치환 후의 캐릭터 라인: (A2:A12+C2:C12)
  • 검색 : "특정 범위"
  • 수식 내에서도 검색 ☑



  • "모두 바꾸기"및 "완료"

  • 뭐라고 할 것이다. D2 셀의 수식이 완성되어 있지 않은가?

    D2
    =ARRAYFORMULA((A2:A12+C2:C12)^2)
    



    마지막으로 (f(x+dx)-f(x))/dx를 계산한다.

    E2
    =ARRAYFORMULA((D2:D12-B2:B12)/C2:C12)
    



    이것으로 미분 계수가 붙어 있습니다.

    이상이 미분 의사의 전용이다.

    결론



    현명한 독자라면 눈치채라고 생각하지만, x=0으로 소위 "zero division error"가 토해지고 있다. 비교적 치명적인 과제이다. IF() 의 종류를 사용해, 회피하는 방법도 있다고 생각하지만, 이번은 힘 다했다.

    또한 D2 셀에서 SUBSTITUTE()을 사용하지 않은 이유는 반환 값이 텍스트가되기 때문입니다. 사실은 함수만으로 끝내고 싶었다.

    앞으로는 위의 방법의 응용 예 등의 기사도 쓰고 싶다.

    그럼, 또.

    좋은 웹페이지 즐겨찾기