ID:
PW:

     0 분
     7 분

프로그래밍 Tips
프로그래밍에 관한 Tip을 공유하는 곳입니다.


[python] handcalcs 수식을 손으로 쓴 것처럼...
이석종  2022-08-05 15:18:22, 조회 : 327, 추천 : 2
- Download #1 : handcalcs_main_rsz.png (23.4 KB), Download : 4


handcalcs 정리

 

https://github.com/connorferster/handcalcs

이 게시물에서는 깃허브에 올아와 있는 예제를 그대로 구현해보도록 하겠다.

 

d:\dev\handcalcs

 

handcalcs를 시작하기 전에 알아두어야 할 것들.

 

python설치

 

python은 프로그래밍 언어로서 요즘 가장 인기 있는 언어중 하나다. python만 까는 것보다 anaconda를 설치하는 것을 추천한다. anaconda는 python의 이런 기능 저런 기능들을 묶어서 한꺼번에 설치하도록 도와주는 프로그램이다. anaconda를 설치하면 handcalcs의 실행환경인 jupyter notebook도 설치된다.

 

jupyter notebook실행

 

jupyter notebook은 프로그램을 편하게 할 수 있도록 도와주는 일종의 개발환경이다 code를 입력하고 바로바로 그 결과를 확인할 수 있다. 실행방법은 anaconda prompt를 실행한 후 jupyter notebook이라고 입력하면 된다.

 

 

handcalcs설치 및 실행

 

설치 : pip install handcalcs

anaconda prompt에서 설치함. (base)

 

jupyter notebook실행

jupyter notebook

 

→ jupyter notebook이 실행되고 위와 같은 메시지를 볼 수 있다.

localhost: 8880 포트에서 실행중이라는 뜻.

 

console에서 지시하는대로 file위치 또는 URL을 브라우저의 주소창에 입력하면 브라우저에 아래와 같이 tree의 맨 위를 보여준다. 이것을 jupyter notebook Dashboard라고 부른다.

 

 

 

jupyter notebook에 대한 내용은 아래의 사이트에서 참고하기 바란다.

https://jupyter.org/

 

jupyter dashboard상태에서 우측 상단의 new를 선택해서 새로운 노트북을 시작한다.

아래와 같이 새로운 노트북이 만들어졌다. 이름은 Untitled로 되어있다. 주소창을 보면 현재 파일이 untitled.ipynb라는 것을 알 수 있다. file메뉴에 Save as, Save and Checkpoint 항목을 누르면 저장이 된다. 이때 기본 디렉토리는 notebook을 실행한 디렉토리다.

이름을 handcalcs_test로 바꿨다.

맨 위의 cell에 아래와 같이 handcalcs 패키지를 불러오는 명령을 입력한다.

 

jupyter notebook은 셀단위로 입력 및 실행을 하도록 되어있다. 실행을 원하는 셀에서 ctrl-Enter를 누르거나 상단의 ▶Run 버튼을 누른다.

 

이 셀은 실행을 해도 아무 일도 벌어지지 않는다. 단지 handcalcs.render만 불러올 뿐기이 때문이다. 이제 수식을 쓸 수 있다. 수식을 손으로 쓴 것처럼 보여주기 위해서는 아래의 명령을 사용한다.

 

셀의 왼쪽에 현재 셀을 표시하는 초록색막대가 보인다. 현재 셀의 아래에 새로운 셀을 추가하기 위해 B 키를 누른다.

 

%%render

 

예를 들어 셀에 아래와 같이 입력하고 실행하면

%%render
a =
2
b =
3
c =
2*a + b/3

 

아래와 같은 결과를 볼 수 있다. c=2*a+b/3 이라는 수식이 한번 보여지고 a와 b의 값이 대입된 수식이 보여진다. 마지막은 결과를 볼 수 있다.

이때 주의할 사항은 c=2*a+b/3 이렇게 입력하면 수식 전개과정이 보이지 않고 결과만 보이게 된다. c = 2*a+b/3와 같이 등호 앞뒤에 공백이 있어야 한다.

 

이번에는 근의 공식을 입력해보자. 근의 공식에는 루트가 포함되어있다. python에서 루트는 sqrt로 정의되어있다. 그리고 이 함수를 쓰기 위해서는 math로부터 sqrt를 import해야 한다.

 

새로운 셀을 시작하고 from math import를 입력한다. 그리고 a,b,c값을 할당한다.

ctrl-Enter를 눌러 실행하면 sqrt를 사용할 수 있게 될 것이고, a,b,c값이 각각 할당되었다.

 

b를 눌러 셀을 하나 추가한다. 그리고 아래와 같이 근의 공식을 입력한다.

우리는 근의 공식을 손으로 쓴 것처럼 표현할 것이기 때문에 셀의 맨 앞에 %%reder를 입력하나 후 근의 공식을 써준다. 그리고 실행하면 결과를 볼 수 있다. 근은 15.201이다.

 

%%render

x_pos = (-b + sqrt(b**2-4*a*c)/(2*a))

 

 

 결과를 살펴보면 아래의 사항을 알 수 있다.

-        변수명 x_pos라고 쓴 것은 _이후가 아래첨자로 바뀌었다.

-        -b는 b값이 -여서 -가 두번 나왔다.

-        sqrt함수는 루트모양으로 멋지게 변경되었다.

 

 

자 이제 수식이 멋지게 그려지는 것을 확인했으니 계산 결과를 확인해볼 차례다. x_pos에는 어떤 값이 들어있을까? 새로운 셀을 추가하고 x_pos를 입력하고 실행해본다.

out이라고 하면서 값이 나온다. 위의 랜더에서는 15.201이라고 나왔지만 실제 값은 소수점 이하가 많은 그야말로 값이다.

 

근의 공식을 다시보면 소수점이하가 세자리로 통일 되어있는 것을 볼 수 있다. b값도 -31/3이기 때문에 소수점 이하에서 3이 무한히 반복되는 값이다. 하지만 랜더링에서는 3자리로 정리되어있다.

 

소수점 이하 자리수를 조정할 수 있다. 근의 공식을 입력했던 셀의 %%render뒤에서 5를 입력해보자. 소수점 이하 5자리까지 표시된 것을 볼 수 있다.

 

 

 

 

 

 

 



  추천하기   목록보기

Copyright 1999-2022 Zeroboard / skin by zero
구조설계의 미래를 준비하는 모임 [구조설계미래포럼]