Solving Integral for an Unknown Interval

Is it possible to solve an integral for an interval/ limit of integration without the symbolic toolbox? My problem is of the same form as:(∫f(x)dx)/Z on the interval[-a,a]is equal to (∫g(x)dx)/Y on the interval [-c,c], where Z, a, and Y are known values and c is the unknown variable.

 Akzeptierte Antwort

Friedrich
Friedrich am 18 Jul. 2011

0 Stimmen

Hi,
so doing something like this:
function out = test_func( c )
out = quad(@lhs,-.25,.25) ./10 - quad(@rhs,-c,c)./6;
function out_lhs = lhs(x)
out_lhs = sqrt(5.^2 - x.^2);
end
function out_rhs = rhs(x)
out_rhs = sqrt(2.5^2 - x.^2);
end
end
And call it through:
fzero(@test_func,1)

Weitere Antworten (2)

Friedrich
Friedrich am 18 Jul. 2011

0 Stimmen

Hi,
no. You can't get a symbolic solution without the symbolic math toolbox. When you know c you can use the quad function:

4 Kommentare

John
John am 18 Jul. 2011
I am actually trying to find the numeric value for c. I knew there was a way to solve the integral with the symbolic toolbox and then solve for c, however I was wondering if there was a more efficient way to do this without the toolbox. The problem is like(∫sqrt(5^2-x^2)dx)/10 [-25,.25]=(∫sqrt(2.5^2-x^2)dx)/6 [-c,c] solving for c.
Friedrich
Friedrich am 18 Jul. 2011
Why not calculate it manually and than hardcode it. Or do your functions change during runtime?
John
John am 18 Jul. 2011
The functions have the possibility to change during runtime, so I would not like to have to calculate each time.
Friedrich
Friedrich am 18 Jul. 2011
Ah okay. Not sure if this will work fine but you could use the fzero function and search the root of (∫sqrt(5^2-x^2)dx)/10 [-25,.25] - (∫sqrt(2.5^2-x^2)dx)/6 [-c,c] , where you solve the integradl with quad

Melden Sie sich an, um zu kommentieren.

Bjorn Gustavsson
Bjorn Gustavsson am 18 Jul. 2011

0 Stimmen

One super-tool you should take a long look at is the Chebfun tools: http://www2.maths.ox.ac.uk/chebfun/
and my Q-D stab would be something like this:
I_of_f = quadgk(f(x)/Z,-a,a);
c = @(a,Z,Y,f,g) fminsearch(@(c) (I_of_f-quadgk(@(x) g(x)/Y,-c,c))^2,1)
I think that should work...

Community Treasure Hunt

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

Start Hunting!

Translated by