Raspberry Pi_Kor_23.2.3 Mathematica 사용법


Published Book on Amazon


All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2


출판된 한글판 도서


최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)


Original Book Contents


23.2.3  Mathematica 사용법

 

여기서는 사례를 이용하여 Mathematica에서 “Notebook”을 어떻게 사용하는지를 설명하도록 하겠다.

 

23.2.3.1    Mathematica에서의 Program 작성방법

 

   script 입력 및 실행

 

Notebook window에서 화면을 click하고 다음을 입력한다. [Shift + Enter]를 누르면 command를 실행하게 되고, 화면에 아래와 같이 "Hello world"를 인쇄한다.

 

Print["Hello world"]

Hello World

 

아래와 같은 형식으로 계산이 필요한 내용을 입력하면 수학적 계산을 할 수 있다.

 

In[2]:= 2 + 2

 

Out[2]= 4

 

In[3]:= 16254 / 32

 

Out[3]= 8127 / 16

 

In[4]:= 1024 * 32

 

Out[4]= 32768

 


 

   Notebook 편집   

 

앞에서 입력한 내용을 마우스로 클릭하거나 [/하 화살표] 키로 이동하여 내용을 수정하거나, 추가하거나, 삭제한 다음, [Shift + Enter]를 눌러서 그 자리에서 다시 명령을 실행할 수 있다.

 

이전에 저장된 “Notebook”을 다시 open하여 작업할 수도 있는데, 그러면 이전에 입력한 내용이 inputoutput 내용 모두가 그대로 보이고, [Shift + Enter]를 이용해서 각각의 cell을 실행해 볼 수 있고, 메뉴에서 Evaluation à Evaluate Notebook을 이용해서 전체를 한꺼번에 실행해 볼 수도 있다.

 

 

   variable의 사용

 

프로그램 처리 중에 필요하면 변수에 계산결과를 저장해 놓을 수 있다. 아래와 같이 입력한다. 참고로 각 행의 끝에 semicolon ;”을 입력하면 output이 인쇄되지 않도록 하는 것이다.

 

radius = 5;

diameter = 2 * radius;

circumference = 2 * Pi * radius;

area = Pi * radius^2;

 


 

   기호 상수(Symbolic values)

 

아래에서, “π”에 대한 기호상수 값을 가지고 있는 내부 정의 기호 “Pi”에 대해서 살펴보자. 우리가 방정식엣 "Pi"라고 입력했을 때, 이것은 “π”의 실제값(true value)에 대한 참조를 방정식에 전달한 것으로, 이것이 소수점으로 전환되어 반올림되는 것이 아니라는 것을 의미한다.

 

In[19]:= Pi

 

Out[19]: π

 

In[20]:= tau = 2 * Pi

 

Out[20]: 2 π

 

기호상수에 대한 소수점 표현값(decimal representation)을 알고 싶은 경우는 “N” function을 사용한다

 

In[5]:= N[Pi]

 

Out[5]: 3.14159

 

기호상수에 대한 기본적인 정밀도(significant figures)는 숫자 6 자리이다. 그래서 위의 결과 값이 숫자 6개로 되어 있다. 필요하면 아래와 같이 두 번째 인수에 더 큰 정밀도를 지정할 수도 있다.

 

In[6]:= N[Pi, 10]

 

Out[6]: 3.141592654

 

여기서 지정한 정밀도는 전체 숫자의 자리수이다. 위에서 보면 숫자 “3”과 함께 소수점 9자리가 표시되어 있는 것을 알 수 있다

 


 

   배열(Lists)

 

집합 형태의 자료는 배열(list)에 자료를 저장할 수 있다.

 

nums = {1, 2, 3, 5, 8}

people = {"Alice", "Bob", "Charlotte", "David"}

 

 

   범위(Range)

 

“Range” function을 사용하면 숫자의 배열(list)을 쉽게 만들 수 있다.

 

Range[5]        (*The numbers 1 to 5*)

