Solving Integral for an Unknown Interval

12 visualizaciones (últimos 30 días)
John
John el 18 de Jul. de 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.

Respuesta aceptada

Friedrich
Friedrich el 18 de Jul. de 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)

Más respuestas (2)

Friedrich
Friedrich el 18 de Jul. de 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 comentarios
John
John el 18 de Jul. de 2011
The functions have the possibility to change during runtime, so I would not like to have to calculate each time.
Friedrich
Friedrich el 18 de Jul. de 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

Iniciar sesión para comentar.


Bjorn Gustavsson
Bjorn Gustavsson el 18 de Jul. de 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