I am trying to run the following command in Mathematica:
FindRoot[NIntegrate[D[f[x], x] / Sqrt[1 - x^2], {x, 0, 1}] - d, {a, 245}]
As you might expect, a is buried within f[x] and 245 is a reasonable initial guess at its value. As you may also have guessed, the above integral is an expression for d in terms of a but I can't do the integral in closed form so I can't invert the expression to find a in terms of d.
So, I wish to numerically integrate my integral expression for d but that just give me the d that corresponds to a given value of a. I want to go the other direction, find the a value that corresponds to a given d. That's what I'm using FindRoot for (kudos if you're staying with me so far, it's taken me days to get to this point).
So here's the problem: NIntegrate gets upset if anything in the integrand is an undefined variable so every variable in the above integrand is defined except a (because I don't know it yet). However, FindRoot does know it. What I mean is, FindRoot is presumably running in an iterative loop and in every iteration it is working with a guess at a so somewhere in the bowels of the code, a always has a definite value. If I could somehow get NIntegrate to know this, I think I can get the above command to work (which would be a nice example of a powerful one line Mathematica operation). Any tips or do you think I'm trying to do something impossible?
Thanks,
Dessie.
int[a_?NumericQ, d_?NumericQ] = NIntegrate[...]. This wayFindRootwill evaluate its argument only when you supply numerical values. – b.gates.you.know.what Sep 27 '12 at 22:09