2012-12-05 7 views
2

나는 매스 매 티카 함수를 파생 시키려고 노력하고있다. 함수 OK를 구별하고 %을 사용하여 함수를 플롯 할 수 있지만 함수 f[t_],이어서 Plot[ f[t] , {t,-1,1} ]이되도록 미분을 지정하여 플롯 할 수 있기를 바랍니다.Mathematica : 조각 별 함수의 미분을 그려라.

나는 오는 오류를 해결하는 방법을 모르겠습니다.

매스 매 티카 코드는 다음과 같습니다

Clear[moll, f] 

moll[x_] := 
Piecewise[ { {E^(-1/(1 - x^2)), -1 < x < 1} , {0,x <= -1 || x >= 1} } ]; (* Standard  mollifier *) 

f[t_] := D[ moll[t] , t] 

f[t] 

Plot[%, {t, -1, 1}] (* this line works *) 

Plot[f[t], {t, -1, 1}] (* this line comes up with an error *) 
+2

예를 들어 'f [2]', 음모가 작동하지 않는 이유를 알 수 있습니다. 함수를'f [t_] = D [moll [t], t]'('SetDelayed' 대신'Set')로 정의 할 수 있습니다. – Niki

답변

5

는 사용자 정의 함수에 관해서는 조금 까다롭게입니다 Plot[Evaluate[f[t]], {t, -1, 1}]

플롯을 사용해보십시오.

1

플롯의 '까다 롭습니다'는 Atttributes[Plot]에서 비롯되며 HoldAll을 포함하므로 꾸밈없는 f은 평가되지 않습니다. ratatosk에 의한 강제 평가가 제안합니다. 주어진 함수와

2

당신은 사용할 수 있습니다

Plot[f[t], {t, -1, 1}, Evaluated -> True] 

Evaluated -> TrueEvaluate[f[t]] 이상 preferred이 될 것입니다.

Block[{t}, 
    f[t_] = D[moll[t], t] 
] 

는 설명 Scoping in assigning a derivative를 참조하십시오

더 나은는 nikie의 조언에 따라 다르게 f을 정의하는 것입니다.

관련 문제