Wednesday, May 30, 2007
매스매티카] 함수 정의 방법, 사용자 함수 만들기; Mathematica User Defined Function
매스매티카에 무수히 많은 함수들이 이미 내장되어 있지만, 사용자가 직접 함수를 정의하여 사용할 수도 있습니다. 일반 프로그래밍 언어에서와 마찬가지입니다.
예를 들어, 변수 x에 10을 더한 후 반환하는 단순한 함수를, f(x) 라는 이름으로 정의하려면
이렇게 하면 됩니다. 함수 인수인 x 뒤에 밑줄(_)을 넣어서 x_ 이렇게 해야 합니다. 다만 우변의 x 에는 밑줄을 붙이면 안됩니다.
이제 매스매티카의 노트북(하얀 빈 종이)에
f[3]
이렇게 입력하고 Shift+Enter키를 치면 13 이 출력됩니다.
addTen[x_] := x + 10
이렇게 함수명을 여러 글자로 지정해도 됩니다.
다만 함수명의 첫글자는 소문자여야 합니다.
AddTen[x_] := x + 10
ADDTEN[x_] := x + 10
이렇게 대문자로 시작하는 함수명은 좋지 않습니다. 매스매티카의 기본 내장 함수와 상수들은 반드시 대문자로 시작하고, 사용자 정의 함수는 반드시 소문자로 시작하는 것이 관례입니다. 그래야 내장 함수인지 사용자 정의 함수인지 쉽게 구분할 수 있기 때문입니다.
그리고 매스매티카는 항상 대소문자를 엄격히 구분하기에, addTen[x_] 와 AddTen[x_] 는 서로 전혀 다른 함수입니다.
x의 y제곱을 반환하는 함수를 정의하려면
이렇게 합니다.
이전에
f[x_] := x + 10
이런 함수를 정의했다면,
f[x_, y_] 함수와 f[x_] 함수는 동시에 공존합니다.
f[3]
이렇게 변수 1개를 넣으면 f[x_] 함수가 실행되어 13이 나오고
f[2, 3]
이렇게 두 개를 넣으면, f[x_, y_] 함수가 실행되어 8이 출력됩니다. "함수 오버로딩 기능"인 듯한데, 매스매티카 매뉴얼에 여기에 대한 설명이 보이지 않았습니다.
?f
라고 하면, 함수 f 의 정의가 출력됩니다.
Clear[f]
이렇게 하면 f 라는 함수가 삭제됩니다.
예를 들어, 변수 x에 10을 더한 후 반환하는 단순한 함수를, f(x) 라는 이름으로 정의하려면
f[x_] := x + 10
이렇게 하면 됩니다. 함수 인수인 x 뒤에 밑줄(_)을 넣어서 x_ 이렇게 해야 합니다. 다만 우변의 x 에는 밑줄을 붙이면 안됩니다.
이제 매스매티카의 노트북(하얀 빈 종이)에
f[3]
이렇게 입력하고 Shift+Enter키를 치면 13 이 출력됩니다.
사용자 정의 함수명은 소문자로 시작
addTen[x_] := x + 10
이렇게 함수명을 여러 글자로 지정해도 됩니다.
다만 함수명의 첫글자는 소문자여야 합니다.
AddTen[x_] := x + 10
ADDTEN[x_] := x + 10
이렇게 대문자로 시작하는 함수명은 좋지 않습니다. 매스매티카의 기본 내장 함수와 상수들은 반드시 대문자로 시작하고, 사용자 정의 함수는 반드시 소문자로 시작하는 것이 관례입니다. 그래야 내장 함수인지 사용자 정의 함수인지 쉽게 구분할 수 있기 때문입니다.
그리고 매스매티카는 항상 대소문자를 엄격히 구분하기에, addTen[x_] 와 AddTen[x_] 는 서로 전혀 다른 함수입니다.
파라미터(매개변수) 여러 개 지정
x의 y제곱을 반환하는 함수를 정의하려면
f[x_, y_] := x^y
이렇게 합니다.
이전에
f[x_] := x + 10
이런 함수를 정의했다면,
f[x_, y_] 함수와 f[x_] 함수는 동시에 공존합니다.
f[3]
이렇게 변수 1개를 넣으면 f[x_] 함수가 실행되어 13이 나오고
f[2, 3]
이렇게 두 개를 넣으면, f[x_, y_] 함수가 실행되어 8이 출력됩니다. "함수 오버로딩 기능"인 듯한데, 매스매티카 매뉴얼에 여기에 대한 설명이 보이지 않았습니다.
?f
라고 하면, 함수 f 의 정의가 출력됩니다.
함수 삭제
Clear[f]
이렇게 하면 f 라는 함수가 삭제됩니다.
tag: mathematica
매스매티카 Mathematica | 수학 Math
<< Home