2016-07-27 2 views
2

나는 단풍 나무에서 절대 초보자를 나는 다음과 같은 이해하는 문제가있다 :diff로 함수를 정의 할 때 메이플에서 unapply 연산자를 사용해야하는 이유는 무엇입니까?

다음은 작동하지 않습니다 df_wrong(1); 이후

f:=(x)->x^2; 
df_wrong:=(x)->diff(f(x),x); 

항상 (df_wrong에) 잘못된 입력을 다음과 같은 "오류를 얻을 : diff가 1을 받았는데, 이는 두 번째 인수 "에 유효하지 않습니다. 얼마 후 나는 다음이 해결 발견 :

df_correct := unapply(diff(f(x), x), x); 

df_correct(1);입니다. 아무도 나를 설명 할 수 있습니다 문제가 무엇입니까 df_wrong 및 어쩌면 unapply() 해결 사용하여 문제를 해결할?

나는 메이플에 대한 설명을 unapply()으로 확인했지만 어떻게 든 나에게 아직 명확하지 않습니다.

미리 감사드립니다.

+1

차동 연산자'D'를 사용할 수도 있습니다. 예를 들어,'f : = (x) -> x^2;''D (f);'를 실행하십시오. – acer

+0

@acer : 더욱 좋습니다 - 감사합니다! – DonkeyKong

답변

2

잘못된 버전에서는 함수가 x을 함수 연산자로 사용합니다. 1을 입력하면 df_wrong(1)diff(f(1),1)으로 구문 분석됩니다. 이는 의미가 없으므로 wrt를 구분할 수 없습니다. 상수.

unapply의 좋은 점은 기능적 연산자를 반환한다는 것입니다. 즉, 을 조작 한 다음을 조작자로 사용할 수 있음을 의미합니다. 이것은 x을 전체 오른쪽의 연산자로 만드는 연산자 할당 명령 x -> ...과는 대조적입니다.

관련 문제