How to do symbolic integration

2 views (last 30 days)
gourav pandey
gourav pandey on 23 Dec 2021
Commented: Star Strider on 24 Dec 2021
%% I am unable to get the result. Thank you so much in advance
clc;
clear;
syms omega x n m
% assuming omega::real,omega>0,m::integer,m>0,n::integer,n>0;
fun=int(cos(atan(1,x))^m*sin(omega*x)/(1+x^2)^((n)/2+1),x,0,Inf);

Answers (2)

Star Strider
Star Strider on 23 Dec 2021
It apparently does not have a symbolic solution (this is not uncommon).
It does have a piecewise closed-form solution, at least over some regions, and one option would be to numerically integrate it (although that could have problems as well) —
syms omega x n m real
sympref('AbbreviateOutput',false);
assume(m,'integer')
assumeAlso(m,'positive')
assume(n,'integer')
assumeAlso(n,'positive')
assume(omega,'positive')
% assuming omega::real,omega>0,m::integer,m>0,n::integer,n>0;
integrand = cos(atan(1,x))^m*sin(omega*x)/(1+x^2)^((n)/2+1)
integrand = 
integrand = simplify(integrand, 500)
integrand = 
fun=int(integrand,x,0,Inf)
fun = 
nfun = matlabFunction(integrand) % Anonymous Function Argument To 'integral'
nfun = function_handle with value:
@(m,n,omega,x)x.^m.*sin(omega.*x).*(x.^2+1.0).^(m.*(-1.0./2.0)-n./2.0-1.0)
This likely as good as it gets.
.

KSSV
KSSV on 23 Dec 2021
Try substituing the values of m and n.
syms omega positive real
% syms n m positive integer
syms x
% assuming omega::real,omega>0,m::integer,m>0,n::integer,n>0;
m = 5 ; n = 4 ;
fun=int(cos(atan(1,x))^m*sin(omega*x)/(1+x^2)^((n)/2+1),x,0,Inf)
fun = 
  1 Comment
gourav pandey
gourav pandey on 23 Dec 2021
Hii,
I have some restriction due to which i can't substitute the values on omega, m, and n. Is there any other way to integrate the above expression.

Sign in to comment.

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!