how to identify certain variables as constants?

11 次查看(过去 30 天)
For example, I have this equation
A*cos( w0*t+phi) * B*sin(n*w0*t+phi+psi)
where A,B,w0,psi are all constants, and n is a positive non zero integer.
I want to integrate with repsect to psi, from 0 to 2*pi, and I already know the answer is zero.
How do I make the symbolic toolbox understand the problem in a way it can come to that result?

采纳的回答

John D'Errico
John D'Errico 2020-11-9
Why not try it?
syms A B w0 t phi psi
syms n positive integer
V = A*cos(w0*t + phi)*B*sin(n*w0*t + phi + psi);
int(V,psi,[0,2*pi])
ans = 
0
  3 个评论
John D'Errico
John D'Errico 2020-11-9
编辑:John D'Errico 2020-11-9
I think you have an old MATLAB release.
clear
syms n positive integer
whos
Name Size Bytes Class Attributes n 1x1 8 sym
No other variables are created. From the help for syms, I see this:
syms ... ASSUMPTION
additionally puts an assumption on the variables created.
The ASSUMPTION can be 'real', 'rational', 'integer', or 'positive'.
Yes, in older releases I could have used assume, but how am I to know what release you are using?
So your real problem is then...
syms A B w0 t phi psi
syms n positive integer
V = A*cos(w0*t + phi)*B*sin(n*w0*t + phi + psi);
int(V,phi,[0,2*pi])
ans = 
πABsin(ψtw0+ntw0)
which MATLAB does not show as zero.
But we can reduce your problem to a simple one. First, A and B are irrelevant, if you expect the answer to be zero.
Consider this variation of your integral...
syms u v phi
int(cos(phi + u)*sin(phi + v),phi,[0,2*pi])
ans = 
πsin(uv)
Thus if we set u=w0*t, v=n*w0*t + psi, we get essentially the same solution, thus
-pi*sin(w0*t - n*w0*t - psi)
And that is zero only under certain circumstances, for specific values of those parameters, when
w0*t - n*w0*t - psi = K*pi
for integer values of K. So unless you have chosen specific values of those parameters, you would not get zero. Or, possibly, you did these computations incorrectly when you did it yourself.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Assumptions 的更多信息

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by