Range[2, 5]     (*The numbers 2 to 5*)

Range[2, 5, 2]         (*The numbers 2 to 5, in steps of 2*)

 

 

   Table

 

“Table” function은 배열 내의 값을 이용해서 새로운 배열자료를 만들어 낼 수 있다

 

Table[i ^ 2, {i, 10}]    (*Squares of the numbers 1 to 10*)

Table[i ^ 2, {i, 5, 10}] (*Squares of the numbers 5 to 10*)

Table[i ^ 2, {i, nums}]  (*Squares of the items in the list nums*)

 

 

   순환(Looping)

 

Do function을 이용해서 지정회수나 배열 내의 항목 갯수만큼 반복 실행을 할 수 있다.

 

Do[Print["Hello"], {10}] (*Print "Hello" 10 times*)

Do[Print[i], {i, 5}] (*Print the numbers 1 to 5*)

Do[Print[i], {i, 3, 5}] (*Print the numbers 3 to 5*)

Do[Print[i], {i, 3, 5}] (*Print the numbers 1 to 5, in steps of 2*)

Do[Print[i ^ 2], {i, nums}] (*Print the square of each item in the list nums*)

 

 


 

   Function Help

 

function 이름 앞에 question mark ?”를 붙인 다음 [Shift + Enter]로 실행을 하면, 해당 function에 대한 usage help을 얻을 수 있다. 다음은 function Sqrt”에 대한 도움말을 확인한 것이다.

Square root function help

 

 

   Function Search

 

Function 이름을 정확히 모를 때는 question mark ?”와 함께 function name의 일부분과 asterisk *”wildcard로 사용하여 검색조건에 맞는 function 목록을 한꺼번에 조회할 수 있다아래는 이름에 "Device"라는 글자를 포함하는 모든 function을 찾은 결과이다.

 

In[15]:= ?Device*

Function search

 


 

필요하면 아래와 같이 여러 개의 wildcards를 사용할 수도 있다. 그러면 조건에 맞는 모든 function 들을 조회할 수 있을 것이다.

Search wildcards

In[16]:= ?*Close*

 

 

 

   주석(Comments)

 

괄호 “( )”와 asterisk *”를 사용하여 “(*주석내용*)”의 형태로 scripts 내에서 주석을 달아 놓을 수 있고, 이들은 나중에 실제 명령이 실행될 때는 무시된다.  

 

Print["Hello"] (*Print "Hello" to the screen*)

 


 

23.2.3.2    프로그램 저장 및 재사용

 

한번 작성된 프로그램은 메뉴 File à Save를 이용하여 파일로 저장하여 재사용할 수 있다. 파일로 저장할 때는 여러 가지 format을 사용할 수 있는데, Wolfram notebook(.nb) 이나 Wolfram mathematica package(.m), Wolfram language package(.wl)  또는 일반 파일(.txt) 로 저장할 수도 있다.

 

파일로 저장된 자료는 다시 open하여 그대로 다시 실행할 수도 있고, 수정하여 실행할 수도 있다. [Shift + Enter]를 이용해서 각각의 cell을 실행해 볼 수 있고, 메뉴에서 Evaluation à Evaluate Notebook을 선택하여 전체를 한꺼번에 실행할 수도 있다.

 



   Shell에서 wolfram을 이용한 scripts 실행

 

Wolfram mathematica package(.m), Wolfram language package(.wl) 형태로 저장된 scriptShell에서 “wolfram” 명령으로 직접 실행할 수도 있는데, 이때는 “-script flag를 사용한다. 아래 사례에서 “print” 명령이 있는 script가 “test_print.m” 파일로 저장되어 있다. Shell에서 이 script 파일을 직접 실행하고자 하면 다음과 같이 실행한다. 그러면 화면에 "Hello World" 라는 문구가 인쇄되어 나온다.

 

wolfram  -script      test_print.m

Wolfram script

 

 

 


 

Leave a Reply