Solving an integration problem
Show older comments
Good morning,
I am tring to solve an integration problem. But Matlab don't give me the value. Can you help me please.
Here is the code:
--------------------
clc; clear all;
syms R t r c d x y z s2 D N g;
x = cos(t)+d./(c*r);
y = sin(t);
s1 = x^2+y^2;
z = cos(t)+d./(c*R);
s2 = z^2+y^2;
D = simplify(c^4*R^2*r*s1*s2)
N = (r-R)^2;
%function to integrate
g = expand(N/D)
%-first integral-%
f = @(t) g;
I = int(f, t, 0, 2*pi)
---------------------------
Best regards
Answers (2)
Ameer Hamza
on 12 May 2018
You need to pass symbolic expression directly into int as follow
I = int(g, t, 0, 2*pi);
int() tries to find an analytical solution for the integration. And since there are so many symbols, it is highly unlikely that you will get a useful solution. Try pre-defining the values of r, c, d and R, and only define t as sym because it is variable of integration. So modify your code as follow
syms t;
d = 1; % give appropriate values
c = 10;
r = 1;
R = 200;
x = cos(t)+d./(c*r);
y = sin(t);
s1 = x^2+y^2;
z = cos(t)+d./(c*R);
s2 = z^2+y^2;
D = c^4*R^2*r*s1*s2;
N = (r-R)^2;
%function to integrate
g = N/D;
%-first integral-%
I = int(g, t, 0, 2*pi)
Babacar Ndiaye
on 16 May 2018
3 Comments
Walter Roberson
on 16 May 2018
Do not use
g = @(r) R*I;
as that is a function handle that takes a single argument that it ignores. You should just
J = int(R*I, r, R, 1/2*pi)
However... there are only narrow circumstances under which the result is not one of the infinities or undefined. Are there restrictions you can place on the variables, such as particular ones being non-negative or real valued?
Ameer Hamza
on 17 May 2018
Edited: Ameer Hamza
on 17 May 2018
@Babacar, the integrand in your case is quite complex. It is very unlikely that you will be able to get an analytical solution. The best chance of solving this problem is to use a numerical optimization method.
Walter Roberson
on 17 May 2018
I am finding analytical solutions under some reasonable assumptions. The analytic solutions are inf or undefined except for narrow cases such as R=π/2, but the exact sign is rather messy to express. Like is it -inf or is it +inf+undefined*1i depends on details of the relationship between the variables.
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!