A month ago, I used Mathematica to solve my experiment of the Test Technology of Mechanics Engineering. The exeriment is mainly about the Fourier Transform and verify the validity of the theory of Fourier. My code is below:

Furthermore,I encounter a problem about Taylor Series that we can use the approximate value of Maclaurin Series to replace a function. I can see the degree of closeness between them by changing the variable n. That's my trial:

In three tasks, I am alway using the Evaluate command. Firstly,I know this command and I will remember it when the MMA cannot give the result that I want. However, it is confusing to me that I don't know when to use it or not use it.
Can someone help me?

The speed comes from calculating the symbolic result and substituting values into that, since as far as Plot is concerned the second version is the same as Plot[x^2, ...]. In the first case it will call f[x] for each point. Without to the HoldAll attribute Plot would not even have been aware of f[x]

In your case with FourierTrigSeries[originwave[t], t, 7] without EvaluatePlot would replace all occurances of t with numerical values doing things like:

It is all about the attributes of the function you are considering. In particular it is about Hold-Attributes. In your case the function Plot has attribute HoldAll. You can see this by using the function Attributes:

Attributes[Plot]

{HoldAll, Protected, ReadProtected}

Evaluate is then used to evaluate the symbolic expression first (nullifying the HoldAll-Attribute) and afterwards evaluating the obtained expression at certain numeric values for the plotting-variable x. If you do not use Evaluate then x is first replaced by a numerical value and then the expression is evaluated. This is done for every plotpoint.

Mathematica is a registered trademark of Wolfram Research, Inc. While the mark is used herein with the limited permission of Wolfram Research, Stack Exchange and this site disclaim all affiliation therewith.