Why doesnt matlab simplify the calculations.How could i improve my code?

5 views (last 30 days)
%In determining the load distribution in axial thrust bearings under an eccentric load,the following integral must be evaluated:
e=0.6;
m=0||1;
syms x
c=1.1;
a=(cos(1-2.*e));
na=-1.*(cos(1-2.*e));
eqn=@(x) (([1+(-1+acos(x))/(2.*e)].^(c)).*(cos(m.*x)));
Im=(1/(2*pi))*(int(eqn,x,na,a));
pretty(Im)

Answers (2)

Star Strider
Star Strider on 24 Mar 2017
In your problem, there may not be an analytical expression for the integral. If you want the numerical value, use the vpa function:
e=0.6;
m=0.1;
syms x
c=1.1;
a=(cos(1-2.*e));
na=-1.*(cos(1-2.*e));
eqn=@(x) (([1+(-1+acos(x))/(2.*e)].^(c)).*(cos(m.*x)));
Im=(1/(2*pi))*(int(eqn,x,na,a));
Im = simplify(Im, 'Steps',10); % Symbolic Simplification
pretty(Im)
Im_val = vpa(Im) % Numeric Value
Im_val =
0.48167541183902032831734712665393
I don’t know what you want for ‘m’. What you posted for it doesn’t make sense. Change it in my code to whatever it needs to be.
  3 Comments
Walter Roberson
Walter Roberson on 25 Mar 2017
To reach that integral with those equations, m would have to be about 1.9242
Walter Roberson
Walter Roberson on 25 Mar 2017
Alternately, with m = 1, the value 0.2416 would be reached with e approximately 0.96

Sign in to comment.


Walter Roberson
Walter Roberson on 25 Mar 2017
int() is not documented as accepting a function handle, only a symbolic expression or symbolic function.

Community Treasure Hunt

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

Start Hunting!