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

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.

 채택된 답변

Ameer Hamza
Ameer Hamza 2020년 4월 7일
편집: Ameer Hamza 2020년 4월 7일
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.

추가 답변 (0개)

제품

릴리스

R2016b

태그

질문:

2020년 4월 7일

편집:

2020년 4월 7일

Community Treasure Hunt

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

Start Hunting!

Translated by