Mathematica Mathematica: Transistor Harmonic Derivations

AI Thread Summary
The discussion centers on deriving the harmonic content of a signal through a transistor's transfer function using Mathematica. The user seeks assistance in reducing terms like (A Sin(wt))^3 to first-order sine and cosine functions. Initially, they struggle to find a suitable function for this reduction, expressing frustration with Mathematica's output format. A solution is provided using the TrigReduce function, which successfully simplifies the expression. The conversation highlights the importance of syntax in Mathematica, as a simple error in function notation (using Sin() instead of Sin[]) caused confusion. Additionally, there is a call for improved error messaging in Mathematica to help users identify such issues more easily, emphasizing the need for clearer indicators for common mistakes in coding.
vadar
Messages
16
Reaction score
0
Hello,

I am trying to derive the harmonic content of a signal passing through a transistor's transfer function. After a Taylor expansion in Mathematica 7, I have the expanded equation and the next step is to reduce everything to first order Sine/Cosine functions.

In Mathematica, if I have a term like

(A Sin (wt) )^3

What function can I use to reduce this down? Doing it by hand it should look something like

a Sin(wt) - b Sin(3wt) + c Sin(wt)

where a,b,c are the collections of constants.
Any idea how I can do this reduction in Mathematica? I can't seem to get/find a function like TrigReduce to do what I want.

Thanks for any help.
 
Physics news on Phys.org
Mathematica often has its own idea about the form it wants things in and trying to force it to put it in the form you want can often be a frustrating experience.

This can show you the coefficients without having to do it by hand, and without what I think might be a typo in what you said the result should be.

In[1]:= Table[Integrate[Sin[n w t]A Sin[w t]^3,{t,0,2Pi/w}]/(Pi/w),{n,0,3}]

Out[1]= {0, (3*A)/4, 0, -A/4}

In[2]:= FullSimplify[3A/4Sin[w t]-A/4Sin[3 w t]==A Sin[w t]^3]

Out[2]= True

Only after I finished that did I grope around and discover this

In[3]:= TrigReduce[A Sin[w t]^3]

Out[3]= (3*A*Sin[t*w] - A*Sin[3*t*w])/4

Note: You may find if your "A" is a large complicated collection of other things then this might confuse TrigReduce to the point where it will not do the transformation that you desire. If that is the case you may be able to use pattern matching and substitution to temporarily remove the large complicated collection, do the TrigReduce, and then put back the large complicated collection.
 
Last edited:
Gah... I was using Sin() instead of Sin[]...

I have TrigReduce working now, Thank you very much! Its always the little things haha

Cheers
 
vadar said:
Gah... I was using Sin() instead of Sin[]...

I have been recommending for a long time that there be a new feature in Mathematica.

This would make things
like sin(x), sin[x], e^x, etc, etc, etc
and many or most of the other simple errors like this

BIG RED BLINKING TEXT!

Now if I could just make that blink I would be done.

Just yesterday I spent twenty minutes trying to figure out why in the world someone's if-then-else code was actually executing BOTH the then and the else... Finally in two pages of tiny printed code I stumbled onto it was if[condition,then,else]. Did you notice that i in if wasn't capitalized? In two pages of dense code? And without a peep of an error message? And it wasn't RED BLINKING TEXT! To find that I had to put Print statements all over in the code until I was able to even see both then and else were being executed and then moving the Prints around until I finally stumbled onto the reason. He had wasted a day trying to figure this out. There is no excuse for the software not pointing this out.
 
Last edited:

Similar threads

Replies
2
Views
2K
Replies
6
Views
11K
Replies
3
Views
6K
Replies
4
Views
3K
Replies
8
Views
10K
Replies
6
Views
10K
Back
Top