how can wirte this integration in matlab.

1 Ansicht (letzte 30 Tage)
Pawan Kumar
Pawan Kumar am 4 Jun. 2018
Kommentiert: Walter Roberson am 5 Jun. 2018
file is attached
  2 Kommentare
Walter Roberson
Walter Roberson am 5 Jun. 2018
The solution depends upon the relationship between k and q, and can be further resolved by adding assumptions. Some of the solutions are infinite.
I was certain I had already posted this information.
Walter Roberson
Walter Roberson am 5 Jun. 2018
I was right, I did post it. You asked the question in a different topic as well.. leading to duplicated effort. :(
The solution depends on whether k is positive, 0, or negative, and on the relative values of qs and 2*k . In some combinations of circumstances it is undefined. MATLAB is able to resolve some of the combinations if you add appropriate assumptions to the variables, but it is not able to tell you the full conditional resolution under other assumptions.

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Paridhi Yadav
Paridhi Yadav am 4 Jun. 2018
fun = @(q) q^4/(2*pi*(k^3)*((q + qs)^2)*sqrt(1-(q/2*k)^2));
jdp(k) = integral(fun,0,2*k);

Ameer Hamza
Ameer Hamza am 4 Jun. 2018
If you try to find a closed-form solution, then MATLAB is unable to solve for it for the given integral,
syms k q qs
integrand = 1/(2*pi*k^3*(q+qs)^2*sqrt(1-(q/(2*k))^2))*q^4;
J = int(integrand, q, 0, 2*k)
J =
int(q^4/(2*k^3*pi*(q + qs)^2*(1 - q^2/(4*k^2))^(1/2)), q, 0, 2*k)
The result is same as the input statement. But if you try to solve it numerically then you can do it as follow
integrand = @(q,qs,k) 1./(2*pi.*k.^3.*(q+qs).^2.*sqrt(1-(q./(2*k)).^2)).*q.^4;
J = @(k, qs) integral(@(q) integrand(q, qs, k), 0, 2*k);
qs = 1;
k = 10;
J(k, qs)
ans =
0.8855
  1 Kommentar
Pawan Kumar
Pawan Kumar am 5 Jun. 2018
from 1st ans i got result like 1*1 sym and from 2nd is same as code replicate

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by