symbolic integrating only one variable of three
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
KOZI
am 3 Nov. 2018
Bearbeitet: Walter Roberson
am 6 Nov. 2018
Hellow every one. I have one function with three variables. Variables typicaly are x,y,z where y=0 but in function i am using spherical coordinates which i have define in the begining of my code. I have one extra variable th1 which i want to integrate and the new function will have only x,z(r,th in spherical ). My problem is i cannot do that because when i run this:
syms x z th1;
r=(x^2 + z^2)^0.5;
th=acos(z/r);
d=2;
a=1;
d1=(a^2)/d;
L=1.5;
R1=(r^2 + d^2 - 2*r*d*(cos(th)*cos(th1) + sin(th)*sin(th1)))^0.5;
R2=(r^2 + d1^2 - 2*r*d1*(cos(th)*cos(th1) + sin(th)*sin(th1)))^0.5;
F1=d/R1;
F2=-(a/R2);
a1=-L/d;
a2=L/d;
f=@(x,z,th1)(F1+F2)
g = @(x,z) integral(@(th1) f(x,z,th1) , a1,a2)
I get :
f =
function_handle with value:
@(x,z,th1)(F1+F2)
I just want the symbolic expression of the above integration. I am stuck a lot of hours looking in already answered post but nothing so far. thanks in advance.
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 3 Nov. 2018
f = matlabFunction(F1+F2, 'vars', [x, z, th1]);
It turns out there is a closed form solution for g, but it is long and a bit complicated, and MATLAB cannot find it.
9 Kommentare
Walter Roberson
am 5 Nov. 2018
I ran that code preceded by
syms x z th1
and it worked. It did give two messages about
Warning: Infinite or Not-a-Number value encountered.
One of those messages is for (0,0). r(0,0) = 0, and so acos(z/r(x,z)) is acos(z/0) which is 0/0 which is nan. This is the case for all th1 for (0,0)
The other of the messages is for (0,2). F1(0,2,th1) = 2^(1/2)/(2*(1 - cos(th1))^(1/2)) and when th1 is sufficiently close to 0, 1-cos(th1) becomes 0, leading to a division by 0, which leads to an infinite result. This the case for two of the th1 values that are generated internally, both near +/- 7E-9, but it is enough to "poison" the entire integral, so g(0,2) is infinite.
Weitere Antworten (1)
madhan ravi
am 3 Nov. 2018
just change your last Line to this:
g = int( f(x,z,th1) ,th1, a1,a2)
12 Kommentare
Walter Roberson
am 5 Nov. 2018
-2*(-a^2+(b^2+c^2)^(1/2))*(-(sin(x-arctan(-b,c))*(b^2+c^2)^(1/2)+a^2)/(-a^2 +(b^2+c^2)^(1/2)))^(1/2)*(-(sin(x-arctan(-b,c))-1)*(b^2+c^2)^(1/2)/(a^2+(b^ 2+c^2)^(1/2)))^(1/2)*((sin(x-arctan(-b,c))+1)*(b^2+c^2)^(1/2)/(-a^2+(b^2+c^ 2)^(1/2)))^(1/2)*EllipticF((-(sin(x-arctan(-b,c))*(b^2+c^2)^(1/2)+a^2)/(-a^ 2+(b^2+c^2)^(1/2)))^(1/2),(-(-a^2+(b^2+c^2)^(1/2))/(a^2+(b^2+c^2)^(1/2)))^( 1/2))/(b^2+c^2)^(1/2)/cos(x-arctan(-b,c))/((a^2*(b^2+c^2)^(1/2)+b^2*sin(x- arctan(-b,c))+c^2*sin(x-arctan(-b,c)))/(b^2+c^2)^(1/2))^(1/2)
Is the antiderivative of that function, Torsten
Torsten
am 6 Nov. 2018
Bearbeitet: Walter Roberson
am 6 Nov. 2018
My suggestion is to differentiate f with respect to r, set r=a and use "integral" to do the integration.
Interchanging integration and differentiation is justified by "Leibniz integral rule":
Best wishes
Torsten.
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!