My int function return the same int function, how can I get the answer?

12 views (last 30 days)
syms k_m
syms q_m
syms x
assume(x>=0)
assume(q_m>0)
syms c
syms Beta
assume(c>0)
syms b_m
assume(b_m>=0)
assume(Beta>0)
a_3=(b_m*c*(x^c)*exp(-(x^c/Beta)))/((2*pi)^(1/2)*Beta)
o_3=-(int(a_3,x,k_m,q_m))
o_3 =
-int((2251799813685248*b_m*c*x^c*exp(-x^c/Beta))/(5644425081792261*Beta), x, k_m, q_m)
It is very stranger that the answer o_3 is the same equation as o_3=-(int(a_3,x,k_m,q_m))
How can I have the right answer? Thanks.
Also, I have another formula with int function, and it was given an right answer once, then later, I applied the same formula with int function, it gave me back the same formula with int function just like above.

Accepted Answer

Ameer Hamza
Ameer Hamza on 7 Apr 2020
Edited: Ameer Hamza on 7 Apr 2020
MATLAB's symbolic engine is not particularly the best. The output shows that the MATLAB symbolic engine couldn't find a closed-form solution, so it just returned the input. This shows that your equation does have a solution: https://www.wolframalpha.com/input/?i=integrate+%28m*c*%28x%5Ec%29*exp%28-%28x%5Ec%2Fb%29%29%29%2F%28%282*pi%29%5E%281%2F2%29*b%29++with+respect+to+x
In MATLAB you can get a solution in term of Whittaker function, but that is itself a differential equation
syms k_m
syms q_m
syms x
assume(x>=0)
assume(q_m>0)
syms c
syms Beta
assume(c>0)
syms b_m
assume(b_m>=0)
assume(Beta>0)
a_3=(b_m*c*(x^c)*exp(-(x^c/Beta)))/((2*pi)^(1/2)*Beta)
o_3=-int(a_3,x)
A = subs(o_3,q_m) - subs(o_3,k_m);
In such cases, numerical integration is the way to go.

More Answers (0)

Products


Release

R2016b

Community Treasure Hunt

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

Start Hunting!