스프레드시트에서 미분 의사
3983 단어 ExcelGoogleSpreadSheet
소개
익숙한 스프레드시트 소프트웨어만으로 미분이 하고 싶다. 앞으로 소개하는 것은 그런 생각을 안고 있는 한 명의 논프로그래머가, 한 시간만에 짜낸 진한 역기이다. 도함수를 구하는 것은 무리라도, 미분계수에 맞추는 것은 가능하다는 것을 깨달은 것이다. 해설에 들어가기 전에 계산의 흐름을 설명한다.
계산 흐름
함수 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셀에서 수식을 복사하여 변수만을 치환해 주었으면 한다. 절차의 예를 쓰면 다음과 같다.
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()을 사용하지 않은 이유는 반환 값이 텍스트가되기 때문입니다. 사실은 함수만으로 끝내고 싶었다.
앞으로는 위의 방법의 응용 예 등의 기사도 쓰고 싶다.
그럼, 또.
Reference
이 문제에 관하여(스프레드시트에서 미분 의사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/eisuke_qiita/items/7fe59eae2ac5445502ca텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)