Solving Integral for an Unknown Interval

12 Ansichten (letzte 30 Tage)
John
John am 18 Jul. 2011
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
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
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
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
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