与えられた関数f(t)のn項のFourierTrigSeriesの点tの値を返す関数s [t、n]を定義したいと思います。例えば、f(t)= t^2の場合:Mathematica:代入の関数の制御順序を定義する
s[t_, n_] = FourierTrigSeries[t^2, t, n]; (* 2nd input = indep. variable *)
s[t, 3]
Out = Pi^2/3 + 4 (-Cos[t] + 1/4 Cos[2 t] - 1/9 Cos[3 t])
(tの関数)です。 t = 0で、それを評価する:
s[t, 3] /. t -> 0
Out = -31/9 + Pi^2/3
これは私がSの出力[0]、[3]、意味する "T = 0 3項のFourierTrigSeriesで評価する" と見たいものです。
しかし、s [0,3]を実行すると、t = 0は「早すぎる」ので、元の関数f(t)= t^2は同じになります。独立変数t(FourierTrigSeriesへの第2の入力)さえも0になり、意味をなさない。唯一その後、Iはnは最初にその値を代入するように、関数S [T、N]を定義したいと:
s[0, 3]
Out = FourierTrigSeries[0,0,3]
要約は:結果は次のようにMathematicaは心と戻りを読み取ることができないということです、tは評価のためにその値によって置換される。
s [t、n]の代わりにs [n、t]を実行しようとしました。また、=の代わりに=(遅延評価)を使用すると、さまざまな方法で組み合わせることができます。
ss[tdelay_, n_] = s[t, n] /. t -> tdelay
しかし、何も動作していないようです。私が望む行動をどうやって得ることができますか?
ありがとうございます!
偉大な、それは動作します! ありがとうございます。 –